サイト制作・動画/音声・自動化 — 目的から記事を探す →

n8nのWebhookが本番で動かない?テストURLと公開状態の確認

Webhookの本番を説明するリズの専用イラスト AI自動化

n8nのエディタで試すと成功するのに、外部サービスから送ると動かない。最初に確認したいのは、テスト用と本番用のWebhook URLを取り違えていないかです。

この記事は、Webhookを入口にしたワークフローを外部と接続する人向けです。実際の顧客データや決済処理を流す前に、個人情報を含まないテスト一件で、入口から保存先まで確認します。

テストURLと本番URLの違い

n8nの公式案内では、テストURLは「Listen for test event」で待受を始めてから使い、待受時間は120秒です。時間が過ぎたら、もう一度待受を始めてから送信します。本番URLは、ワークフローを公開した状態で使います。テストで一度成功しても、そのURLを外部サービスへ登録したままでは、通常運用の入口になりません。

本番で受け取った実行は、エディタ上へ常に同じように表示されるわけではありません。Executionsの履歴で確認します。「ノードに何も出ないから失敗」と決める前に、実行記録を見てください。

まず照合する5項目

項目確認内容
URLテスト用か本番用か、登録先が一致するか
公開状態本番用として使う版が公開されているか
メソッド送信元とWebhookのGET・POSTなどが一致するか
認証必要な認証情報が送信されているか
実行履歴入口へ届いていないのか、後段で失敗したのか

ブラウザーでURLを開くと通常はGETになります。POSTで受けるWebhookへブラウザーからアクセスしただけでは、実際の送信元と同じテストにはなりません。Webhookの設定と送信側の仕様を並べて読みます。

入力は、最小のテストデータで確認する

説明用のテストとして、イベントID「test-001」、種類「draft_check」、本文「確認用」のように、個人情報を含まない値を用意します。秘密のURLや認証ヘッダーを記事・画面共有へ載せないようにしてください。

受信後のデータで、本文がbodyの中なのか、配列の中なのかを確認します。想定していたキーがない場合は、Webhook自体が失敗したのではなく、その後の変換やフィルターで止まっている可能性があります。

本番が動かないときの切り分け順

  1. 編集内容を保存し、公開されているワークフローの状態を確認する。
  2. Webhookノードの本番URLを確認し、送信元の登録内容と照合する。
  3. 送信元のメソッド・認証・データ形式を確認する。
  4. 一件だけテスト送信し、送信時刻とイベントIDを控える。
  5. Executionsで同じ時刻の実行を探し、失敗したノードを確認する。

送信元の履歴に配信失敗があり、n8nに実行がないなら、URL、接続、認証など入口側から確認します。n8nに実行があるなら、受信したデータと後段の処理を見ます。同じ問題に両方の設定をまとめて変えると、何が原因だったか分からなくなります。

URLの変更と、セルフホスト環境の注意

パスや公開URLを変更した場合、送信元の古い登録が残っていないか確認します。セルフホストでは、外部から届くURLと内部の待受環境が同じではないことがあります。リバースプロキシなどを使うなら、n8nの運用構成に沿って公開URLを確認してください。

ここで認証を外して「動けば成功」にするのは避けます。認証が原因なら、必要な方式と送信設定を照合して直します。本番の秘密情報をログへ出し続けないことも、テスト後に確認します。

直った後に、二重処理を点検する

外部サービスは失敗時に再送することがあります。何度もテストすると、同じ記事や通知が複数作られる場合もあります。イベントIDを記録し、同じIDが既に処理済みなら重ねて保存しないなど、重複対策を検討します。

Respondが「Immediately」なら、応答は処理開始の合図です。後段の保存成功まで保証しません。「When Last Node Finishes」は最後に実行されたノードの結果を返し、「Using Respond to Webhook Node」は応答用ノードで返す内容を決めます。まず自分の応答方式を確かめ、Executionsの結果と保存先の一件を照合してください。

テストから本番へ切り替えるときは「本番URL・公開状態・最終保存先」の三つを指差し確認するつもりで見直しましょう。入口だけ成功する状態から、作業全体が確認できる状態へ進めます。

迷ったときの追加確認

成功応答なのに実行記録がない場合

WebhookノードのOptionsに「Only Run If」を設定している場合は、その条件を確認します。条件に一致しないリクエストにはHTTP 200を返しますが、実行は作られません。たとえば {{ $json.body.type === 'draft_check' }} と設定しているなら、送信データのbodyに type: "draft_check" があるか、キー名・値・階層を照合します。これは説明用の条件例です。

まず条件と送信値を読み比べ、設定を外す前に不一致の箇所を探します。公式説明では、式の評価そのものが失敗した場合は警告を記録して処理を通すため、この条件を認証の代わりにはできません。

編集したのに本番が古い場合

保存した編集内容と公開中の状態を区別します。新しい版を公開したか、外部がどのURLへ送っているか、確認した実行の時刻が変更後かを照合します。テスト用のURLや公開前の版だけで確認した結果を、本番が直ったという報告へ置き換えないようにしましょう。

自動化ツールの選択は、Makeとn8nの選び方で確認できます。

確認日:2026年10月8日。参考:n8n・Webhook公式ドキュメント、Webhookのよくある問題(待受時間・メソッド)。画面や利用条件は更新される場合があります。

当サイトはアフィリエイト広告を利用しています。

コメント

タイトルとURLをコピーしました