Googleフォームの回答をn8nでメール・Slackに自動通知|見落としを防ぐ設定手順

Googleフォームでお問い合わせや申し込みを受け付けていると、「あれ、いつの間に届いてたの?」と焦ること、ありませんか?

  • 回答が届いたことに、数時間たってから気づいた
  • 「依頼」のような大事な回答だけ、すぐに知りたい
  • フォームを開いて回答を確認するのが、毎日の小さな手間になっている

どれも小さなことですが、積み重なるとけっこう気になりますよね。この「見張り番」を、n8nにお願いしてしまいましょう。

💡
この記事で解決すること

Googleフォームに回答が届いたら、n8nが自動で検知して、条件に合う回答だけメールとSlackに通知する仕組みを作ります。トリガーの選び方、条件分岐、うまく動かないときの確認方法まで、順番に設定していきます。
所要時間の目安は約30分(アカウント連携を含む)です。


全体像:フォーム → スプレッドシート → n8n → 通知

Googleフォームの回答は、スプレッドシートに自動で記録できます。そのシートに新しい行が増えたら、n8nが気づいてくれる形にします。

フォーム回答の自動通知フロー:Googleフォーム → 回答シート → n8n(新しい行を検知)→ Gmail/Slackに通知

順番 n8nのノード やること
1 Google Sheets Trigger 回答シートに新しい行が追加されたら開始する
2 If 「ご用件の種類」が「依頼」のときだけ先へ進める
3 Gmail 自分宛てに通知メールを送る
4 Slack 指定したチャンネルにメッセージを送る

「起きたら動く」トリガーの種類を整理したい方は、こちらの記事もどうぞ。

n8nのトリガー設計|Webhookで始める「起きたら動く」自動化


準備:フォームと回答シートを用意する

1. ダミーのフォームを作る

次の4項目のフォームを作ってみましょう(テスト用なので、どんな内容でもOKです)。

  • お名前(記述式)
  • メールアドレス(記述式)
  • ご用件の種類(ラジオボタン:質問/依頼/その他)
  • 内容(段落)
2. 回答をスプレッドシートに記録する
  1. フォームの「回答」タブを開く
  2. 「スプレッドシートにリンク」を押して、新しいスプレッドシートを作る
  3. テストとして、フォームから1件回答を送る

シートの列は、次のようになります。n8nではこの列名をそのまま使います。

タイムスタンプ お名前 メールアドレス ご用件の種類 内容
2026/10/26 9:30:12 山田 太郎 [email protected] 依頼 見積もりをお願いします

1行目が見出し(列名)、2行目以降が回答です。回答が届くたびに、シートの末尾へ新しい行が追加されます。


手順1:Google Sheets Trigger を設定する

  1. n8nで新しいワークフローを作り、「Add first step」から「Google Sheets Trigger」を選ぶ(ボタンの表記はバージョンによって少し違います)
  2. 「Credential to connect with」で、Googleアカウントを連携する(OAuth2。n8n Cloudでは「Sign in with Google」を押すだけで連携できます。セルフホスト版では、Google Cloudで作成したクライアントIDとシークレットが必要です)
  3. 次のように設定する

項目 設定
Document 先ほどの回答シートのスプレッドシートを選ぶ
Sheet 回答が入っているシート(「フォームの回答 1」)
Trigger On Row Added
Poll Times 「Add Poll Time」を押し、Mode を Every Minute にする(動作確認用。慣れたら Every Hour などに変更)

  1. テストイベントを取得して(「Fetch Test Event」などのボタンで実行します)、右側の出力に回答の1行が表示されることを確認する

取得できた行では、「タイムスタンプ」「お名前」など、シートの列名がそのまま項目名として並びます。この項目名を、次の手順以降で使います。

Row Added を選ぶと、決めた間隔でシートを見に行って、新しく追加された行を流してくれます。Googleアカウントの連携は最初ちょっと戸惑いやすいところですが、一度つないでおけば、次からは選ぶだけです。


手順2:Ifノードで「依頼」だけを通す

  1. Google Sheets Triggerの右の「+」から「If」を追加する
  2. Conditions に、左の欄へ「ご用件の種類」を(左のデータからドラッグして)入れる。ドラッグすると、{{ $json["ご用件の種類"] }} の形で入ります
  3. 比較は String の「is equal to」にして、右の欄に 依頼 と入力する
  4. 「Add condition」でもう1つ追加し、「メールアドレス」が「is not empty」としておく(AND条件)。欄の名前や並びは、バージョンによって少し違います

条件に合うと「true」の線へ、合わないと「false」の線へ進みます。今回は「true」だけにつなぎます。「false」には何もつながないので、「質問」や「その他」の回答は通知されません。

ノードの「Execute step」で試してみましょう。「依頼」の行は「true」側に、それ以外の行は「false」側に表示されます。


手順3:Gmailで通知メールを送る

まずは「true」の線の先に、「Gmail」ノードを追加しましょう。

項目 設定
Credential to connect with Googleアカウントを連携する
Resource Message
Operation Send
To 通知を受け取る自分のメールアドレス
Subject 【新着依頼】{{ $json["お名前"] }}さんから回答が届きました
Email Type Text

メールの末尾に「This email was sent automatically with n8n」という一文が付くことがあります。気になる場合は、Options の「Append n8n attribution」をオフにすれば消せます。

Message には、次のように入力します。{{ }} の中は、左のデータからドラッグすると入力できます。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
新しいフォーム回答が届きました。

お名前:{{ $json["お名前"] }}
メール:{{ $json["メールアドレス"] }}
種類:{{ $json["ご用件の種類"] }}
内容:{{ $json["内容"] }}

手順4:Slackにも同じ内容を送る

次は、Ifノードの「true」からもう1本線を引いて、「Slack」ノードを追加しましょう。

項目 設定
Credential to connect with Slackワークスペースを連携する
Resource Message
Operation Send
Send Message To Channel
Channel 通知を送りたいチャンネル(例:#フォーム通知)
Message Type Simple Text Message
Message Text 下の文面

  • 1
  • 2
  • 3
新しい依頼が届きました
お名前:{{ $json["お名前"] }}
内容:{{ $json["内容"] }}

Slackにはワークフローへのリンクが付くことがあります。不要なときは、オプションの「Include Link to Workflow」をオフにすればOKです。


手順5:公開して、実際に回答を送ってみる

  1. 画面上部の「Publish」を押し、表示される画面でもう一度「Publish」を押して、ワークフローを本番で動かす(n8n 2.0より前のバージョンでは、「Active」のスイッチをオンにします)
  2. フォームから、ご用件の種類を「依頼」にしたテスト回答を送る
  3. 設定した間隔のあとに、メールとSlackに通知が届けば完成

ここで、気をつけてほしいことが2つあります。

  • 公開した後に追加された行から通知されます。公開前にすでにあった回答は通知されません
  • 「質問」で送ったテストは通知されません(Ifで除外されるため)

あわせて、n8nの「Executions」タブも見てみましょう。今回の実行が1件増えています。実行をクリックすると、各ノードを通ったデータを確認できます。


失敗したときの見つけ方

1. Executionsで確認する

ワークフロー画面上部の「Executions」タブに、実行の履歴が並びます。失敗した実行は、どのノードで止まったかを開いて確認できます。通知が届かないときは、まずここを見てみてください。

2. 失敗を自分に知らせる(エラーワークフロー)

失敗に気づけるように、失敗したら知らせてくれる別のワークフローを作っておくと安心です。

  1. 新しいワークフローに「Error Trigger」を置き、SlackかGmailのノードをつないで、名前を付けて保存する
  2. 監視したいワークフロー(今回のフォーム通知)を開き、「…」(Options)から「Settings」を開く。「Error workflow」で、先ほどのワークフローを選んで保存する

つまずきやすい点

動かないときは、まずこの表を見てみてください。よくあるつまずきを集めました。

症状 原因 対処
通知が来ない 公開(Publish/Active)していない 公開してから、新しく回答を送る
前からあった回答が通知されない 公開前の行は対象外 仕様のため、テスト回答を新しく送る
回答が来ているのにIfで止まる 「依頼」の表記ゆれ(全角半角、空白)やフォームの選択肢の違い Executionsで実際の値を確認し、条件の文字を合わせる
Slackに送れない アプリにチャンネルへの投稿権限がない、チャンネルにアプリを追加していない chat:write などの権限を確認し、チャンネルにアプリを追加する
列名を変えたら値が取れなくなった {{ $json["お名前"] }} の列名が、シートと一致していない シートの見出しと、式の列名をそろえる

まとめ

  • Googleフォームの回答は、回答シートを経由して、Google Sheets Triggerで検知できる
  • Ifで条件を絞ると、必要な通知だけを受け取れる
  • 公開後に増えた行が対象。動かないときは Executions とエラーワークフローで確認する

次の一歩は、自分のフォームで「すぐ知りたい回答」の条件を1つ決めて、Ifノードに入れてみることです。最初は条件1つだけで十分です。一緒に、少しずつ育てていきましょう。


関連する本・記事

フォームの回答やスプレッドシートを起点に、仕事の手作業をさらに減らしたい方は、『Google Apps Script × 生成AI 全自動仕事術』も参考になります。GASと生成AIを組み合わせた自動化の考え方に触れたい方向けの1冊です。