Voice Workflows: Phone Agents That Stay On-Script — By Design
The problem with a "smart" agent on a real phone call
A purely autonomous voice agent re-decides the entire conversation on every single turn. That flexibility is a feature for open-ended chat — and a liability for a real business call. On a collections reminder it has to make the regulatory disclosure before discussing the debt. On an appointment line it has to capture the name, the phone number, and the slot — in that order — or the booking is useless. On a support line it must answer from your policy, not a plausible-sounding policy it invented mid-sentence.
When the agent is free to improvise, it eventually improvises the wrong thing: it skips the disclosure, reorders the qualification questions, or hallucinates a refund window that doesn't exist. You can patch the system prompt forever and never fully close the gap, because the prompt is a suggestion, not a guarantee.
Voice Workflows on ThinnestAI close that gap by making the conversation path deterministic. You draw the call as a state machine — a tree of phases — and the agent walks it the same way every time.
What a Voice Workflow is
A workflow is a visual graph of nodes (the phases of the call) connected by edges (the transitions between them). You build it on a canvas, top-down, with the Start node at the top:
- Conversation — the agent speaks and listens for one phase of the call.
- Collector — capture one structured field cleanly: a name, phone number, email, date, or DTMF digits.
- Knowledge — answer this step from your knowledge base, deterministically, instead of hoping the model remembers. Retrieval happens on-script, not on a whim.
- Tool — take a real action at this step (look up an order, trigger a callback, verify a payment) using a tool you've already attached to the agent. Credentials stay server-side; the workflow only references the tool.
- Condition / Set Variable / API Request — branch, compute, and call external services without taking a caller turn.
- Transfer — hand the caller to a human, with the call bridged so billing and context survive the handoff.
- End Call — close the conversation with a defined outcome.
- Global — an interruption handler (a pricing objection, "let me talk to a human") reachable from any phase, which handles the moment and then returns the caller to where they were.
Deterministic by default, smart only when it has to be
The thing that makes Voice Workflows reliable is how transitions resolve. After each caller turn, the engine decides where to go next in a fixed order:
- Equation edges first. Deterministic conditions like
{{name}} existsor{{age}} > 18are evaluated in code, first-true-wins. No model, no latency, no ambiguity. - Then a prompt edge — picked by the Director. Only when routing is genuinely ambiguous does a fast routing model (the Director) run, to read the caller's intent and choose a natural-language branch. It also extracts the variables the current node declared.
- Then globals, then stay. A global interruption may take over; otherwise the agent stays on the node and re-asks.
The Director is gated — it fires only on the turns that actually need judgement, so most transitions cost nothing. And the engine routes first, then replies: it lands on the destination node and that node produces the response, so the next thing the caller hears already belongs to the phase they just moved into. No "thinking out loud," no drift.
Knowledge and Tools, on-script instead of on-a-whim
Most platforms let you attach a knowledge base and tools to an agent and then hope the model retrieves or calls them at the right moment. That works until it doesn't — the model answers from memory, or calls the tool two turns too late.
A ThinnestAI Knowledge node guarantees retrieval at the step you place it, querying the agent's existing knowledge base and handing the result to the next phase to read back. A Tool node guarantees the action runs at the right step, resolving an already-attached tool by reference so no credentials ever leak into the workflow definition. You pick which knowledge and which tool fire at which phase — the determinism extends all the way to retrieval and actions, not just words.
One switch, and it's opt-in
A workflow is either on or off, and that is the only thing that decides whether your agent follows it. The Enabled toggle is the single source of truth — on both real phone calls and in-browser test calls. New and generated workflows start disabled, so nothing you sketch on the canvas ever reaches a caller until you explicitly turn it on and save. Flip it off and the call instantly falls back to your normal agent — no unpublishing, no half-states. Your agent's behaviour is never changed behind your back.
Start from your prompt, not a blank canvas
You don't have to design the graph from scratch. Point Voice Workflows at an agent you've already written and it will generate a first draft workflow from that agent's prompt — greeting, the phases it implies, the questions it asks, sensible branches — laid out as a clean top-down tree you can edit. Or start from a template: Lead Qualification, Appointment Booking, Support Triage, Knowledge Q&A, or Blank.
How ThinnestAI Voice Workflows compare
| Capability | ThinnestAI | Vapi | Retell | Voiceflow |
|---|---|---|---|---|
| Visual state-machine call designer | Yes — node-and-edge canvas, auto-layout | Yes — workflows/squads | Yes — conversation flow | Yes — flow builder |
| Deterministic equation transitions | Yes — evaluated in code, first-true-wins, before any model | Partial — mostly model-driven | Partial | Yes — logic steps |
| Routing model only on ambiguous turns | Yes — gated Director, zero cost on deterministic turns | Model runs each turn | Model runs each turn | N/A |
| On-script Knowledge (RAG) step | Yes — retrieval pinned to a node | Tool/function call | Tool/function call | KB step |
| On-script Tool step from attached tools | Yes — references the agent's tools, credentials stay server-side | Per-flow function config | Per-flow function config | API step |
| Generate workflow from an existing prompt | Yes — one click | No | No | No |
| Global interrupt-and-return handlers | Yes — reachable anywhere, auto-returns with cooldown | Partial | Partial | Manual |
| Indian telephony + Indic voices built in | Yes — Vobiz/SIP, 22+ Indian languages | No | No | No |
Where workflows earn their keep
- Collections & reminders: guarantee the regulatory disclosure fires before the debt is discussed — it's a node, not a hope.
- Appointment booking: capture name → number → slot in order, confirm, and book — no missed field.
- Support triage: answer from your knowledge base on the answer step, branch on whether it resolved, and escalate cleanly when it didn't.
- Lead qualification: walk BANT in a fixed order, score deterministically, and route hot leads to a booking phase.
- KYC / verification: collect and validate each field as its own node, with a tool step doing the real check.
Get started
Voice Workflows are in alpha and live in Agent Studio. Open an agent, find the Workflow tab, and either generate a draft from your prompt or drop in a template. Build it, run Validate, flip Enabled, and Save — your next call follows the script.
No credit card required • Opt-in per agent • Falls back to your normal agent any time you switch it off