Node Types
Every Voice Workflow is built from nodes. Each node is one phase of the call. At any moment only the current node’s prompt and tools are active, which is what keeps the agent on-script as the conversation moves from greet → branch → collect → end. Nodes fall into two families, plus a single terminal node:Conversational nodes
They own a caller turn — the agent speaks, the caller replies, and the
Director extracts variables from what was
said. Conversation and Collector nodes are conversational.
Internal nodes
They run instantly with no caller turn. The flow passes straight through
them to the next conversational node. Condition, Set Variable, API
Request, Knowledge, Tool, and Transfer are internal.
All node types
These are voice workflow nodes. They are unrelated to the chat
Flow Editor, which uses Agent / Tool / Team graph nodes.
Conversation
The workhorse node. It speaks to the caller and drives the conversation forward.Extract vs. Require: extract tells the Director which variables to listen
for this turn; require additionally blocks the transition until those variables
are captured. A variable can be extracted without being required.
Collector
A Collector is a prebuilt, transcription-hardened node tuned to reliably capture one common value over the phone, where spelled-out emails and digit strings are easy to mishear. Available collectors:
Reach for a Collector instead of a plain Conversation node whenever a phase exists
only to capture one of these values cleanly.
Condition
An internal node that routes without speaking. It has a single output, and the branching lives entirely on its outgoing edges — each edge carries its own condition.- Equation edges are checked first, deterministically, first-true-wins.
- An Unconditional edge acts as the “else”.
A Condition node branches by edge conditions, not by true/false handles. To add
a branch, draw another edge from its output and give that edge a condition.
Set Variable
An internal node that assigns a variable from a template string, with{{variable}} interpolation so you can compose new values from existing ones — for
example setting {{full_name}} from {{first_name}} {{last_name}}. It runs
instantly and passes through to the next conversational node.
API Request
An internal node that calls an external service and feeds the result back into the workflow. It reuses the unified API & Webhook tool (api_connect), with three
modes — API Endpoints, Webhook, and Free-form Request — and a
Response → Variable mapping that lands response fields into workflow variables
so a downstream Condition can branch on them.
The chosen endpoint’s parameters are filled from workflow variables of the same
name (extract-before-call), and on a failed call the node follows its error
edge so the call never hangs.
See API Request Node for the full
configuration, including the Configure API modal, auth options, OpenAPI import, and
a worked example.
Knowledge
An internal node that looks up a grounded answer from the agent’s knowledge base at this exact step, stores the answer in a variable, and lets the flow branch on whether anything was found. By default it searches for the caller’s latest message, so dropping a Knowledge node right after a question “just works”. Unlike letting the agent decide on its own (which may answer from memory and get it wrong), the Knowledge node makes the lookup guaranteed and on-script — and a following Conversation node reads the stored answer back to the caller. See Knowledge Node for configuration, the found/not-found branching pattern, and a worked example.Tool
An internal node that runs one built-in integration — send an SMS, create a calendar event, look up an order, push to a CRM — at this exact step, and maps the result into variables. It uses the same tools you attach to an agent. Where the API Request node calls your own APIs, the Tool node runs the platform’s built-in integrations. Like the agent deciding on its own, an agent might call a tool — the Tool node makes the action guaranteed at the point you place it. See Tool Node for configuration, input/result mapping, and a worked example.Transfer
An internal node that bridges the live call to a human agent or a phone number. Use it when the caller needs a person, or when the workflow has done its job and the rest of the call belongs to a human.End Call
The terminal node. Place it wherever a path through the workflow finishes.
Use distinct outcome labels on different End Call nodes to make your call results
easy to read after the fact.
Global nodes
Any Conversation node can be marked Global. A Global node is not part of the linear path — instead it has an enter-condition (a prompt or an equation) and becomes reachable from any interruptible node the moment its enter-condition matches. This is how you handle things that can come up at any point in the call — a caller raising a pricing objection, asking to speak to a human, or going off-script. When the enter-condition matches:- The flow jumps to the Global node, which handles the situation.
- When it’s done, the flow returns to the node the caller was on.
A node only reaches Globals if its Interruptible toggle is on. Turn it off on
nodes where an interruption would be disruptive (for example, mid-way through
collecting a sensitive value).
Next steps
Transitions, Variables & the Director
How edges, conditions, variables, and the Director move the call between nodes.
API Request Node
Configure outbound API calls and map responses into variables.
The Workflow Builder
Add, connect, and arrange nodes on the canvas.
Workflow Templates
Start from Lead Qualification, Appointment Booking, or Support Triage.

