API Request Node
The API Request node lets a Voice Workflow call your own backend mid-call — check a slot, look up a customer, create a ticket — and feed the result back into the flow as a variable. It runs instantly (no caller turn), then passes through to the next node, so the caller hears no dead air. Under the hood it reuses the unified API & Webhook tool (api_connect) — the
same configuration as the agent’s API & Webhook tool. Anything you can set up
there, you can set up here.
Three modes
The API Request node exposes the same three modes as the agent tool. Pick the one that matches what you’re doing.API Endpoints
Define one or more endpoints (or import an OpenAPI spec) with typed
parameters. Use this to read or write data mid-call — the most common
mode for workflows that branch on live results.
Webhook
Fire a single fire-and-forget webhook URL to kick off downstream
automation (notify a CRM, trigger a Zap). No response mapping needed.
Free-form Request
Hand-build a one-off request when you don’t want to define a reusable
endpoint.
Configure it
Select the node on the canvas to open the Inspector, then click Configure API to open the API Connect modal — the same modal the agent’s API & Webhook tool uses.Set the Base URL
A public HTTPS URL only.
localhost and private/internal IPs are blocked,
so the endpoint must be reachable from the internet.Choose Auth
Pick None, API Key Header, Bearer, or Basic, and fill in the
credentials. Auth is applied to every request the node makes.
Define endpoints (or import OpenAPI)
For the API Endpoints mode, add each endpoint with a name, method,
path, and typed parameters — or import an OpenAPI spec to generate
them automatically.
The API Connect modal here is identical to the agent’s API & Webhook tool. For the
full reference — every auth type, OpenAPI import details, and free-form request
options — see API & Webhook tools.
How inputs flow in
The chosen endpoint’s parameters are filled from workflow variables of the same name. This is extract-before-call: by the time the flow reaches the API Request node, earlier Conversation or Collector nodes should have captured the variables the endpoint needs. For example, an endpoint parameter namedpreferred_date is automatically
populated from the workflow variable {{preferred_date}}. Declare those variables
in the Variables panel and make sure a preceding node collects them.
Map the response into a variable
Reading data is only useful if the flow can act on it. The Response → Variable mapping maps a response field — by dot path — into a workflow variable.| Response field (dot path) | Mapped into | Used for |
|---|---|---|
available | {{slot_available}} | A Condition branches on it |
patient.id | {{patient_id}} | Reused as a parameter in a later call |
{{slot_available}} == true.
Error handling
On a failed or timed-out call, the node follows its error edge — the call never hangs. Always give an API Request node a path to take when the request doesn’t succeed, so the agent can apologize, retry, or offer an alternative instead of leaving the caller in silence.Worked example — slot availability
This is the API Request step from the Appointment Booking template.Call the endpoint
The Check Slot Availability node calls
GET /availability. Its
preferred_date parameter is filled from {{preferred_date}} automatically
(extract-before-call).Map the response
The Response → Variable mapping maps the response field
available into
the boolean variable {{slot_available}}.Branch on the result
The next Condition node checks the equation edge
{{slot_available}} == true — routing to a “book it” branch when the slot is
open, and to an “offer another time” branch otherwise.Next steps
Transitions & Variables
Declare typed variables and write the equation edges that branch on your
mapped response fields.
Node Types
See how the API Request node sits alongside Condition, Set Variable, and the
other internal nodes.
Workflow Templates
Start from Appointment Booking to see this exact API call wired up.
API & Webhook tools
The full reference for the unified API Connect tool this node reuses.

