Skip to content

HTTP Response

Type key: http_response_node
Group: Integrations
Category: integration
Tier: CORE

The HTTP Response node terminates a workflow execution by returning a complete HTTP response to the caller. It is the counterpart to the Receive Webhook trigger and is used to build synchronous API endpoints and webhook responders directly inside Voodflow.

Handles

HandleDirectionDescription
inputInputData available for template resolution in body and headers
OutputNo output handle — this is a terminal node

Configuration

FieldTypeDefaultDescription
status_codeinteger200HTTP status code for the response
content_typestringapplication/jsonValue of the Content-Type response header
bodystring""Response body; supports {{tags}} for dynamic content
headersarray[]Additional response headers (key-value pairs)

Terminal Node Behavior

Once this node executes, the workflow immediately halts for that branch. No further nodes are executed after HTTP Response. If the workflow has parallel branches, only the branch reaching HTTP Response is terminated; other branches continue independently.

The response is sent back to the HTTP client that triggered the workflow via the webhook endpoint. This enables the complete request → process → response pattern within a single workflow.

Status Codes

Any valid HTTP status code is accepted:

RangeCommon Use
200Successful operation with body
201Resource created
204Success with no body
400Validation failed (use with body describing the error)
401Unauthorized
403Forbidden
404Resource not found
422Unprocessable entity (validation errors)
500Internal server error

Content Types

content_typeUse Case
application/jsonREST API responses (default)
text/htmlRendered HTML pages
text/plainPlain text responses
application/xmlXML / SOAP responses
text/csvCSV file downloads
application/pdfPDF responses (binary)

Template Support

The body field and all header values support {{tags}}:

json
{
    "status": "success",
    "user_id": "{{input.id}}",
    "name": "{{input.name}}",
    "token": "{{variables.generated_token}}"
}

Examples

Standard JSON Response

yaml
Status Code: 200
Content Type: application/json
Body:
    {
        "ok": true,
        "message": "Processed successfully",
        "data": { "id": "{{input.id}}", "status": "{{input.status}}" },
    }

HTML Page Render

yaml
Status Code: 200
Content Type: text/html
Body: |
    <!DOCTYPE html>
    <html>
      <body>
        <h1>Hello, {{input.name}}!</h1>
        <p>Your subscription is {{input.plan}}.</p>
      </body>
    </html>

Validation Error Response

yaml
Status Code: 422
Content Type: application/json
Body:
    {
        "error": "Validation failed",
        "message": "{{variables.validation_error}}",
    }

Custom Response Headers

yaml
Status Code: 200
Content Type: application/json
Headers:
    X-Request-ID: { { variables.request_id } }
    Cache-Control: no-store
    X-Voodflow-Node: http_response_node
Body: { "ok": true }

Typical Workflow Pattern

Receive Webhook


[Processing nodes…]

      ├─ success ──▶ HTTP Response (200, JSON body)

      └─ failure ──▶ HTTP Response (422, error body)

Notes

  • Placing HTTP Response on both the success and error branches of a Catch node is the canonical pattern for building reliable API endpoints
  • There is no output handle; nothing can be connected downstream of this node
  • The body field is sent as-is, after template interpolation; ensure the content matches content_type

Proprietary software — source-available. All rights reserved.