Resources · n8n integration

n8n Respond to Webhook nodeConfigure Respond to Webhook in n8n.

A webhook is only half a conversation until something answers it. The n8n Respond to Webhook node decides what the caller gets back: a JSON body, a file, a redirect, a token or nothing at all. Six parameters cover the payload, the status code, the headers and streaming.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the n8n Respond to Webhook node actually do?

The Respond to Webhook node hands a reply back to whoever called your Webhook node. Without it, n8n sends its own standard message once the workflow ends. With it, you choose the body, the status code and the headers, at the exact point in the workflow where the answer is ready. It works with the Webhook node and with nothing else: drop it into a flow that no webhook started, and n8n ignores it.

Scenario one, a form that needs a real answer. A page posts to a webhook, the workflow looks the visitor up and writes a row, then Respond to Webhook returns a JSON object built in Response Body. The browser gets a proper payload instead of a generic acknowledgement, so the page can show the result rather than a spinner. Pair it with a Google Sheets lookup and the round trip stays under one workflow.

Scenario two, a redirect after a click. An email link points at the webhook URL, the workflow records the click, and Respond With set to redirect sends the visitor on to the destination set in Redirect URL. Nothing renders in between. The same flow can post a line to Slack before the redirect fires.

Scenario three, a file download served by a workflow. An incoming call triggers a lookup, the workflow fetches a document, and Respond With set to binary streams the file back using Response Data Source. That turns a workflow into a small download endpoint without any hosting on the side.

When to reach for something else. If the caller only needs whatever the workflow ends up with, skip this node and set Respond to When Last Node Finishes in the Webhook node. If you are the one calling an external endpoint rather than answering a call, that is the HTTP Request node, which reaches any HTTP endpoint and is the fallback when a dedicated node misses an API operation.

Known limits, and they matter. The node runs once, on the first incoming data item, expressions included. You cannot force a loop with the Loop node: the workflow runs, but the response still carries the first execution only. Returning several items through those workarounds is deprecated from n8n 1.22.0; use allIncomingItems, or put an Aggregate node in front with Aggregate on All Item Data (Into a Single List). A second Respond to Webhook node further down the flow is ignored. And if the workflow errors before the first one runs, the caller gets an error message with a 500 status. More on how the node compares to other tools in the n8n review.

Connect

How do you wire Respond to Webhook into a workflow?

  1. 01

    Start the workflow with a Webhook node

    Respond to Webhook answers a call, it never starts one. Add a Webhook node as the trigger node of the workflow, the node that opens the execution when an external service hits its URL. Any flow that begins with a Schedule Trigger or an app trigger has nothing to reply to, and the Respond to Webhook node placed inside it is simply ignored at runtime.

  2. 02

    Switch the Webhook node to manual response

    In the Webhook node, set Respond to Using 'Respond to Webhook' node. That tells n8n to hold the HTTP connection open instead of closing it with its own default message. Until you flip this setting, the Respond to Webhook node sits in the canvas without effect, which is the single most common reason a carefully built response never reaches the caller.

  3. 03

    Place the node after the data it returns

    Add Respond to Webhook anywhere in the workflow. Position decides what it can send: to return data produced by other nodes, put it after them, since an expression can only read what has already run. Everything downstream of it keeps executing normally after the reply goes out, so logging, notifications and writes can all happen once the caller has been served.

Parameters

Which parameters shape the response?

The Respond to Webhook node has 6 parameters. For each one: the node as you configure it in n8n, what the parameter changes, and our field notes.

01

Enable Response Output Branch

enableResponseOutput

What you see in n8n

Notes & use cases

By default the node has a single output branch carrying its own input data. This option adds a second branch holding the response object that was sent to the webhook, so the rest of the workflow can inspect exactly what the caller received. It lives in the Settings tab of the node, not in the main panel.

Key parameters

  • Enable Response Output Branch: a boolean that turns the second output on. The node then exposes Input Data, the original branch passing on the node's input, and Response, the object sent back to the webhook.
Use cases
logging the exact payload a partner system received, or branching on the response body before writing an audit row.
02

Respond With

respondWith

What you see in n8n

Notes & use cases

This selector decides what travels back through the open HTTP connection. Eight choices, from a full JSON dump to an empty body.

Key parameters

  • Respond With: allIncomingItems returns every input JSON item, firstIncomingItem only the first, json a custom body set in Response Body, text a text body that ships as HTML by default with Content-Type: text/html, binary a file, jwt a token built from Payload, redirect a jump to Redirect URL, noData an empty body.
  • Response Data Source: for a file, automatically picks the single binary in the input, set expects the field name in Input Field Name.
Use cases
returning a confirmation object to a front end, or redirecting a tracked click.
03

Response Code

options.responseCode

What you see in n8n

Notes & use cases

Status codes carry meaning that a body cannot. This option sets the HTTP response code returned to the caller, and defaults to 200 when left alone. Add it whenever the caller reads the code before it reads anything else, which is most machine-to-machine traffic.

Key parameters

  • Response Code: a number, defaulting to 200. Typical values come from an expression such as {{ $json.status }} when an earlier node already decided the outcome.
Use cases
answering 404 when a lookup found nothing, so the calling application can handle a missing record instead of parsing a success payload.
04

Response Headers

options.responseHeaders

What you see in n8n

Notes & use cases

Some callers need more than a body: a content type, a cache directive, a custom key their client reads. This option adds headers to the webhook response, one entry at a time, through the Add Response Header button.

Key parameters

  • Name: the name of the header, typed exactly as the caller expects it.
  • Value: its value, which accepts an expression like {{ $json.token }} when it changes per execution.
Use cases
declaring a content type on a text response so a browser stops guessing, or passing a correlation identifier back to the system that made the call.
05

Put Response in Field

options.responseKey

What you see in n8n

Notes & use cases

Raw items at the top level of a response are awkward to consume. This option wraps them: it sets the name of the response field that holds all items. It is available when Respond With is on allIncomingItems or firstIncomingItem, and it stays hidden otherwise.

Key parameters

  • Put Response in Field: a string naming the wrapper field, for example data, which is also the placeholder shown in the panel.
Use cases
giving a front end the predictable envelope it was coded against, so a client that reads a named collection does not have to special-case an array at the root.
06

Enable Streaming

options.enableStreaming

What you see in n8n

Notes & use cases

Long answers do not have to arrive all at once. Turned on, this option sends the data back to the caller using streaming, so the client can display content while the workflow is still producing it. It has one hard requirement on the other end of the flow.

Key parameters

  • Enable Streaming: a boolean. It needs a trigger configured with Response mode set to Streaming, otherwise the setting has nothing to stream through.
Use cases
a chat-style endpoint where text should appear progressively rather than after a long silence, which is also how a Chat front end stays responsive.
Need help

Need help automating Respond to Webhook with n8n?

A person reads every message.

FAQ

Questions people ask next

01Is the Respond to Webhook node included in n8n?
Yes. Respond to Webhook is a core node shipped with n8n, so there is nothing to install and no extra cost on the n8n side. It behaves identically on n8n Cloud, the hosted offering run by n8n, and on a self-hosted instance installed through Docker or npm under the Community Edition and its Sustainable Use license. A workflow built in one place runs the same way in the other, which matters here because the node holds an HTTP connection open and people often prototype on Cloud before moving the flow onto their own server.
02What do you need for the node to work?
No credential. The node has no authentication selector and nothing to connect, because it answers a call that already reached your instance rather than calling an outside service. What it does need is context: a Webhook node as the trigger of the workflow, with its Respond parameter set to Using 'Respond to Webhook' node. Without that setting the connection closes on its own and your carefully built response is discarded. Placed in a workflow that no webhook started, the node is simply ignored.
03What are the limits of the n8n Respond to Webhook node?
The main one is item handling. The node runs once, on the first incoming data item, expressions included, and the Loop node cannot force it to repeat: the workflow runs but the response still carries the first execution only. Returning several items through those workarounds is deprecated from n8n 1.22.0, so use the All Incoming Items option or aggregate first. A second Respond to Webhook node later in the flow is ignored. If the workflow ends without reaching the node, the caller gets a standard message with a 200 status; if it errors first, a 500.
04When should you use this node instead of the Webhook node response setting?
It depends on where the answer comes from. If the caller only needs whatever the workflow produces at the end, the Webhook node's When Last Node Finishes option is simpler and has no item limitation. Reach for Respond to Webhook when the reply has to leave early, before a slow branch runs, or when it needs a shape the workflow output does not have: a specific status code, custom headers, a redirect, a JWT token, a binary file or an empty body. Those eight response types are the reason the node exists.
05n8n or Make for webhook responses?
Both answer incoming calls, and the honest criteria are hosting, data control, cost model and visual logic. Make is a hosted automation platform with no self-hosting option and billing per operation, so a chatty endpoint that fires often has a cost that grows with traffic. n8n runs on n8n Cloud or on your own Docker or npm install, which keeps request payloads on infrastructure you pick, and a workflow is identical either way. Pick on those four criteria rather than on feature lists.
Hack'celeration Lab

Get our weekly integration tips.

No spam. Unsubscribe anytime.