GoogleフォームとSlackを連携して自動通知を送る方法|Webhook+GASで即通知

当ページのリンクには広告が含まれています。
Slack通知
  • URLをコピーしました!

Googleフォームの回答が届いたときに、Slackに自動通知が届くと便利ですよね。
メールでは見落としがちでも、Slackならリアルタイムで確認できます。

この記事では、Googleフォームと連携したスプレッドシートにスクリプトを追加して、Slack通知を送る方法をわかりやすく紹介します。

目次

💡 GoogleフォームをSlack通知するメリットとは?

Googleフォームでの受付や申込は、どうしても「見逃し」が起きやすいもの。
Slackと連携すれば、以下のようなメリットがあります。

  • 即時に通知されるので見逃し防止に
  • メールよりもチームでの共有がしやすい
  • 通知先をパブリックチャンネルでも個人チャットでも自由に指定可能

🔗 SlackのWebhook URLを取得する方法【連携準備】

Slackと連携するには「Webhook URL」を発行する必要があります。

✅ 発行手順(ざっくり)

  1. Slack API公式ページで新しいアプリを作成
  2. 「Incoming Webhooks」を有効にする
  3. 通知先のチャンネルを選んでWebhook URLを発行

※ 詳細な手順は以下の記事で解説しています👇
👉 SlackのWebhook取得方法はこちら

🛠 Googleフォーム連携用のGASをスプレッドシートに書く方法

フォームの回答先となっているスプレッドシートを開き、以下の手順で進めます。

STEP
回答先スプレッドシートを開く

メニュー「拡張機能」→「Apps Script」を開く

STEP
以下のコードをコピペ👇
function onFormSubmit(e) {
  const slackUrl = 'https://hooks.slack.com/services/XXXX/YYYY/ZZZZ'; // 自分のWebhook URLに置き換え
  const response = e.namedValues;

  // フォームの項目名に合わせて変えてください
  const name = response['お名前'][0];
  const email = response['メールアドレス'][0];
  const message = `📩 新しいフォーム回答が届きました!\n\n👤 お名前: ${name}\n📧 メール: ${email}`;

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

  UrlFetchApp.fetch(slackUrl, {
    method: 'post',
    contentType: 'application/json',
    payload: payload,
  });
}
STEP
トリガーを追加

左メニューの「トリガー」→「新しいトリガーを追加」
 - 実行する関数:onFormSubmit
 - イベントの種類:フォーム送信時

⚠ onEditとonFormSubmitの違いと注意点

GASにはonEdit(編集トリガー)とonFormSubmit(送信トリガー)という似た名前のトリガーがあります。

  • onEdit:スプレッドシートを手で書き換えたときにも反応してしまう(誤通知のもと)
  • onFormSubmitフォーム送信時だけに反応するので通知用途に最適
よくある誤解

スプレッドシートにスクリプトを書くからといって、必ずしもonEditを使う必要はありません。onFormSubmitもスプレッドシート側で問題なく使えます。

うっかりonEditに書いてしまい、スプレッドシートを編集した際にも通知されてしまったことがありました。

🔄 GASはフォームとスプレッドシートどっちに書くべき?実務でのおすすめ設置場所

スクリプトは「Googleフォーム本体」にも「スプレッドシート側」にも書けますが、実務ではスプレッドシートに書くのがおすすめです。

理由は以下の通りです。

  • フォーム側にスクリプトを書くと、トリガーが「回答者の権限」で動くため、Slack通知などで認証エラーになることがあります
  • スプレッドシート側に書けば、トリガーは自分(オーナー)の権限で動作し、外部連携も安定します
  • また、ログの確認やメンテナンスもスプレッドシートからの方が行いやすく、チーム共有にも適しています(フォーム本体は業務メンバー全員が普段開く場所ではないため、スクリプトやログへのアクセスが限定的になりがちです)

👉 このスクリプトの書き場所についての詳しい考察はこちら:
Googleフォーム処理は「フォーム」or「スプレッドシート」どっちに書くべき?

Slack Webhookの通知見た目を変えたい?現在の制限と対処法

以前は通知ごとに「ボット名」や「アイコン画像」をJSONで変更できましたが、現在のWebhookでは反映されません。

// これは現在は無効になります
{
  "text": "通知内容",
  "username": "通知Bot",
  "icon_url": "https://example.com/icon.png"
}

Slackの仕様変更により、Webhookごとの見た目はアプリ設定側で固定となりました。
通知の見た目を分けたい場合は、Webhookを分ける=Slackアプリを複数作る必要があります。

まとめ:Googleフォーム送信内容をSlackに通知する方法のポイント

GoogleフォームとSlackを連携させることで、回答が届いた瞬間にリアルタイムで通知を受け取れる仕組みが構築できます。
これにより、メールチェックの手間が省け、チーム全体で情報を即座に共有できるようになります。

今回はスプレッドシート側にスクリプトを書く方法をご紹介しましたが、これは以下の理由から実務にも最適です:

  • トリガーがオーナーの権限で動作し、外部連携が安定
  • ログやエラー確認がしやすく、保守・運用にも強い
  • チーム内でのGAS管理がスムーズ

小さな自動化の積み重ねが、日々の業務効率を確実に底上げしてくれます。
Slack通知の活用はその第一歩。
ぜひ、あなたの業務にも取り入れてみてください。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次