2022/04/13に更新

【GASで便利に】フォームが送信されたらSlackに通知する

フォームSlackAPI業務改善

フォームが送信されたら、その内容とともにSlackに通知してくれるGoogle Apps Scriptです。お問い合わせが来たときにチーム全員がすぐ知りたいときにどうぞ。

こんな悩みを解決します


  • Googleフォームが送信されたときにすぐに知りたい。
  • 自分だけではなく、チームメンバーにも気づいてほしいのでSlackに通知したい。

用意するもの


GoogleフォームとSlackを使用していることが前提のアプリです。

このスクリプトで出来ること


  • フォームが送信された時にSlackに通知することができます。
  • フォームの内容も本文に含めて送ることができます。

使い方


1.事前準備

Slackと連携するために、「Incoming Webhook」を使用します。
GASからSlackに投稿するための「入り口」を作ります。
詳しい手順はこちらをご確認ください。

https://myfunc.jp/items/00066/index.html

Webhook URLが発行されたらコピーして、スクリプトの「事前設定」部分に入力してください。

2.トリガーの設定

フォームが送信された時に動いてほしいので、以下のようにトリガーをセットします。

  • 実行する関数: onSubmit
  • 実行するデプロイ: HEAD
  • イベントのソース: フォームから
  • イベントの種類: フォーム送信時

3.動作の確認

適当なフォームに、適当に入力してみます。

フォームを送信して数秒で・・・Slackに投稿されました!
設問と回答も含まれています。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00068/index.html
 */

function onSubmit(e) {

  // ######### 事前設定ここから ########

  // SlackのWebhook URLを入力してください
  const slack_webhook_url = 'https://hooks.slack.com/services/**************';

  // ######### 事前設定ここまで ########


  // フォームの項目や回答を取得する
  const form_responses = e.response.getItemResponses();

  // Slackに送る本文を格納する変数を準備
  let text = '';

  // フォームの項目数だけループする
  for (var i = 0; i < form_responses.length; i++) {

    // フォームの質問を取得
    let question = form_responses[i].getItem().getTitle();

    // 質問に対する回答を取得する
    let answer = form_responses[i].getResponse();

    // メッセージ本文を組み立てる
    text += '【' + question + '】\n';
    text += answer + '\n\n';

  }

  // SlackのWebhook URLに投稿するデータをまとめる
  const json =
  {
    'username': 'フォームが送信されました!',
    'icon_emoji': ':postbox:',
    'text': text
  };

  // SlackのWebhook URLに送信するデータをJSONに変換する
  const payload = JSON.stringify(json);

  // UrlFetchAppで使用するメソッドやコンテントタイプを指定
  const options =
  {
    'method': 'post',
    'contentType': 'application/json',
    'payload': payload
  };

  // Slackに送信
  UrlFetchApp.fetch(slack_webhook_url, options);

}

関連するアプリ


【GASで自動化】フォームの内容を管理者にメールで通知する

フォームが送信されたら、管理者に対して質問と回答をメールで通知するGoogle Apps Scriptです。標準機能では回答があったことの通知しかできませんが、GASを使えば回答内容も送信できます。

【GASで便利に】フォームの回答を元にスライドを作成する

Googleフォームが送信されるたびに、回答内容をスライドに反映させるGoogle Apps Scriptです。思いつきで作ったんですが、自己紹介やアイディアなどを集める時に良いかも?

【GASで時短】特定のメールをスプレッドシートに出力する

件名に特定の文字列が含まれるメールを、スプレッドシートに転記するGoogle Apps Scriptです。フォームで受け付けたい・・けどメールでも受付せざるを得ない・・という時などに。

【GASで便利に】フォームの内容を元にカレンダーを登録する

フォームに入力された値から、カレンダーのイベントを作成するGoogle Apps Scritpです。Googleアカウントを持っていない人に予定を入れてほしい時に使えるかも?

【GASで保全】Slackのデータをリアルタイムでスプレッドシートにバックアップする

Slackに投稿したメッセージをほぼリアルタイムにGoogle スプレッドシートにバックアップするGoogle Apps Scriptです。無償版Slackはデータの保存期間が90日に短縮されるので作ってみました。

【GASで便利に】特定のメールが来たらSlackに通知する

Gmailに届いたメールから特定の件名のものをSlackに通知するGoogle Apps Scriptです。Slackが浸透するほどメールをあまり見なくなり、大事なメールを見逃すことが増えてきたので作りました。

タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp