Portal Community

Output Ports

PortTrigger ConditionDescription
success HTTP 2xx response The remote server responded with a 200–299 status code. All response data is available in the output object. Workflow continues on this port for normal processing.
error 4xx, 5xx, or network failure Triggered when the server returns a 4xx or 5xx status, when the connection times out, when DNS resolution fails, or when the SSL certificate is invalid. Error details are available in the output object on this port.
Both ports carry the same output schema. Even on the error port, status_code, response_body, and response_headers are populated when the server did respond (e.g. a 404). For network-level failures, status_code will be 0 and error_message will describe the failure.

Input Fields

The HTTP Request node receives context from the workflow engine. These fields are available in expressions during configuration:

FieldTypeDescription
vars.*anyAll workflow variables set by upstream nodes, accessible as vars.variable_name.
input.*anyThe trigger input payload (webhook body, form submission, etc.).
env.*stringEnvironment-level configuration values such as base URLs and feature flags.
workflow.idstringThe current workflow execution ID, useful for correlation and logging.
workflow.started_atdatetimeThe timestamp when the current workflow execution started.

Output Data Schema

On execution, the HTTP Request node writes the following fields into the workflow output, accessible to all downstream nodes:

FieldTypeDescription
status_codeintegerHTTP response status code (e.g. 200, 201, 400, 500). Value is 0 for network-level failures.
response_bodystring or objectThe raw response body as a string. When parse_response: true and the response is JSON, this is a parsed object navigable by expressions.
response_headersobjectDictionary of response headers returned by the server. Keys are lowercased header names.
response_time_msintegerRound-trip request duration in milliseconds, from connection initiation to full response body received.
is_successbooleanConvenience flag. true when status_code is 2xx.
error_messagestringHuman-readable error description. Populated on network failures, timeouts, or SSL errors. Empty on successful responses.
request_urlstringThe final URL used for the request, after expression evaluation and query parameter appending.

Accessing Response Data Downstream

After the HTTP Request node, downstream nodes can reference any output field using the node's output reference. For example, if this node is named callPaymentApi:

Example Output: Successful API Call

{
  "status_code": 201,
  "is_success": true,
  "response_time_ms": 284,
  "request_url": "https://api.mycrm.com/v2/leads",
  "response_headers": {
    "content-type": "application/json; charset=utf-8",
    "x-request-id": "req_8f3a2c1d9b0e",
    "x-rate-limit-remaining": "98"
  },
  "response_body": {
    "id": "lead_74b23c9f",
    "status": "created",
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane.smith@example.com",
    "created_at": "2025-11-14T09:32:11Z"
  },
  "error_message": ""
}

Example Output: Error Response

{
  "status_code": 422,
  "is_success": false,
  "response_time_ms": 118,
  "request_url": "https://api.mycrm.com/v2/leads",
  "response_headers": {
    "content-type": "application/json; charset=utf-8"
  },
  "response_body": {
    "error": "validation_failed",
    "message": "Email address is already registered",
    "field": "email"
  },
  "error_message": ""
}

Example Output: Network Timeout

{
  "status_code": 0,
  "is_success": false,
  "response_time_ms": 30001,
  "request_url": "https://api.slowservice.com/data",
  "response_headers": {},
  "response_body": null,
  "error_message": "Request timeout after 30000ms"
}
Large response bodies: If the API returns very large response bodies (>10 MB), consider setting parse_response: false and processing the raw string with a downstream Transform node to avoid memory pressure.