開発情報・ナレッジ

投稿者: 学生インターン 2025年10月31日 (金)

Slackに自動通知!予約登録・変更・キャンセルが一目でわかるシステム

学生インターンシップです!
スパイラル株式会社の学生インターンとして、SPIRALを学習しながらユーザー目線で質問に答える活動をしています。
補足情報や調査結果の提供を行い、皆様のお役立てができればと思っています!
※学生が学びの一環として調査・まとめた内容です。
 正確な仕様や最新情報は、公式リファレンスなどをご確認ください。

皆さんは日々の業務の中で、こんなことで困った経験はありませんか?
 ・「イベント参加者が登録しているかいちいち確認するのが面倒…」
 ・「イベント参加人数が増えた瞬間にチームに共有したいのに、リアルタイムに通知ができない…」
 ・「Excelでの管理やメール連絡では情報共有が遅れがちだし作業が煩雑…」

イベントの参加受付や出欠管理は意外と手間がかかり、確認漏れや共有遅れが発生しがちです。

そこで今回ご紹介するのが、ローコード開発ツールSPIRALとSlackを連携させ、
イベント登録フォームへの申し込み・予約の変更・キャンセルがあった瞬間に、「誰が」「何をしたか」をSlackに自動通知するものです。
この連携を活用すれば、開発に時間をかけずに「リアルタイムな参加者情報の共有」が可能になります!

※今回の記事は既にナレッジサイトにてあげられている以下の記事を参考に、実際に構築したものとなっております。
Slackでフォーム登録通知を受け取る方法(Slack×SPIRAL)

アプリ概要

作成したアプリの概要はこちらになります。
参加者が自身に関する情報(名前等)を登録用のフォームに記入し、
その情報を参加者情報DBに登録するとSlackに登録を知らせる通知が届き、さらに変更・キャンセルの予約ステータスを変えることで、
「○○様が○○しました」という文章をSlackに自動通知するものとなっています。

外部連携の下準備(Slack側)

では外部連携するにあたり、まずSlack側から下準備を行いましょう。
まずは、登録の通知を送りたいチャンネルの「チャンネル詳細を開く」をクリックします。
続いて「インテグレーション」→「アプリを追加する」から「Incoming Webhook」をインストールします。
「Incoming Webhook」をSlackに追加したのち、改めて投稿するチャンネル名を選択します。
そうするとセットアップに必要なURLが出力されるので、こちらをメモ帳等にコピーしておきましょう。
以上でSlack側の下準備は完了です!
参考サイトに手順が丁寧に説明されているため、すぐに設定することができました。

システム構築(SPIRAL側)

DB設定
最初に参加者情報を登録するためのデータベースを設定します。
基本的な基本的な参加者情報に加えて、「予約ステータス」という項目を設定しており、
こちらは「変更」と「キャンセル」の2種類存在し、参加者が予約に関する変更を行う際に使用します。
フォーム設定
今回設定したフォームは参加者が新規予約を行う「予約フォーム」と予約に関する変更を行う「予約変更フォーム」です。

こちらの2つのフォームに関してはSPIRALの基本機能で簡単に設定が可能で、設定自体には5分もかかることなく作成することができました!
以下のような流れで作成し、予約変更に関する「予約ステータス」は使用しないものとなっています。
「予約変更フォーム」に関しては同じような作成手順を踏んだ後に、マイエリアのカスタムページにソースコードを設置しました。
外部連携準備(カスタムモジュール)
「カスタムモジュール設定」のPHPスクリプトに、参考サイト記載の以下サンプルプログラムをコピペし、
URL部分だけを最初にメモしておいた「Incoming Webhook」から出力されたセットアップURLに書き換えます。
            
<?php
class Slack {
/**
* 引数のテキストを#spiralチャンネルへ投稿する
* @param string $text
*/
function postSlack($text){

// 【変更箇所】Webhook URL
$url = "https://hooks.slack.com/~~~~~"
$postdata = array(
"text" => $text
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
$result = curl_exec($ch);
curl_close($ch);
}
}
?>
            
外部連携準備(サンキューページ)
本来であれば情報登録後に「ご登録ありがとうございました」という定型文が表示される「サンキューページ」用のHTMLに、参考サイト記載のサンプルプログラムをコピペします。
そしてSPIRALのphp関数である「getContextByFieldTitle」を使用することで参加者情報を取得し、Slackに送る通知文を記載します。
※HTML内の「カスタムモジュール読込」にはカスタムモジュールを設定したファイルパスを設定しましょう。
            
<?php
// フォームで登録された内容を取得
$status = $SPIRAL->getContextByFieldTitle("status");
$name = $SPIRAL->getContextByFieldTitle("name");

// カスタムモジュール読込
include_once("app/SlackModule.php");
$Slack = new Slack();

// 投稿メッセージ作成
$text = $name.'様より予約'.$status.'(予約1:変更 , 予約2:キャンセル)のお問い合わせがありました。予約管理アプリをご確認ください。(<https://www.spiral-platform.co.jp/sample|確認はこちらから>)';

// slackへ投稿
$Slack->postSlack($text);
?>
            

テスト実行

では、テスト実行を行ってみます!
新規登録画面で入力必須事項を記入し、「送信」ボタンで登録します。
登録すると以下のようなサンクスメールが配信されます。
そしてそのメールに記載されているURLから予約の変更・キャンセルを行います。
URLからメールアドレスを用いて認証すると、以下のような予約変更・キャンセル画面が表示されます。
問い合わせ内容を入力し送信することで予約内容を変更することができます。
予約DBの中身を見てみますとしっかりと変更後のデータが登録されていることがわかりますね!
肝心であるのは新規登録・予約変更のタイミングでしっかりとSlackに内容が送信されているかどうかですが…
新規予約と予約変更に関する内容がしっかりと通知されていました。

最後に

今回はSlackへの自動通知機能付きの予約システムを構築してみました。
SPIRALは他にもTeamsなどとも外部連携が可能ですので、更なる発展が期待できそうです!

解決しない場合はこちら コンテンツに関しての
要望はこちら