Workflows
A workflow is an agent built as a graph of steps. Use it when the conversation has to follow a path - qualify, then branch, then act - rather than being left to the model.
If a single prompt can describe the whole job, use a prompt agent instead. Workflows earn their complexity when there are real branches.
Nodes
A workflow is nodes connected by edges. The node types:
| Node | What it does |
|---|---|
| Start | Where the conversation begins; can speak an opening message. |
| Conversation | The agent talks, with its own prompt for this step. |
| Tool | Calls a tool and stores the result, without the model deciding. |
| Say | Speaks a fixed line and moves on. |
| DTMF | Collects keypad digits. |
| Transfer | Hands the call to a human or another number. |
| End | Ends the call, optionally with a farewell. |
Each conversation node has its own prompt for that step. A workflow-level global prompt is prepended to every one of them, which is where shared rules belong ("never quote a price") rather than repeating them per node.
Edges and routing
An edge connects one node to the next, and its condition decides when it is taken. Conditions are evaluated in order, cheapest first:
- Deterministic - a keyword the caller said, or a variable's value. Free and predictable, so prefer these.
- AI intent - a description of what the caller means, e.g. "the caller wants to reschedule". Only used if the step has intent edges, and it costs one small model call.
Intent routing fails safe: if the decision cannot be made, the conversation stays on the current step rather than jumping somewhere wrong. Every decision is recorded and visible in the session's Routing tab.
Extraction
Any conversation node can capture values from what the caller says - a name, a date, an order number. See Variables and extraction.
Testing a workflow
The Playground shows which node the conversation is on as it happens, and the session's Routing tab shows every decision it made and why. When a workflow goes somewhere unexpected, that tab is the answer.