Googleフォームの回答をSlackに自動通知する: GASとSlack Appを使った簡単設定ガイド
Googleフォームで受け付けた内容を社内Slackに通知したいときがあると思います。
実装アプローチは連携ツールを使うなどいくつか考えられますが、ここではGoogle Apps Script(GAS)とSlack Appを使って実装する方法を紹介します。
個人的にこの実装方法がシンプルで且つ柔軟性が高いのでオススメです。
実装にあたり必要なプロセスは以下の通りです。
- Googleフォームの作成
- Slack Appの作成
- Google Apps Scriptの作成
- Google Apps Scriptのトリガー設定
- 動作確認
Googleフォームの作成
まずはフォームを作成します。フォームの項目などは自由に設定してください。
ここでは以下のようなフォームを作成しました。
- 担当者名: 短文テキスト
- メールアドレス: 短文テキスト
- お問い合わせ内容: 長文テキスト
Slack Appの作成
以下リンクをクリックし、Create New App
を選択します。
From scratch
を選択し、アプリ名とワークスペースを登録します。
アプリの表示設定を行います。お好きな内容で設定してください。
管理画面の左サイドバーからIncoming Webhooksを選択し、ONにして有効化します。
Add New Webhook to Workspace
をクリックし、通知を受け取るチャンネルを選択します。
有効化したチャンネルの Webhook URL
をコピーし、保存しておいてください。
Google Apps Scriptの作成
Googleフォームで回答を受け取った際にSlackへ転送するスクリプトを作成します。
先ほど作成したフォームからスクリプトエディターを開きます。
以下のコードをエディターにコピペし、SLACK_WEBHOOK_URL
の部分を先ほどコピーした Webhook URL
に置き換えます。ファイル名は sendSlack.gs
として保存します。
function sendSlackMessage(body) {
const SLACK_WEBHOOK_URL = "ここを書き換え";
if (body.length === 0) {
return;
}
const options = {
headers: {
"Content-Type": "application/json",
},
method: "post",
payload: JSON.stringify({
text: body,
}),
};
try {
UrlFetchApp.fetch(SLACK_WEBHOOK_URL, options);
} catch (error) {
Logger.log("Error sending Slack message: " + error.toString());
}
};
function createMessageBody(itemResponses) {
let body = "以下のお問合せがありましたのでご確認ください。";
itemResponses.forEach(response => {
const question = response.getItem().getTitle();
const answer = response.getResponse();
body += "\n\n【" + question + "】\n\n" + answer;
});
return body;
}
function main(e) {
const itemResponses = e.response.getItemResponses();
const body = createMessageBody(itemResponses);
sendSlackMessage(body);
}
Google Apps Scriptのトリガー設定
Googleフォームの回答を受け取った際に先ほど作成した処理が実行されるようにトリガーを設定します。
左ナビのトリガーを選択し、トリガーを追加
をクリックします。以下のように設定し、保存します。
- 実行する関数: main
- 実行するデプロイ: Head
- イベントのソース: フォーム
- イベントの種類: フォーム送信時
動作確認
これで準備は完了です。Googleフォームから回答を送信すると、Slackチャンネルに通知が届くはずです。
まとめ
Google Apps ScriptとSlack Appを使用することで、外部の連携ツールを使わずに直接統合できます。これにより、導入の手間が減り、通知内容や処理方法のカスタマイズが容易になります。
ChatGPTを使って処理内容をカスタマイズするのもオススメです。今回の内容がみなさんのライフハックに繋がれば幸いです。
補足
メール送信したい場合は以下の記事を参考にしてみてください。
Discussion