Going Live: Enable, Save & Test
Building a workflow on the canvas only creates a draft. Whether your agent actually follows it on calls is decided by one thing: the Enabled toggle. This page walks through each toolbar action and then recaps exactly what happens on the wire once a workflow is live.Voice Workflows are in alpha. Open them in Agent Studio → the left sidebar → Workflow.
Workflows are opt-in. A new or generated workflow starts Disabled — your
agent keeps behaving exactly as its Behavior config says until you turn the
workflow on. Nothing you draft on the canvas reaches callers until you enable
it and save.
The Enabled toggle is the single switch
The toolbar’s Enabled / Disabled toggle is the one and only control that decides whether the workflow runs — on both real phone calls and the in-browser Test call:
There is no separate “publish the workflow” step and no test-in-draft override:
if the toggle is off, the original agent runs everywhere.
The path to live
1
Validate
Click Validate. The Issues tab lists everything the engine validator
found — fix the errors first.
2
Enable
Flip the toolbar toggle to Enabled. (Leave it Disabled to keep the
normal agent answering while you keep editing.)
3
Save
Click Save. Saving persists the draft including the Enabled state, and
the runtime reads your agent’s current saved config — so Save + Enabled =
live on the next call.
4
Test call
Click Test call to talk to the workflow from your browser. The test runs
whatever you’ve saved and enabled — the same thing real callers get.
Validate
Validate runs the engine validator and surfaces the results in the Issues tab. Issues come in two severities:
Common things the validator flags:
- Dead-ends — a node that the flow can reach but can never leave (no outgoing edge and not an End Call). The call would get stuck on that phase.
- Undeclared variables — a
{{variable}}referenced in a prompt, edge equation, or Set Variable template that isn’t declared in the Variables panel. - An equation edge with no extractor — an
{{var}} exists-style edge whose variable no node ever captures. The Director never runs, the variable stays empty, and the call gets stuck on that phase. Add an Extract for the variable on the node that asks for it. - An unconfigured API Request — an API Request node with no endpoint, webhook, or free-form request configured.
Save vs. Enable vs. Publish
Three different actions, three different jobs:An enabled Voice Workflow uses the workflow’s Global Prompt (Settings tab)
plus each node’s per-node prompt — not the agent’s Behavior-panel system
prompt. While the workflow runs, the Behavior-panel prompt is ignored. See
Transitions, Variables & the Director for how
the prompt layers stack.
Test call
Test call launches a web call from the studio so you can talk to the workflow from your browser — no phone needed. Connect your mic, then walk the flow: trigger each branch, confirm collectors capture cleanly, and watch globals interrupt and return.Choosing the Director model
The Director is the fast LLM that runs on ambiguous caller turns to extract the current node’s variables and pick which prompt-condition edge is met. You set its model and temperature in the Settings tab. The Director is gated: it only runs when routing is genuinely ambiguous. Deterministic equation edges and global enter-conditions are evaluated in code without it, which keeps latency low on most turns.How it runs on a call
Once a workflow is enabled, here’s exactly what happens on a live call:- Each node is a phase. Only the current node’s prompt and tools are active, which keeps the agent on-script.
- The opening node greets (its First Message), then the caller speaks.
- After each caller turn the Director extracts the current node’s declared variables from what the caller said.
- The engine resolves the transition in a fixed order:
equation edges first (deterministic, first-true-wins) → then the
Director’s chosen prompt-edge (only if the node’s
require[]variables are satisfied) → then global enter-conditions → else stay on the node and re-ask. - Route, then reply. The flow lands on the destination node first, and that destination node produces the reply.
- Internal nodes pass through. Condition, Set Variable, and Transfer nodes run instantly without taking a caller turn, then hand off to the next conversational node, which speaks.
- API errors don’t hang the call. On a failed API Request, the node follows its error edge so the flow always moves on.
- Globals can interrupt and return. A Global node becomes reachable from any interruptible node when its enter-condition matches (e.g. the caller raises a pricing objection or asks for a human). It handles the situation, then returns the caller to the node they were on. A per-global cooldown (in turns) stops it from re-triggering immediately.
Turning it off
To stop a workflow from running, flip the toggle to Disabled and Save. Calls immediately fall back to the agent’s normal Behavior config — no unpublish needed. The draft stays on the canvas exactly as you left it, ready to re-enable later.Alpha limitations
Next steps
The Workflow Builder
The canvas, palette, sidebar tabs, and toolbar in detail.
Transitions & the Director
Edges, conditions, variables, and how routing resolves each turn.
Node Types
Conversation, Collector, Condition, Transfer, End Call, and Global nodes.
Workflow Templates
Start from Lead Qualification, Appointment Booking, or Support Triage.

