Flows/Utilities/Webhooks/Webhook Response

Webhook Response

Send a response back to the webhook caller

Overview

The Webhook Response utility sends an HTTP response back to the service that triggered your webhook. This allows you to acknowledge receipt, return processed data, or indicate success/failure to the calling system.

Without a Webhook Response, your flow will complete but the caller receives a generic success response. Use this utility to customize what the caller receives.

Configuration

Response Type

Select the content type for your response:

JSON- Sets Content-Type to application/json
HTML- Sets Content-Type to text/html
Text- Sets Content-Type to text/plain

Status Code

The HTTP status code to return. Common codes:

  • 200 - OK (success, default)
  • 201 - Created
  • 400 - Bad Request
  • 404 - Not Found
  • 500 - Internal Error

Response Body

The data to send back. For JSON responses, provide valid JSON with templates for dynamic values.

{
  "success": true,
  "message": "Webhook received and flow executed"
}

Alternatively, enable Use Node Output to forward the output from a previous node.

Use Node Output

Toggle to use the output of a previous node as the response body instead of a custom template. When enabled, specify a node reference like {{#3}} to forward that node's output.

Headers

Optional custom response headers. Content-Type is automatically set based on Response Type.

Output

Outputs the configured webhook response details:

Output fields:

  • statusCode - The HTTP status code being returned
  • body - The parsed response body (JSON object if responseType is json)
  • headers - Response headers including Content-Type

Example output:

// If webhook response node is #4:
{
  statusCode: 200,
  body: {
    success: true,
    message: "Webhook received and flow executed",
    webhookId: "whk_abc123",
    flowId: "flow_xyz789",
    payload: { ... }  // Original trigger data
  },
  headers: {
    "Content-Type": "application/json"
  }
}

Examples

Example 1: Simple Acknowledgment

Confirm receipt of a webhook with minimal processing:

Status Code:200
Response Body:
{"received": true, "timestamp": "{{now}}"}

Example 2: Return Processed Data

Send back the result of your flow processing:

[Webhook Trigger] ──▶ [Process Data] ──▶ [Webhook Response]
                             │                   │
                             ▼                   ▼
                      {result: "..."}     Return result to caller
Response Body:
{
  "success": true,
  "processedId": "{{#2.data.id}}",
  "summary": "{{#2.data.summary}}"
}

Example 3: Conditional Response

Return different responses based on processing result:

[Webhook] ──▶ [Validate] ──▶ [IF: Valid]
                                  │
                     ┌────────────┴────────────┐
                     ▼                         ▼
                  True                       False
           [Webhook Response]          [Webhook Response]
             Status: 200                 Status: 400
             {"valid": true}             {"error": "Invalid data"}

Important Notes

Timing: Webhook Response should be used early in your flow if the caller expects a quick response. The response is sent immediately when this node executes, and the flow continues afterward.

One Response Only: Only the first Webhook Response in a flow execution will send a response. Additional Webhook Response nodes are ignored.

Tips

Tip: For long-running flows, send a 202 (Accepted) response early, then use a separate webhook to notify when processing completes.

Tip: Include a request ID in your response so callers can track their request through your system.

Tip: Use appropriate HTTP status codes. Many integrations check the status code to determine if the webhook was processed successfully.

Webhook Response Utility - Flows Guide - Serenities