GASでGoogle Formsから投稿があった際に、チャットルームに通知を入れる

2021/4/30

統合が進んで、どんどん便利になるGoogle Chat。Teamsより軽くて快適です。簡単に問い合わせフォームなどが作れて便利なFormsと組み合わせると更に便利です。Chatのincoming Webhook機能は簡単なのでぜひご活用ください。

1:フォームを作る

フォーム作りは簡単なので、特に解説しません。色々作ってみてください。

2:GASのエディタを起動する

画面右上のメニューから、スクリプトエディタを起動します。

3:コードを書く場所を確認します。

こんな感じでコードを書くと、メールが送れます。フォームのオーナーにだけ通知すれば良いのであれば、基本機能でできますが…グループアドレスなどを指定したい場合に便利です。

もっと便利な使い方については…そのうち記事にしようかと思います。

function sendForm(e){

let subject = "【ここにメールの件名を入れます。】";

let body = "【ここにメール本文を入れます。】"

let to = "【ここにメールの宛先を入れます。】";

MailApp.sendEmail({to:to,subject:subject, body:body});

}

4:チャットルームにWebhookを用意します。

通知したいチャットルームのルーム名から、「Webhookを管理」を選んでWebhookを作ります。

Webhookを作ったら、URLをコピーしておきます。

5:Webhookに投稿するコードを書きます。

こんな感じのコードを書きます。

先程コピーしたWebhookのURLも入れます。

試しに実行すると…最初だけ権限確認の画面が出ますが、慌てず許可してください。

function pushMessage() {

const url = "【ここにWebhookのURLを入れます。】";

let text = "【ここに通知したいメッセージを入れます。】";

let payload = {

"text" : text

}

let json = JSON.stringify(payload);

let options = {

"method" : "POST",

"contentType" : 'application/json; charset=utf-8',

"payload" : json

}

UrlFetchApp.fetch(url, options);

}

6:トリガーを設定します。

画面左の目覚まし時計風アイコンをクリックしてトリガーを登録します。今回の場合、フォーム送信を知らせたいので、「イベントの種類」は「フォーム送信時」になるようにします。

ここまでできたら、フォームを送信してみてください。チャットに通知が入ると思います。

チャットルームをスレッド型にしておけば、「対応しておきました!」みたいなコメントを入れて対応状況の共有もできて大変便利です。

とりあえず、初回はこんなところで…