メインコンテンツにスキップ

【応用編】Google Apps ScriptとカスタムWebhookでスプレッドシートの変更をリアルタイム受信する方法

対応者:Mana Kobayashi

✅概要

Google Apps Script(以下GAS)とカスタムWebhookを組み合わせ、スプレッドシートの更新をリアルタイムで受信する方法をご案内します。


⚙️設定手順 

1. YoomのトリガーでカスタムWebhookを選択し、WebhookURLをコピーします。

2. 自社専用のGASコードを生成する

・ご自身でGASコードの作成、または以下のようなAIプロンプトを参考に、GeminiやChatGPTにコードを生成させます。
※AIで生成する場合、対象のスプレッドシートの全体像がわかるスクリーンショットを渡すことで、生成の精度が向上する可能性があります。
※サンプルコードをご用意しているので、こちらもAIにサンプルとして渡してください。

ーーーーーー

WebhookとGASの設定について教えてください。
以下のような条件でWebhookにスプレッドシートの行データを通知したいです。
この条件でGASの構築コードを教えてください。


・WebhookURL:1でコピーしたWebhookURL
・スプシの条件:添付のスプレッドシートで、◯列の☓☓というヘッダーの値が変更されたらWebhookURLに通知したい
・レスポンスデータは、変更があったその行のデータ全部

・サンプルコードを添付しているので、構成はそちらを参考にします

サンプルコード

function sendWebhook(e) {
// 1. 編集されたシートとセル情報を取得
var sheet = e.source.getActiveSheet();
var range = e.range;

// 編集された「シート名」が「シート1」であることを確認 (シート名が違う場合はここを書き換えてください)
if (sheet.getName() !== "シート1") return;

// 2. 編集されたのが「E列(5列目)」かつ「2行目以降」であることを確認
var column = range.getColumn();
var row = range.getRow();
if (column !== 5 || row < 2) return;

// 3. Webhook送信先のURLを設定
var webhookUrl = "{{カスタムWebhookURL}}";

// 4. 変更があった行の A列〜F列 のデータを取得
// ※画像をもとに、A列(1)からF列(6)までの6列分を取得しています
var rowData = sheet.getRange(row, 1, 1, 6).getValues()[0];

// 5. 送信するデータ(ペイロード)をオブジェクト形式で作成
var payload = {
"action": "status_updated",
"target_row": row,
"no": rowData[0], // A列: No
"company": rowData[1], // B列: 会社名
"manager": rowData[2], // C列: 担当者名
"contact": rowData[3], // D列: 連絡先
"status": rowData[4], // E列: ステータス (変更後の値)
"note": rowData[5] // F列: 備考
};

// 6. 外部のWebhook URLへHTTP POSTリクエストを送信
var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};

try {
UrlFetchApp.fetch(webhookUrl, options);
} catch (error) {
Logger.log("Webhook送信エラー: " + error.toString());
}
}

ーーーーーー

3. スクリプトの設定 

対象スプレッドシートの拡張機能からApps Scriptをクリックし、プロジェクト内のスクリプトに作成したGASコードをいれ、保存(フロッピーマーク)を押し、実行します。

※初めて実行すると、アクセス権限に関するポップアップが出る可能性があるので、ご自身のGoogleアカウントで認証します。

※認証後は、こちらの画面で実行は行いません。

4.トリガーの設定

トリガーメニューから添付のような設定をします。

※こちらも設定時に認証ポップアップが出る可能性があるので、3と同じように認証します。

5.Webhookの受信テスト

GASの設定が完了したら、対象スプレッドシートに移行し、Webhookへの通知条件としている内容を満たすよう、スプレッドシートのセル等の編集を行います。

その後、YoomのWebhookトリガー設定画面に戻り、テストボタンを押しテストに成功するかを確認してください。

テストに成功した場合、取得する値を追加ボタンを押し、以下のように取得したい値を追加します。


6.後続のオペレーションを設定

Webhookトリガーの設定が完了したら、トリガー後に任意のオペレーションを設定してください。

例えば、以下のようにスプレッドシートのレコード取得アクションを設定し、Webhookトリガーで取得した一意の値を使用してレコード全体を取得するといったことも可能です。


⚠️注意事項

GASに関する設定(コードの作成やGASの詳細設定など)についてはサポート対象外となるので、ご注意ください。

関連キーワード

カスタムWebhook,GAS,トリガー,スプレッドシート,フローボット,リアルタイム,起動,

こちらの回答で解決しましたか?