
【Zapier×スプレッドシート】スプシの特定セルを更新した時にZapierのトリガーがうまく起動しない場合の対処方法|自動化で業務効率化しよう
私が実際にやろうとしたこと
契約直後顧客へのオンボーディングメールの自動化を模索していました。
①Googleフォームに私が情報を記入し、スプレッドシートにデータを反映させる
②メール配信前に一度情報を確認したいので、情報確認後、B列に「反映」というフラグを立てたらZapierを起動させる(反映以外の場合はフローを止める)
③Zapierを通じてMAツールのリストにデータを反映する
という流れを取ろうとしました。
起きた問題
①の工程でフォームからスプレッドシートへデータが反映される際、行追加のような認識になっているためか、B列のデータが「空白」で更新されたことになっていました。
ただし「反映」というフラグになっていないため、フィルタが稼働し、フローが止まります。 その後B列を「反映」にしても、直前にZapierが動いているため起動しませんでした。
まず結論
「カスタムZap」 を作成し、Google Apps Script で 「B列が更新された時にZapier Webhookを呼び出す」 仕組みを作る
仕組みの概要
スプレッドシートのB列に「反映する!」と入力すると…
→ Google Apps Script(GAS)がその変更を検知GASがZapierのWebhook(特定のURL)にデータを送る
→ A列のチェックも確認し、「抜け漏れがないことを確認した」+「反映」の両方が揃ったら実行Zapierがデータを受け取り、自動でメール配信などを実行
→ シートの更新がトリガーとなって、Zapierでの処理が開始される!
簡単に言うと
📊 スプレッドシートの特定のセルをGASで監視し、条件を満たしたらZapierに通知 → 自動処理開始!
という仕組み
Zapierの通常機能よりも、「GAS+Webhook」の方が精度が高い理由
① Zapierの「更新された行をチェックする」は、定期チェック(ポーリング)方式
ZapierのGoogle Sheetsの「Updated Spreadsheet Row」トリガーは、数分ごとにスプレッドシートをスキャンし、最後に更新された行全体を取得する仕組みです。
そのため、変更が発生してもすぐに検知されないことがある。
また、変更が短時間で複数回起こると、途中の変更を見逃すことがある(例:「反映」→「修正する」→「反映」とすぐに変更した場合、最後の状態しか拾えない)。
➡ GASなら、編集の瞬間にWebhookを呼び出せるので、変更を確実にキャッチできる!
② Zapierは「行単位」で変更を監視するが、GASは「列単位」で細かく監視できる
Zapierの「Updated Spreadsheet Row」では、行全体を1つのデータとして扱うため、どの列が変更されたのかを判別しにくい。
そのため、たとえば他の列を編集しただけでもZapierが反応してしまう可能性がある。
➡ GASでは、「B列だけ」「A列とB列の条件を満たした場合だけ」など、細かい条件設定ができる!
③ Zapierのトリガーは「新規行の追加」に敏感で、手動変更を拾いにくい
Zapierの「Updated Spreadsheet Row」では、新しい行が追加されたときにトリガーが動きやすいが、手動で既存のデータを編集した場合の反応が遅れることがある。
例えば、「B列が『反映』になったタイミング」を確実にトリガーにしたい場合、Zapier標準の方法では反応しないケースが出る。
➡ GASなら、「B列を手動変更した瞬間」にWebhookを実行できる!

作業手順
① ZapierでWebhookのエンドポイントを作成
ここから先は
この記事が気に入ったらチップで応援してみませんか?