フォーム送信をChatworkに自動通知するGAS連携の作り方
申請フォームや問い合わせフォームが送信されたら、Chatworkに即座に通知したい。GASのフォームトリガーとChatwork APIを組み合わせれば、受信後数秒以内に通知が届く仕組みを作れます。
必要なもの
- Googleフォーム(回答先スプレッドシートを作成済み)
- ChatworkのAPIトークン(個人設定から取得)
- 通知先のルームID
Chatwork APIトークンの取得
- Chatworkにログイン
- 右上のアイコン → サービス連携 → API
- パスワードを入力してAPIトークンを発行・コピー
ルームIDの確認
通知したいチャットを開き、URLの末尾の数字がルームIDです。
https://www.chatwork.com/#!rid 123456789
↑ これがルームID
テンプレートコード
// ======== 設定 ========
const CW_API_TOKEN = 'ここにChatwork APIトークンを貼り付ける';
const CW_ROOM_ID = '123456789'; // 通知先ルームID
// ======================
function onFormSubmit(e) {
// フォームの回答を取得
const responses = e.namedValues;
// 通知メッセージを組み立て
let message = '[info][title]📋 フォームが送信されました[/title]';
message += '送信日時:' + Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm') + 'nn';
for (const [question, answers] of Object.entries(responses)) {
const answer = answers[0] || '(未入力)';
message += `【${question}】n${answer}nn`;
}
message += '[/info]';
// Chatworkに送信
sendToChatwork(message);
}
function sendToChatwork(message) {
const url = `https://api.chatwork.com/v2/rooms/${CW_ROOM_ID}/messages`;
const options = {
method: 'post',
headers: { 'X-ChatWorkToken': CW_API_TOKEN },
payload: { body: message },
muteHttpExceptions: true,
};
const response = UrlFetchApp.fetch(url, options);
const code = response.getResponseCode();
if (code !== 200) {
console.log('Chatwork送信エラー: ' + code + ' ' + response.getContentText());
} else {
console.log('Chatwork送信成功');
}
}
設定手順
- 回答スプレッドシートを開く → 拡張機能 → Apps Script
- 上のコードを貼り付け
CW_API_TOKENとCW_ROOM_IDを設定- 「実行」ボタンで
onFormSubmitを手動実行して動作確認
フォームトリガーの設定(自動実行)
- エディタ左の時計アイコン → トリガーを追加
- 実行する関数:
onFormSubmit - イベントのソース:スプレッドシートから
- イベントの種類:フォーム送信時
- 保存
これで次回フォーム送信時から自動通知が有効になります。
応用:担当者への振り分け通知
フォームに「担当者を選んでください」という項目がある場合、回答に応じて別のルームに通知できます。
function onFormSubmit(e) {
const responses = e.namedValues;
const staff = responses['担当者'][0];
// 担当者ごとのルームIDマッピング
const roomMap = {
'山田': '111111111',
'鈴木': '222222222',
'佐藤': '333333333',
};
const roomId = roomMap[staff] || CW_ROOM_ID; // デフォルトルームにフォールバック
let message = `[info][title]${staff} 宛の申請が届きました[/title]`;
// ... メッセージ組み立て ...
message += '[/info]';
UrlFetchApp.fetch(
`https://api.chatwork.com/v2/rooms/${roomId}/messages`,
{ method:'post', headers:{'X-ChatWorkToken':CW_API_TOKEN}, payload:{body:message} }
);
}
次のステップ
通知の仕組みができたら、データ転記・整形の自動化に進みましょう。フォーム回答を別シートに整形して転記する処理が作れます。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
