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

Handle Direction Description
input Input Data available for template resolution in body and headers
— Output No output handle — this is a terminal node

Configuration

Field Type Default Description
status_code integer 200 HTTP status code for the response
content_type string application/json Value of the Content-Type response header
body string "" Response body; supports {{tags}} for dynamic content
headers array [] 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:

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

Content Types

content_type Use Case
application/json REST API responses (default)
text/html Rendered HTML pages
text/plain Plain text responses
application/xml XML / SOAP responses
text/csv CSV file downloads
application/pdf PDF 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

TEXT
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