- Home
- Resources
- Integrations
- Respond to Webhook
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
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.
How do you wire Respond to Webhook into a workflow?
- 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.
- 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.
- 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.
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.
Parameters index
Enable Response Output Branch
enableResponseOutputWhat 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.
Respond With
respondWithWhat 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:
allIncomingItemsreturns every input JSON item,firstIncomingItemonly the first,jsona custom body set in Response Body,texta text body that ships as HTML by default withContent-Type: text/html,binarya file,jwta token built from Payload,redirecta jump to Redirect URL,noDataan empty body. - Response Data Source: for a file,
automaticallypicks the single binary in the input,setexpects the field name in Input Field Name.
Response Code
options.responseCodeWhat 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.
404 when a lookup found nothing, so the calling application can handle a missing record instead of parsing a success payload.Response Headers
options.responseHeadersWhat 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.
Put Response in Field
options.responseKeyWhat 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.
Enable Streaming
options.enableStreamingWhat 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.
Need help automating Respond to Webhook with n8n?
A person reads every message.
Questions people ask next
01Is the Respond to Webhook node included in n8n?
02What do you need for the node to work?
03What are the limits of the n8n Respond to Webhook node?
04When should you use this node instead of the Webhook node response setting?
05n8n or Make for webhook responses?
Get our weekly integration tips.
No spam. Unsubscribe anytime.