23
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Googleフォームからslackに通知(Googleフォームとslack連携)

Last updated at Posted at 2021-05-07

顧客からのご意見箱をGoogleフォームで作成したけど、それだけだと投稿してもらっても気づきにくい。
というわけでGoogleフォームとslackを連携した。
せっかくやったので設定手順を残す。

slackで通知を受けるチャンネルを作成する

image.png

Incoming Webhookをインストール

image.png

Incoming Webhookを検索して「追加」ボタンを押す。

image.png

ブラウザでこんなページが表示されるのでSlackに追加で追加する。

image.png

image.png

Webhook URLを確認

Webhook URLを残してGoogle Formのスクリプトで使う

image.png

Google Formを作成

image.png

Google Formのスクリプト作成

image.png

image.png

テスト通知をしてみる

functionを作成する。

  • sendToSlack()・・・slackに送信する
  • test()・・・テスト通知
var channelName = "(ここにチャンネル名を書く)";

function sendToSlack(body, channel) {
  var url = "https://hooks.slack.com/services/~~~~~~~~(ここにWebhookURLを貼る)";
  var data = { "channel" : channel, "username" : "GoogleForm", "text" : body };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var response = UrlFetchApp.fetch(url, options);
}

function test() {
  sendToSlack("テスト通知", channelName);
}

image.png

保存ボタン押したら実行できるようになる。

image.png

functionを選択する。

image.png

実行ボタンを押す。(デバッグでもいい)

image.png

権限確認

image.png

image.png

「詳細」のリンクを開くとこのように表示されるので一番下のリンクを押す。

image.png

image.png

slackに通知が来る

image.png

Google Formの内容を送信する

function追加

Apps ScriptにGoogle Formの内容を送信するfunctionを追加する。

function onFormSubmit(e){

  var body = "<!channel>\n🍀アンケート投稿されました🍀\n\n"; 
  var applicant = "";
  var itemResponse = e.response.getItemResponses();

  for (var j = 0; j < itemResponse.length; j++){    
    var formData = itemResponse[j];
    var title = formData.getItem().getTitle();
    var response = formData.getResponse();

    var category = "";
    var mov_title = "";

    switch (title) {
      case "カテゴリー":
        category = response;
        break;
      case "映画タイトル":
        mov_title = response;
        break;
      default:
        break;
    }
  }
  var bodyPublic =  body + "【カテゴリー】" + category + "\n【映画タイトル】" + mov_title ;
  sendToSlack(bodyPublic, channelName);
}

追加したfunctionを選択する。

image.png

トリガーを設定する。

image.png
image.png
image.png
image.png
image.png
image.png

トリガー設定できたらこんな感じ
image.png

フォームから投稿してみる(最終確認)

image.png

slackに通知が来た!
image.png

参考記事

23
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?