Slackで定員オーバーを即チェック!Googleフォーム×申込管理の自動化

IT全般
スポンサーリンク

こんにちは!

社内イベントや講座の受付でGoogleフォームを使っている方は多いと思います。

手軽で便利な一方で、申込数の把握や定員オーバーのチェックを後回しにしてしまうこと、ありませんか?

私たちのチームでも、イベント申込の管理をGoogleフォームで行っていましたが、「気づいたら定員を超えていた…!」という事態が発生し、何か対策を講じる必要がありました。

申し込み状況は今どうなってるんだろ?

そこで導入したのが、Slackへの自動通知です。

フォーム回答をSlackで即チェックできる仕組み

今回の改善で目指したのは、次のような状態です。

  • 申込が送信されるたびに、Slackで通知が届く
  • 通知には「今回選ばれたコース」と「累計の申込人数」が含まれる
  • 定員に達しそうなタイミングで、すぐにチームが気づける

結果的に、GoogleフォームとSlack、そしてGoogle Apps Script(GAS)を組み合わせることで、非常にシンプルで効果的な仕組みを実現できました。

使ったツールはすべて無料

  • Googleフォーム(イベント申込用)
  • Googleスプレッドシート(回答記録用)
  • Google Apps Script(自動処理ロジック)
  • Slack Incoming Webhook(通知先)

フォームに送信があると、自動的にスクリプトが実行され、申込内容を確認し、Slackへ通知を送ります。

今回のプログラムでは申し込み人数を集計する必要があるため、スプレッドシートからの連携を行っています。
もし、フォーム送信1件の内容だけで通知をするのであれば、フォーム連携で大丈夫です。

実際に送られてくるSlack通知

こちらが実際の通知例です。

📥 新しいフォーム送信がありました
📝 今回の選択: 初心者
📊 現在の申込状況:
初心者:12名  経験者:21名

今何人申し込んでいるのかどのコースが人気なのかが一目で分かるね

導入の効果

  • スプレッドシートを開かずに状況把握できるようになった
  • チーム内で情報がリアルタイムに共有され、確認漏れがゼロに
  • 手作業で数を数える必要がなくなり、対応スピードが向上

特に定員が迫っているとき、Slackの通知がそのまま判断材料になるのは大きなメリットです。

シンプルな自動化

今回の仕組みは、難しいプログラミング不要で実現できます。

GASに数十行のコードを書くだけで、通知・集計・共有がすべて自動化されました。

しかも、フォームやスプレッドシートは普段から使っているツールなので、運用のハードルも非常に低いのが魅力です。

今後の展望

今後はさらに以下のような拡張も検討しています。

  • 定員に達したら自動で受付を停止する
  • 日別の申込グラフをSlackに投稿
  • 申込リマインドを自動化して、出席率向上につなげる

小さな改善ですが、ひとつの仕組みがチーム全体の安心感と効率を底上げしてくれました。

まとめ

GoogleフォームとSlackを組み合わせることで、リアルタイム通知による申込管理の自動化が実現できました。

手作業に頼っていた頃に比べ、対応のスピードと正確さは段違いです。

しかも、すべて無料ツールで完結しているのもポイント。

「気づけなかった」を防ぐ仕組み、あなたのチームにも取り入れてみませんか?

Googleフォームの内容をSlackに自動通知する方法【実装手順】

ここからは、実際に私たちが行ったSlack通知の自動化設定についてご紹介します。

必要な知識は最低限。GoogleフォームやSlackをすでに使っている方なら、10分ほどで導入可能です。

① Slack API にアクセス

https://api.slack.com/apps

② 新しいアプリを作成

  • 「create New App」をクリック
  • モーダルが開いたら、「From scratch(スクラッチから作成)」を選択

③ アプリ名とワークスペースを入力

  • App Name:任意(例:FormNotifier)
  • Pick a workspace:通知を送りたいSlackワークスペースを選択
  • 「Create App」で作成

④ Webhookの有効化

  • 左メニューから「Incoming Webhooks」を選択
  • トグルを「On」に切り替え、「Add New Webhook」をクリック
  • 権限リクエストされるので、チャンネルを選択し、「許可する」をクリック
  • 先ほどの画面に戻ったら、ページ下部「Webhook URL」をコピーして保存しておく

⑤ Googleフォームとスプレッドシートを連携

  1. Googleフォームを作成し、回答先にスプレッドシートを指定
  2. 「希望するコースを選んでください」のような項目を追加(ラジオボタン推奨)

⑥ Apps Script を設定

  1. スプレッドシートを開き、「拡張機能」→「Apps Script」をクリック
  2. 以下のコードを貼り付けます
function sendToSlack(e) {
  const webhookUrl = 'https://hooks.slack.com/services/XXXX/YYYY/ZZZZ'; // 取得したWebhook URLに置き換え

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();

  const header = data[0];
  const courseColIndex = header.indexOf("希望するコースを選んでください");
  if (courseColIndex === -1) return;

  let beginnerCount = 0;
  let experiencedCount = 0;

  for (let i = 1; i < data.length; i++) {
    const course = data[i][courseColIndex];
    if (course.includes("初心者")) beginnerCount++;
    else if (course.includes("経験者")) experiencedCount++;
  }

  const submittedCourse = e.values[courseColIndex];

  const message =
    `📥 新しいフォーム送信がありました\n` +
    `📝 今回の選択: ${submittedCourse}\n\n` +
    `📊 現在の申込状況:\n• 初心者:${beginnerCount}名 • 経験者:${experiencedCount}名`;

  const payload = JSON.stringify({ text: message });

  UrlFetchApp.fetch(webhookUrl, {
    method: 'post',
    contentType: 'application/json',
    payload: payload,
  });
}

⑦ トリガー(自動実行)を設定

  1. スクリプトエディタ左の「時計」アイコン(トリガー)をクリック
  2. 「トリガーを追加」をクリック
  3. 以下のように設定
項目設定内容
実行する関数sendToSlack
実行のタイミングフォーム送信時(onFormSubmit)
  1. 初回は認証画面が出るので、「許可」を進めて完了!

完了!

フォームが送信されると、Slackに以下のような通知が自動で投稿されます

📥 新しいフォーム送信がありました  
📝 今回の選択: 初心者(テキストに沿って、1つずつ丁寧に教えます)  
📊 現在の申込状況:  
• 初心者:12名  • 経験者:21名

 応用アイデア

  • 定員を超えたら通知に「⚠️定員超過です!」などの警告を追加
  • 日付別・コース別の申込数を集計し、曜日ごとの傾向を可視化

コメント

タイトルとURLをコピーしました