Google Apps Scriptでフォームの回答を自動でSlack通知する方法

NO IMAGE

はじめに

Googleフォームを使っていると、新しい回答があったことをすぐに知りたい場合があります。
しかし、Gmailの通知をチェックするのは面倒ですよね。

そこで、Google Apps Script(GAS)を使って、Googleフォームの回答をSlackに自動通知するスクリプトを作成しました。
このスクリプトを使えば、フォームに回答が送信されるたびに、指定したSlackチャンネルに通知を送ることができます。

スクリプトの概要

このスクリプトは以下の処理を行います。

  1. Googleフォームの新しい回答を取得
  2. 回答内容を整形してSlack用メッセージを作成
  3. SlackのWebhookを使って通知を送信

スクリプトのコード

以下のコードをGoogle Apps Scriptのエディタに貼り付けてください。

function sendToSlack(e) {
  var slackWebhookUrl = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXX"; // Webhook URLを設定
  var response = e.values; // フォームの回答データ
  var message = formatSlackMessage(response);

  var payload = {
    "text": message
  };

  var options = {
    "method": "post",
    "contentType": "application/json",
    "payload": JSON.stringify(payload)
  };

  UrlFetchApp.fetch(slackWebhookUrl, options);
}

function formatSlackMessage(response) {
  return "📩 *新しいフォーム回答が届きました!*\n" +
         "🕒 送信時刻: " + response[0] + "\n" +
         "👤 名前: " + response[1] + "\n" +
         "📧 メール: " + response[2] + "\n" +
         "💬 メッセージ: " + response[3];
}

スクリプトの説明

  1. sendToSlack(e)
    • フォームの回答データ(e.values)を取得
    • formatSlackMessage(response) でSlack用のメッセージを作成
    • SlackのWebhook URLに通知を送信
  2. formatSlackMessage(response)
    • フォームの回答データを整形し、Slackで見やすいフォーマットに変換

使い方

  1. SlackのWebhook URLを取得
    • Slackで「Incoming Webhook」を設定し、URLを取得
    • slackWebhookUrl に取得したURLを設定
  2. Googleフォームとスクリプトを連携
    • Googleフォームを開く
    • 「拡張機能」→「Apps Script」を開く
    • 上記スクリプトを貼り付けて保存
  3. トリガーを設定(自動実行)
    • Apps Scriptのエディタで「編集」→「現在のプロジェクトのトリガー」
    • 「トリガーを追加」ボタンを押す
    • 関数を sendToSlack に設定
    • イベントの種類を「フォーム送信時」にする

動作確認

フォームに回答を送信すると、Slackに通知が届くはずです!

おわりに

このスクリプトを使うと、Googleフォームの回答をリアルタイムでSlackに通知できます。
チームでの問い合わせ管理や、イベントの申し込み確認などに活用してみてください!

GASカテゴリの最新記事