Request Node (API Calls)

Overview

The Request node in Flow Builder at the Flow Builder lets you make HTTP API calls from within your flow. Use it to send data to external systems, retrieve information, or trigger webhooks. Unlike the Tool/Function node, the Request node gives you full control over every aspect of the HTTP request.

Adding a Request Node

  1. Open the node palette on the left side of the canvas.
  2. Drag a Request node onto the canvas.
  3. Connect it to the preceding node via an edge.
  4. Click the node to open its configuration panel.

Configuration Fields

FieldDescription
MethodHTTP method: GET, POST, PUT, PATCH, or DELETE
URLThe endpoint URL. Supports {{variable}} substitution.
Content TypeThe Content-Type header value (e.g., application/json)
AuthorizationThe Authorization header (e.g., Bearer {{api_token}})
HeadersAdditional headers as key-value pairs
Query ParametersURL query parameters as key-value pairs
Body Modekey-value (form parameters) or raw (JSON/text)
BodyRequest body content (raw mode) or key-value pairs
Response VariableVariable name to store the API response
AwaitWhether the flow waits for the response before continuing

Variable Interpolation

Every text field in the Request node supports {{variable}} substitution. This includes the URL, headers, authorization, query parameters, and body. At runtime, the engine replaces each placeholder with its current value.

URL Example

https://api.example.com/customers/{{customer_id}}/appointments

Authorization Example

Bearer {{api_token}}

Raw Body Example

{
  "name": "{{caller_name}}",
  "email": "{{caller_email}}",
  "appointment_date": "{{selected_date}}",
  "notes": "{{conversation_summary}}"
}

Use the VariablePicker (click the {x} icon) to browse and insert available variables.

Response Handling

When you set a Response Variable (e.g., booking_result), the node automatically creates three variables after execution:

VariableContains
{{booking_result}}The response body (parsed JSON or raw text)
{{booking_result_status}}The HTTP status code (e.g., 200, 404, 500)
{{booking_result_error}}Error message if the request failed

Use a Logic node after the Request node to branch based on the status code or check for errors before proceeding.

Sync vs Async

The Await toggle controls whether the flow waits for the API response:

  • Await enabled (sync): The flow pauses until the response arrives. Use this when downstream nodes need the response data.
  • Await disabled (async): The flow continues immediately. The API call runs in the background. Use this for fire-and-forget operations like logging or notifications.

Timeout

Request nodes have a 10-second timeout. If the external API does not respond within this window, the request fails and the error variable is populated. Design your flows to handle timeout scenarios gracefully with a Logic node that checks the error variable.

Common Patterns

POST Data to a CRM

After extracting caller information, use a Request node to POST the data to your CRM:

  • Method: POST
  • URL: https://api.yourcrm.com/leads
  • Body (raw): {"name": "{{full_name}}", "phone": "{{phone}}", "email": "{{email}}"}
  • Response Variable: crm_result

GET Account Data

Look up a caller's account before the conversation continues:

  • Method: GET
  • URL: https://api.yourapp.com/accounts/{{account_id}}
  • Await: enabled
  • Response Variable: account_data

Then reference {{account_data}} in subsequent Conversation node prompts to personalize the interaction.

Tip: For reusable API integrations that you need across multiple flows, consider using the Tool/Function node instead. The Request node is best for one-off or flow-specific API calls.


Was this article helpful?