> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thinnest.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Going Live: Enable, Save & Test

> Validate, enable, save, and test a Voice Workflow — and understand exactly how it runs on a live call. The Enabled toggle is the single switch.

# 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.

<Note>
  Voice Workflows are in **alpha**. Open them in **Agent Studio → the left sidebar → Workflow**.
</Note>

<Info>
  **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.
</Info>

## 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**:

| Toggle       | What callers get                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------- |
| **Enabled**  | The agent follows the workflow (its node prompts + Global Prompt).                                            |
| **Disabled** | The agent **ignores** the workflow and runs its **normal** Behavior config (Behavior-panel prompt and tools). |

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

<Steps>
  <Step title="Validate">
    Click **Validate**. The **Issues** tab lists everything the engine validator
    found — fix the errors first.
  </Step>

  <Step title="Enable">
    Flip the toolbar toggle to **Enabled**. (Leave it **Disabled** to keep the
    normal agent answering while you keep editing.)
  </Step>

  <Step title="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**.
  </Step>

  <Step title="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.
  </Step>
</Steps>

## Validate

**Validate** runs the engine validator and surfaces the results in the
**Issues** tab. Issues come in two severities:

| Severity    | Blocks going live? | What to do                                 |
| ----------- | ------------------ | ------------------------------------------ |
| **Error**   | Yes                | Fix before the workflow can run correctly. |
| **Warning** | No                 | Safe to run, but worth reviewing.          |

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](/docs/voice/workflows/nodes)). The call would get
  stuck on that phase.
* **Undeclared variables** — a `{{variable}}` referenced in a prompt, edge
  equation, or [Set Variable](/docs/voice/workflows/transitions) 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](/docs/voice/workflows/api-request) node with no endpoint, webhook,
  or free-form request configured.

<Tip>
  Run **Validate** after every round of edits. Clearing the Issues tab is the
  fastest way to know the workflow will behave.
</Tip>

## Save vs. Enable vs. Publish

Three different actions, three different jobs:

| Action              | What it does                                                                                                                                                                                                                                |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Save**            | Persists the canvas as a draft, **including the Enabled state**. Because the runtime reads your agent's current saved config, saving an **enabled** workflow makes it run on the next real call.                                            |
| **Enabled toggle**  | The single switch that decides whether the workflow runs at all (live **and** test). Off → the normal agent runs.                                                                                                                           |
| **Publish** (agent) | Publishes the **whole agent** — freezes a version you can roll back to and flips the agent's **Published** badge. It publishes the agent and its workflow together; it does **not** independently turn the workflow on. Enabling does that. |

<Note>
  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](/docs/voice/workflows/transitions) for how
  the prompt layers stack.
</Note>

## 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.

<Warning>
  The test runs whatever you've **saved and enabled** — there is no test-in-draft
  mode. So **enable the workflow and Save before testing.** Because enabling is what
  makes the workflow live, enabling it to test also means real callers to this agent
  will get the workflow. If you're not ready for live traffic, test on an agent that
  has no phone number assigned.
</Warning>

## Choosing the Director model

The [**Director**](/docs/voice/workflows/transitions) 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.

<Warning>
  Pick a **fast** model for the Director. It can run on every ambiguous turn, so a
  slow model adds latency to the conversation each time it fires. The default is a
  fast model — keep it that way unless you have a specific reason to change it.
</Warning>

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:

1. **Each node is a phase.** Only the **current** node's prompt and tools are
   active, which keeps the agent on-script.
2. **The opening node greets** (its First Message), then the caller speaks.
3. **After each caller turn the Director extracts** the current node's declared
   variables from what the caller said.
4. **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.
5. **Route, then reply.** The flow lands on the destination node first, and that
   destination node produces the reply.
6. **Internal nodes pass through.** [Condition](/docs/voice/workflows/nodes),
   [Set Variable](/docs/voice/workflows/transitions), and
   [Transfer](/docs/voice/workflows/nodes) nodes run instantly without taking a
   caller turn, then hand off to the next conversational node, which speaks.
7. **API errors don't hang the call.** On a failed
   [API Request](/docs/voice/workflows/api-request), the node follows its **error
   edge** so the flow always moves on.
8. **Globals can interrupt and return.** A [Global node](/docs/voice/workflows/nodes)
   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.

For the full transition mechanics, edge types, and operator reference, see
[Transitions, Variables & the Director](/docs/voice/workflows/transitions).

## 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

<Warning>
  Voice Workflows are in **alpha**. Behaviors may change between releases, and edge
  cases can surface that the validator doesn't catch yet. Always run a **Test call**
  — and ideally a real phone call — before you rely on a workflow for production
  traffic.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="The Workflow Builder" icon="diagram-project" href="/docs/voice/workflows/builder">
    The canvas, palette, sidebar tabs, and toolbar in detail.
  </Card>

  <Card title="Transitions & the Director" icon="right-left" href="/docs/voice/workflows/transitions">
    Edges, conditions, variables, and how routing resolves each turn.
  </Card>

  <Card title="Node Types" icon="circle-nodes" href="/docs/voice/workflows/nodes">
    Conversation, Collector, Condition, Transfer, End Call, and Global nodes.
  </Card>

  <Card title="Workflow Templates" icon="table-list" href="/docs/voice/workflows/templates">
    Start from Lead Qualification, Appointment Booking, or Support Triage.
  </Card>
</CardGroup>
