Workflows
A workflow is a visual, directed acyclic graph (DAG) of nodes that drives an agent's conversation. Instead of relying entirely on the LLM to navigate a conversation, workflows define predictable paths with conditional logic, non-LLM actions, and structured conversation steps.
Workflows vs. Standard Agents
| Aspect | Standard Agent (advanced) | Workflow Agent |
|---|---|---|
| Conversation flow | LLM decides based on instructions | Graph of nodes with explicit paths |
| Predictability | Flexible, sometimes unpredictable | Deterministic branching |
| Actions | Tools called by LLM decision | Nodes execute actions at defined points |
| Best for | Open-ended conversations | Structured processes, compliance-heavy flows |
A workflow agent still uses an LLM for the conversation nodes, but the overall flow, branching, and non-conversational actions are controlled by the graph.
Node Types
| Node | Purpose |
|---|---|
conversation | LLM-driven dialogue with custom per-node instructions. The agent speaks, listens, and responds within this node's scope. |
branch | Conditional routing based on Python expression evaluation. Routes to different nodes based on collected data or context. |
transfer | SIP call transfer to another number. Supports blind (immediate) or warm (announced) transfer. |
end_call | Terminate the call with an optional farewell message before disconnecting. |
sms_send | Send an SMS message to the caller or a specified number during the call. |
webhook_call | Make an HTTP request (GET, POST, PUT, PATCH, DELETE) to an external service. Response data is available to subsequent nodes. |
wait | Pause execution for a specified duration before continuing to the next node. |
set_variable | Assign a value to a workflow context variable for use in subsequent nodes and expressions. |
knowledge_base | Perform a RAG (retrieval-augmented generation) lookup from a connected knowledge base. Results are injected into the next conversation node. |
global | Always-active handler that responds to specific keywords from any position in the workflow. Used for interrupt phrases like "help" or "cancel". |
How It Works
- The call starts at the entry node (typically a
conversationnode with a greeting). - When a node completes, the workflow engine evaluates outgoing edges.
branchnodes evaluate conditions to choose the next path.- Action nodes (
webhook_call,sms_send,set_variable) execute and pass control to their successor. - The call ends when an
end_callnode is reached or the caller hangs up. globalnodes can interrupt the flow at any point when their trigger phrases are detected.
Versioning
Workflows use a draft/publish model:
| State | Description |
|---|---|
| Draft | Work-in-progress graph. Edits are saved but not active. |
| Published | Locked version that agents use. Immutable once published. |
When you link a workflow to an agent, the agent uses the latest published version. Publishing creates a new immutable version — your draft remains editable for the next iteration.
Building Workflows
Workflows are built using the Workflow Builder in the dashboard — a visual drag-and-drop interface for constructing and connecting nodes. See Workflow Builder for a step-by-step guide.
