生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

n8nのWebhook Responseノード解説!APIエンドポイントとしてJSONを返す設定方法

n8nを使って日々の業務を自動化していると、「外部のシステムからn8nのデータを直接呼び出したい」「ワークフローの実行結果を、別のアプリケーションで柔軟に活用したい」と考えたことはありませんか。

実は、n8nにはその願いを叶える強力な機能が備わっています。

それが今回ご紹介する「Webhook Responseノード」です。

このノードを使いこなせば、n8nで作成したワークフローを、まるで自作のAPIエンドポイントのように機能させることが可能になります。

この記事では、Webhook Responseノードの基本的な概念から、実際にJSONデータを返すワークフローの作成手順、そしてより実践的な応用例まで、初心者の方にも分かりやすく丁寧に解説していきます。

この記事を読み終える頃には、あなたもn8nを使って独自のAPIを構築し、システム連携の可能性を大きく広げられるようになっているはずです。

Webhook Responseノードの基本とAPIの概念

まずはじめに、Webhook Responseノードがどのようなもので、なぜAPI構築において重要なのか、その基本を理解しておきましょう。この基礎知識が、後々の実践的な設定をスムーズに進めるための鍵となります。

Webhookとは? iPAASにおける役割

Webhookとは、Webアプリケーション間でリアルタイムに情報伝達を行うための仕組みの一つです。「あるイベントが発生したこと」をきっかけに、指定されたURLに対して自動的にHTTPリクエスト(情報)を送信します。例えば、「ECサイトで商品が売れたら、Slackに通知を送る」といった連携は、Webhookを利用した典型的な例です。

n8nのようなiPAAS(Integration Platform as a Service)ツールにおいて、Webhookは外部サービスからの情報を受け取る「玄関」の役割を果たします。この玄関があるおかげで、多種多様なサービスをトリガーとして、自動化ワークフローを開始できるのです。

Webhook Responseノードは何をするためのものか?

通常のWebhookトリガーノードは、外部からのリクエストを「受け取ること」が専門です。しかし、リクエストを送ってきた相手に対して、何らかの応答(レスポンス)を返したい場合もあります。ここで登場するのがWebhook Responseノードです。

このノードは、ワークフローの処理結果をHTTPレスポンスとして返す機能を持っています。これにより、n8nは単にデータを受け取って処理するだけでなく、リクエストに対して動的に生成したデータを返す「簡易的なAPIサーバー」として振る舞うことができるようになります。これは、n8nの活用範囲を単なる一方向の自動化から、双方向のデータ連携へと飛躍させる非常に強力な機能です。

なぜJSON形式でデータを返すのが一般的なのか?

APIでデータをやり取りする際、JSON(JavaScript Object Notation)という形式が広く使われています。その理由は主に2つあります。

  • 可読性: {"key": "value"} のようなシンプルな構造で、人間にとってもプログラムにとっても理解しやすい。
  • 汎用性: JavaScriptがベースでありながら、Python、Java、PHPなど、ほとんどのプログラミング言語で簡単に扱うことができるため、システム間のデータ交換に非常に適しています。

この記事でも、この標準的なJSON形式でデータを返す方法を中心に解説していきます。n8nでJSONを自在に操れるようになれば、世の中の多くのWebサービスとスムーズに連携できるようになるでしょう。

実践!Webhook ResponseノードでJSONを返す基本設定

それでは、実際にn8nでWebhook Responseノードを使い、外部からのリクエストに対して固定のJSONデータを返す基本的なワークフローを作成してみましょう。以下のステップに沿って進めれば、誰でも簡単にAPIエンドポイントを作成できます。

ステップ1: Webhookトリガーノードの設置とURLの取得

すべての始まりは、外部からのリクエストを受け取る「Webhookトリガーノード」です。

  1. 新しいワークフローを作成し、最初のノードとして「Webhook」ノードを追加します。
  2. Webhookノードの設定画面を開くと、「Webhook URLs」という項目があります。ここにある「Test」タブのURLをコピーしてください。これが、外部からリクエストを送るための仮のエンドポイントURLになります。
  3. URLをコピーしたら、画面右上の「Listen For Test Event」ボタンをクリックし、n8nを待機状態にしておきます。

ポイント: 本番運用する際は、「Production」タブのURLを使用します。Test URLはあくまで開発・テスト用です。

ステップ2: Setノードで返すデータを準備する

次に、レスポンスとして返したいJSONデータを作成します。今回は、静的なデータを返す練習として「Set」ノードを使います。

  1. Webhookノードの後に「Set」ノードを追加して接続します。
  2. Setノードの設定画面で、「Keep Only Set」にチェックを入れると、このノードで設定したデータだけが後続のノードに渡されるため、意図しないデータが混入するのを防げます。
  3. 「Add Value」をクリックし、好きなValueを追加します。今回はJSONを返すので、「Name」を「body」、「Value」をExpression(式)モードにして、以下のようなJSONオブジェクトを入力してみましょう。
    {{ { "message": "Hello from n8n!", "status": "success" } }}

これで、{"message": "Hello from n8n!", "status": "success"}というJSONデータが生成されるようになりました。

ステップ3: Webhook Responseノードの設定

いよいよ主役の登場です。Setノードで作成したデータを、リクエスト元に返します。

  1. Setノードの後に「Respond to Webhook」ノード(バージョンによってはWebhook Responseと表示)を追加して接続します。
  2. 設定画面は非常にシンプルです。「Respond」の項目で「When webhook is called」が選択されていることを確認してください。これは、Webhookが呼び出されたタイミングで応答を返す設定です。
  3. 「Response Data」の項目で「From Previous Node」を選択します。これにより、直前のノード(今回はSetノード)の出力データがレスポンスの内容として使われます。

これでワークフローの完成です!

ステップ4: 動作確認

作成したワークフローが正しく機能するか確認しましょう。WebブラウザやAPIテストツール(Postmanなど)を使います。

  1. ステップ1でコピーしたWebhookのTest URLを、ブラウザのアドレスバーに貼り付けてアクセスします。
  2. 画面に {"message":"Hello from n8n!","status":"success"} と表示されれば成功です!

n8nの画面に戻ると、Webhookノードが緑色に光り、テストイベントを正常に受信したことが確認できるはずです。これで、あなたはn8nで自分だけのAPIエンドポイントを一つ作成できました。

応用編:動的なJSONを生成して返す方法

静的なデータを返すだけでは、APIとしての面白みに欠けます。ここからは、他のノードの処理結果や外部からの入力に応じて、内容が変わる「動的なJSON」を返す、より実践的な方法を探っていきましょう。

他のノードの処理結果をJSONに含める

n8nの真骨頂は、様々なノードを組み合わせたデータ処理です。例えば、「外部APIから最新のニュースを取得し、タイトルとURLだけを抽出してJSONで返す」といったワークフローを考えてみましょう。

  1. Webhookトリガーノードの後に「HTTP Request」ノードを配置し、ニュースAPIなどからデータを取得します。
  2. 次に「Set」ノード(またはItem Listsノードなど)を使い、取得したデータから必要な情報だけを抽出・整形します。ここでn8nの強力な「Expression(式)」が活躍します。例えば、前のノードのデータを参照するには {{ $json.title }}{{ $('HTTP Request').item.json.articles[0].url }} のように記述します。
  3. 最後に「Respond to Webhook」ノードで、整形したJSONデータを返します。

このように、複数のノードを組み合わせることで、生データをそのまま返すのではなく、自分のアプリケーションにとって最適なフォーマットに加工した上でAPIレスポンスとすることができます。

クエリパラメータを受け取って応答を動的に変更する

APIをよりインタラクティブにするために、URLに含められたパラメータに応じて応答を変える方法も非常に有効です。例えば、https://example.com/webhook?city=Tokyo のように、都市名を指定してその都市の天気情報を返すAPIを作ることができます。

Webhookトリガーノードは、URLに含まれるクエリパラメータ(?以降の部分)を自動的にデータとして取り込んでくれます。取り込まれたデータは、後続のノードで {{ $json.query.city }} のようにして簡単に参照できます。

この仕組みと「If」ノードや「Switch」ノードを組み合わせれば、「もしcityがTokyoならAの処理、OsakaならBの処理」といったように、パラメータの値に応じた条件分岐も可能です。これにより、一つのエンドポイントで複数の役割を持たせることができ、APIの利便性が格段に向上します。

エラーハンドリングとステータスコードの変更

安定したAPIを運用するには、エラーハンドリングが不可欠です。ワークフローの途中で何か問題が発生した場合(例:外部APIがダウンしている)、そのことをリクエスト元に正しく伝える必要があります。

Respond to Webhookノードでは、HTTPステータスコードを任意に設定できます。通常、成功時は「200 OK」ですが、例えばリクエストの内容が不正な場合は「400 Bad Request」、サーバー内部でエラーが起きた場合は「500 Internal Server Error」を返すのが一般的です。

「Error Trigger」ノードと組み合わせることで、ワークフローのどこかでエラーが発生した際に専用の処理(エラーメッセージを含むJSONを生成し、ステータスコード500で返すなど)を実行させることができます。こうした丁寧なエラーハンドリングは、APIの信頼性を高める上で非常に重要な要素です。

Webhook Responseノードのユースケースと注意点

このノードが持つ可能性は無限大です。ここでは具体的な活用シナリオと、利用する上での注意点を整理し、あなたのアイデアをさらに膨らませる手助けをします。

具体的な活用シナリオ

  • 簡易データベースAPIとして: Google SheetsやAirtable、Notionなどのデータを読み取り、JSON形式で提供する簡易APIを構築。自社のWebサイトやアプリに最新情報を動的に表示できます。
  • 他システムとの双方向連携: Slackのスラッシュコマンドのバックエンドとして利用。ユーザーがコマンドを打つとn8nがそれを受け取って処理し、結果をSlackに返す、といったインタラクティブなBotを作成できます。
  • Webフォームのバックエンド処理: Webサイトに設置した問い合わせフォームの送信先としてn8nのWebhook URLを指定。受け取ったデータをデータベースに保存しつつ、送信者には「受付完了」のJSONメッセージを返す、といった処理が可能です。

セキュリティに関する注意点

2026年2月時点の情報として、Webhook URLは、そのURLを知っていれば誰でもアクセスできてしまうという点を忘れてはいけません。機密情報や個人情報を扱うAPIを作成する場合は、必ずセキュリティ対策を施しましょう。

n8nのWebhookノードには認証(Authentication)機能が備わっています。「Header Auth」や「Query Parameter Auth」などを設定することで、特定の認証情報(APIキーなど)がリクエストに含まれていない限り、ワークフローが実行されないように制限できます。本番環境でAPIを公開する際は、この認証設定を強く推奨します。

パフォーマンスと制限

Webhook Responseノードは非常に便利ですが、万能ではありません。n8nはあくまで業務自動化ツールであり、本格的なAPIサーバーとして設計されているわけではありません。

特にn8nのクラウド版を利用している場合、プランに応じて1ヶ月あたりのワークフロー実行回数に上限があります。また、一つのワークフローが長時間実行されるとタイムアウトすることもあります。秒間何百ものリクエストを処理するような高負荷なAPIの構築には向いていません。

まずは小〜中規模の利用から始め、ツールの特性を理解した上で、その適用範囲を見極めることが重要です。

まとめ

今回は、n8nの「Webhook Responseノード」を使って、独自のAPIエンドポイントを構築し、JSONデータを返す方法について詳しく解説しました。

この記事の要点をまとめます。

  • Webhook Responseノードを使えば、n8nが簡易的なAPIサーバーとして機能する。
  • SetノードやExpressionを駆使することで、静的・動的なJSONレスポンスを自在に生成できる。
  • クエリパラメータや他ノードの結果を利用して、インタラクティブなAPIを構築可能。
  • 実運用では、セキュリティ(認証)とパフォーマンス(負荷)を考慮することが重要。

この機能をマスターすれば、n8nを単なる自動化ツールとしてだけでなく、様々なシステムを繋ぐ「ハブ」として、より高度に活用できるようになります。あなたの業務自動化のアイデアが、さらに大きく広がったのではないでしょうか。

まずはこの記事を参考に、簡単なJSONを返すワークフローから試してみてください。n8nをまだ始めていない方は、無料で十分試せるプランもありますので、ぜひ公式サイトからサインアップして、そのパワフルな機能を直接体験してみることをお勧めします。

また、n8nの基本的な使い方やさらに詳しい機能、導入メリットについては、当サイトのn8n完全ガイド記事で網羅的に解説しています。より深くn8nを学びたい方は、そちらもぜひ合わせてご覧ください。