Webhook Response
Send a custom HTTP response back to the caller of a Webhook Listener trigger.
The Webhook Response node sends a custom HTTP response back to the caller that triggered the workflow. It is designed to work with a Webhook Listener set to "Wait for Completion" response mode. You control the status code, content type, headers, and body of the response.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Status Code | Number | Yes | HTTP status code to return (100-599). Defaults to 200. |
| Content Type | Select | No | Response content type: JSON, HTML, Plain Text, or XML. Defaults to JSON (application/json). |
| Response Headers | Key/Value list | No | Additional response headers. Values support template variables. |
| Response Body | Text (variable) | No | The response body content. Supports template variables. For JSON responses, ensure the body is valid JSON. |
Content Type Options
| Label | Value |
|---|---|
| JSON | application/json |
| HTML | text/html |
| Plain Text | text/plain |
| XML | application/xml |
Output
| Field | Type | Description |
|---|---|---|
| statusCode | number | The status code that was sent in the response. |
| contentType | string | The content type that was sent in the response. |
Example
A workflow that validates an incoming webhook payload and returns a structured JSON response:
- Webhook Listener -- Path:
validate-order, Method: POST, Response Mode: Wait for Completion. - If/Else -- Check that
webhookTrigger_1.body.orderIdis not empty. - HTTP Request (true branch) -- Fetch order details from a backend API.
- Webhook Response (after HTTP Request) -- Status: 200, Body:
{"status": "ok", "order": "{{httpRequest_1.body}}"}- Webhook Response (false branch) -- Status: 400, Body:
{"status": "error", "message": "Missing orderId"}Response headers are sanitized to prevent CRLF injection. All header values have carriage return and newline characters stripped automatically.