For the complete documentation index, see llms.txt. Any page on this site can be fetched as Markdown by appending .md to its URL.

Test a Workflow

Run a saved workflow version from the editor (as a call, a run with variables, or a first SMS or chat message) and watch its path on the canvas.

Test runs the workflow you have open, as it was last saved, without routing a phone number to it or publishing it first. You can place a voice call from your browser, start a run with variables you choose, or send the workflow a first SMS or chat message. While the test runs, the canvas shows the path it takes and a run panel shows what each node did.

Start a test

Select Automations → Workflows in the left navigation and open a workflow. Test sits in the top right of the editor, next to Publish. On a narrow window it shrinks to an icon; hover over it to see the name.

The test runs the version open in the editor, as it was last saved, whether that version is a draft or published. Unsaved changes are handled before the test starts:

  • A draft with unsaved changes is saved in place when you click Test.
  • A published version with unsaved changes can't be saved in place. The editor says so and opens Save as New Draft. Save the draft, then click Test again to test it.

The Test version dialog then asks which kind of test to run:

KindWhat it takesWhat it does
Voice CallNothingPlaces a call from your browser into the workflow
RunStarting variables, optionalStarts the workflow with those variables
SMSA First Message, and optional starting variablesStarts the workflow as if that text had arrived
ChatA First Message, and optional starting variablesStarts the workflow as if a visitor sent that message

The Voice Call kind runs on the same telephony path as a phone call, so Play Message, Capture DTMF, speech capture, and the AI Voice Agent node behave as they do for a caller.

For the other kinds, Add Variable adds a Name and Value pair under Starting Variables. Values are passed as text, a row with no name is ignored, and two rows can't share a name (Each variable needs a unique name.).

Choose Start Call or Start Run, and grant microphone permission if your browser asks. If a run can't start, the dialog shows Couldn't start the test run with the reason, and the canvas stays editable.

The dialog keeps the kind, variables, and message you started with, so clicking Test again repeats the same test. Cancel clears them.

Watch the path

While a test runs, the canvas is read-only in your browser. You can pan, zoom, and click nodes, but not move, add, connect, or delete them, and undo, redo, and save are off. The editor header shows Test run in progress and the version under test.

As the run moves:

  • Once the first node runs, the nodes the run hasn't reached are dimmed.
  • Each edge the run took is drawn thicker and animated. The other edges fade.
  • The node running or waiting right now pulses.
  • Each visited node carries a badge with its step number. A node visited more than three times shows its first three steps and a +n count for the rest.

Exit Test in the header leaves the test and unlocks the canvas. Exiting during a voice test hangs up the call. A Run, SMS, or Chat test carries on to its end on the server after you exit; the editor stops showing it.

The run panel

The Test Run panel opens on the right when the test starts. The Run Panel switch in the header hides and shows it.

The top of the panel says where the run is:

StatusMeaning
Starting…No node has run yet
RunningThe workflow is running
Waiting for the next message at node nameAn SMS or chat test reached a node that waits for a reply
EndedThe workflow finished
Ended with an errorThe workflow stopped on an error
Caller disconnectedThe workflow ended with a disconnect
Call endedA voice test call ended before the workflow recorded its finish

Below that, Nodes lists every step in order with the node's name and its state: Running, Waiting, Done, or Error. Once the run has ended, Response shows the payload a Response node returned, or No Response node ran. Variables shows the variables as the run last recorded them.

Click a step, or a visited node on the canvas, to open that node's detail. All Nodes, a click on an empty part of the canvas, or Escape goes back to the list. The detail shows:

  • Visit — for a node the run reached more than once, which visit to show.
  • Result — the Exit the node took, the Next Node, and the Duration. A node that took its fallback exit shows Took the fallback exit.
  • Message — for Send SMS and Send Chat Message nodes, the message the node sent or would have sent.
  • Response — the node's own response data.
  • Variables After This Node — the variables once the node finished, with the names it changed listed under Changed.

Some values are hidden:

  • A private variable's value is masked with * wherever it appears in the panel, including inside other values.
  • When Redact Data in Logging is on for the workflow or for a node, that node's response, message, and variables show [REDACTED].
  • When a node's recorded data is over 64 KB, its values show Too large to display with the size.

During a call

A voice test shows the call at the top of the Test Run panel, above the node list, so you can watch the path on the canvas while you talk. The Call bar shows the time elapsed against the five minute limit, and its arrow hides the call controls while keeping Hang Up in reach. Turning off the Run Panel switch hides the call controls too, but the call keeps going; Exit Test hangs it up.

  • Keypad — the digits 0 to 9, *, and #. A press is sent to the call as a key press, so a Capture DTMF node or a menu reads it as it would from a phone. The digits you've sent show above the keypad. The keys are disabled until the call connects.
  • Mute — stops sending your microphone.
  • Hang Up — ends the call.

When the call ends, the panel says why and links to View call details:

MessageWhat happened
The workflow ended the call.The call's channel closed, for example at a disconnect
Call ended.You hung up
Ended after the 5 minute test call limit.The call hit the time limit
The call ended at transfer node "…". Nothing was dialed.The workflow reached a transfer node

The path and the run panel stay on the canvas after the call ends, until you click Exit Test.

Text messages aren't sent

A Send SMS node in a test doesn't send a text. It records the message it would have sent (the To, From, and Body) under Message in the node's detail, then takes the exit a sent message would. With Wait for Reply on, it waits as it would after a real send. This holds for every kind of test, voice test calls included, and for subroutines the workflow calls.

The exception is an AI Voice Agent's tools. During a voice test call, both of these do send a real text:

  • A Send SMS node in a workflow the agent runs as a tool. That workflow runs as a normal run.
  • A Send SMS node tool on the agent. The agent sends it directly, outside any workflow.

A Send Chat Message node's message shows under Message the same way.

SMS and chat tests stop at the first wait

An SMS or Chat test sends the workflow one message, the First Message. When the workflow reaches a node that waits for the next message, such as Send SMS with Wait for Reply on, the status shows Waiting for the next message at that node. Sending a follow-up message from the editor isn't supported yet.

If the waiting node has a timeout, the run takes its no-reply exit when the timeout passes, and the canvas follows it if you are still in the test.

Transfers dial nothing

A test call never places a transfer.

  • A Transfer to External or Transfer to Queue node ends the test call when it is reached. The end message names the node, and the call details list the transfer as Test call ended at transfer with the node's name and the kind of transfer. The end message waits up to about 30 seconds for that record; if it has not arrived, the panel shows The workflow ended the call. instead.
  • An AI Voice Agent node's own transfer tool is refused, and nothing is dialed. The agent is told This is a test call, so the transfer was not placed.
  • A workflow the agent hands off to, and a subroutine the workflow calls, are part of the same test call. A transfer node reached there ends the call the same way.

To confirm the transfer destination itself answers, use a real call to a routed number.

Billing

A voice test call is billed as call minutes, the same as a phone call into the workflow. It has no number of its own, so on the Billing page's Usage tab its minutes show as Local call, in, beside the workflow's IVR time. See How a call is billed. If your organization has no call-minute balance, the call ends before it connects and the panel shows Couldn't complete the call with Your organization's balance is too low to place a test call.

Call details

A voice test call is recorded as a conversation, and Call Logs lists it as Browser test call in place of a caller's number. When it ends, View call details opens its page under Insights → Call Logs, with the steps the workflow took. See Call Logs for how to read it.

Limits and defaults

LimitValue
Call length5 minutes, then the call ends
Concurrent callsOne at a time per signed-in user, counting agent preview calls
Version testedThe version open in the editor, as last saved
TransfersNever dialed; the call ends at a transfer node
Messages per SMS or chatOne, the First Message
Records per run2,000 records or 8 MB; the step list stops at either
How long a run is keptOne hour after its last update
SubroutinesThe Subroutine node shows on the path; its nodes don't

The one-call limit is shared with Call Agent in the agent editor, so a preview call left running in another tab blocks a test call until it ends or reaches its own five minute limit.

Troubleshooting

Permission needed. The browser refused microphone access. Enable it for this site in your browser's settings, then use Try Again.

Couldn't complete the call. The call failed to start. If the message is Failed to start a test call., one cause is another test call or agent preview call still running under your account, for example in a tab you left open. End it, or wait for it to reach the five minute limit, then try again. If the message says the balance is too low, see Billing.

Your sign-in session expired. Reload the page and start the call again.

This test run is no longer available. The run's record expired an hour after its last update, or the run never started. The path clears from the canvas. Click Exit Test and start a new test.

Can't reach the test run. The path may be out of date. The editor failed to read the run three times in a row. It keeps trying, and the notice clears once a read succeeds.

Next steps

On this page