🔖

googleFormからslackへ通知する

に公開

はじめに

googleFormからslackへ通知させたい場合、GASで組むと無料(GWSを契約している場合)で通知できる。

システム構成(おすすめ)

準備

1. googleFormとspreadsheetを連携

参考
https://form.run/media/contents/form-creation-tools/google-form-spreadsheet-integration/

2. slackでwebhookを発行

以前主流であったincoming webhookが非推奨となっており、以下のどちらかで通知させることになる。

方法 メリット デメリット
ワークフローを使用 ①通知先チャンネルやアイコンをワークフローの設定で変えられる,②設定が手軽 ①リンクを付けることができない②通知チャンネル先を動的に動かすことができない
Slack Appを作成 リンクや装飾をつけることができる 設定が手間

おすすめはslackワークフローを使用する方。
ワークフロー設定例。

発行したwebhookをコピーしておく。

3. プログラミング

参考
https://ex-ture.com/blog/2022/12/21/google-app-scriptとgoogleスプレッドシートを連携させる/

main.js
function submitForm(e) {
  const f = new Form(e); 
  slackChannel(
    'webhookをここにペーストする',
    f.getSlackText()
  );
}

function slackChannel(webhook, message) {
  const jsonData = {
    'text' : message
  };

  const options = {
    'method' : 'post',
    'contentType' : 'application/json',
    'payload' : JSON.stringify(jsonData)
  };

  UrlFetchApp.fetch(webhook, options);
}
class/Form.js
class Form {
  constructor(e) {

    // googleFormの質問文をコピーして以下にペーストする
    this.text = [
      '質問1',
      '質問2'
    ].map(title => {
      return `\n## ${title}\n${e.namedValues[title]}\n`;
    }).join('\n');
  }

  getSlackText(){
    return this.text;
  }
}

3. GASのトリガー

結果

ランサーズ株式会社

Discussion