core.respond_webhook
Respond to Webhook (core.respond_webhook)
Control what the caller of your webhook receives. Without this node, a webhook answers immediately with a generic acknowledgment; with it, your workflow builds the HTTP response — status, body, and headers.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
status_code | number | 200 | |
body | expression | (input json) | What to send back; defaults to the incoming item's json. |
headers | rows or object | {} | Response headers. |
Behavior
Works with the Webhook trigger's response_mode: wait_for_completion — the
caller's request stays open until the run reaches this node, then receives
what you configured here. Items pass through the node unchanged, so the
workflow can continue after responding.
webhook (wait_for_completion) → …validate/process… → respond_webhook (201, {"ok": true})
Quirks & tips
- Pair it with
wait_for_completion. Under the defaultimmediateresponse mode the caller has already been answered — this node then has nothing to respond to. - The response is sent once — with multiple input items, the first response wins; the rest pass through as data.
- Keep an eye on the trigger's wait timeout (30s default): a slow workflow answers nobody. Respond early, keep processing after.
Related
- Webhook trigger — the other half of the round-trip.
- Respond to Chat — the same idea for chat sessions.
- IF — branch to different responses (success vs validation error).