Agent Workflow
Build branching conversation flows on your agent's Workflow tab
Overview
The Workflow tab on an agent is a visual, node-based editor for designing how that agent's conversation flows. Instead of relying on one prompt for everything, you lay out a diagram of nodes (conversation states and actions) connected by edges(transitions with conditions). This lets you route callers to specialized behavior, guarantee a tool runs, branch on the result, transfer, and end the call cleanly.
This is different from the separate Workflows feature. The Workflows page builds back-office automations that run outside of calls. The Agent Workflow builder described here shapes what happens during a single agent's live conversation.
The canvas
Open an agent and select the Workflow tab. On the canvas you can:
- Every workflow begins at the Start node, which can't be deleted.
- Add a node with the + button on an existing node, which creates the new node and connects it below.
- Connect two nodes by dragging from one node's handle to another; this opens the edge's condition settings.
- Click a node to open its configuration panel on the right; click an edge to configure its condition.
- Duplicate or delete a node from its inline actions (the Start node can't be removed). Press Delete or Backspace to remove the selected node or edge.
- Use the canvas controls to zoom, fit the view, and Auto-arrange the layout Vertical or Horizontal.
- Click Save to sync the flow to your agent. Saving is disabled until you have unsaved changes, and you'll be warned if you try to leave with unsaved work.
Node types
Open the Add Node menu to add any of these:
| Node | What it does |
|---|---|
| Subagent | Changes the agent's behavior for this step — prompt, model, voice, tools, and knowledge base. |
| Dispatch Tool | Guarantees one or more tools run at this step, with success/failure routing. |
| Agent Transfer | Hands the conversation off to another AI agent. |
| Update State | Sets dynamic variables mid-conversation for branching. Runs instantly with no model call. |
| Transfer to Number | Transfers the call to a phone number or SIP URI. |
| End Call | Ends the conversation gracefully. Every complete path should reach an End node. |
Subagent node
A Subagent node overrides the base agent for that part of the conversation. Its panel is organized into General, Knowledge Base, Tools, and Edges tabs.
- Conversation goal — what this step should accomplish. Turn on Override prompt to replace the base instructions instead of extending them.
- Voice — inherits the base agent's voice unless you set one.
- LLM — choose a model from urvo, Google, OpenAI, or Anthropic; inherits the base model if left unset.
- Eagerness — Patient, Normal, or Eager (how quickly the agent takes its turn).
- Spelling patience — Auto or Off.
- Speculative turn — an option to start responding before the caller fully finishes.
- Additional documents — knowledge base items added just for this node.
- Additional tools — tools available just for this node.
Dispatch Tool node
Add one or more tools that must run at this step. All tools run in parallel, and the node succeeds only if every tool succeeds. Use the edge's Tool Result condition to route the success and failure paths.
Agent Transfer node
- Transfer to — this agent (to a specific node) or another workspace agent.
- Target workflow node — required when transferring within the same agent.
- Delay before transfer — milliseconds to wait before handing off.
- Transfer Message — an optional line spoken during the transfer.
- Enable First Message — play the receiving agent's greeting after transfer.
Transfer to Number node
- Transfer type — Conference or SIP REFER.
- Destination type — a phone number or SIP URI, either fixed or from a dynamic variable.
- Post-dial digits — optional DTMF tones sent after connecting (Twilio transfers only).
Update State node
Add one or more assignments, each with a Variable name, a Value type (Text, Number, Boolean, or another Variable), and a value. It runs instantly with no model call, so you can use it to set flags that downstream Expression edges branch on.
Edges and conditions
Click an edge to choose how the conversation moves along it. Each edge can have a Label, and you can enable a Backward edge to allow returning along a connection.
- None — always follow this edge.
- LLM Condition — follow when a natural-language condition is met (for example, "The user has a billing question").
- Expression — build comparison rules on variables using
=,≠,>,≥,<,≤, combined with Match ALL (AND) or Match ANY (OR). - Tool Result — only on edges leaving a Dispatch Tool node; route on Succeeds or Fails.
Templates
Click Templates to start from a common pattern. Applying a template replaces the current canvas, so review and save afterward. Available templates:
- Qualification Flow — route callers to technical or billing support based on their needs.
- Authentication Flow — collect details, run an authentication tool, then branch on success or failure.
- Enterprise Tier Escalation — look up the caller's tier and send enterprise callers to priority support.
- Business Hours Router — transfer to a human during business hours and handle after-hours calls otherwise.
Global settings and analytics
- When nothing is selected, the panel shows global settings, including a Prevent infinite loops toggle that stops the flow from cycling endlessly when conditions keep matching.
- To disable a workflow entirely, disconnect the Start node.
- Click Analytics for workflow-level metrics over the last 7, 30, or 90 days: Conversations, Success rate, Avg duration, Avg messages, and an Outcomes breakdown.
Next steps
- Configure your agent's base voice, model, and prompt.
- Add tools so your Dispatch Tool and Subagent nodes have something to call.
- Analyze calls to see how your flow performs.