Test an agent before it calls anyone
Three ways to rehearse a voice agent — typed Voice Lab, zero-egress scenario simulation and a real usability call to a saved test number.
There are three ways to hear what an agent will do, and they cost different amounts of risk. Work up the ladder: rehearse by typing, then simulate, then — only when the wording is right — place a real call to a number you own.
Before you start
Testing needs the voice edit permission. A live usability test additionally needs Enable live usability tests switched on in SettingsVoice & Telephony, a ready caller route, and the destination saved as a test number.
Which one to use
| Method | What it does | Places a call? |
|---|---|---|
| Voice Lab | You type what the lead would say and read the agent's replies | No |
| Scenario simulation | A deterministic run through the agent's logic against a fixture | No — zero egress |
| Live usability test | A real call to a saved test number | Yes |
Voice Lab
Voice Lab sits below the version card on an agent version. Type into the message box — the placeholder is Type a reply… — and read what comes back. There is no telephony involved at all, so it is the fastest way to find a bad opening line or a persona that will not stop talking.
End session is in the chat header.
Voice Lab is per version
It mounts against the version you have selected. Switching versions starts a different rehearsal — if the agent suddenly behaves differently, check which version is selected before assuming something broke.
Scenario simulation
Scenario simulation is the deterministic one. It exercises the agent's workflow and tools against a fixture, and it is explicitly zero-egress: no call is placed, and production suppression is untouched, so a simulated call can never opt someone out or mark a real number.
Open an agent version and click Test agent
The draft is saved and validated first. If validation fails, the modal does not open and the error names the field.
Choose Advanced: scenario simulation
Rather than the live usability test mode.
Set a Test persona (optional)
The placeholder says what it wants: Optional caller context, objections, or conversation path to exercise. This is where you rehearse the awkward call.
Add a CRM lead snapshot ID (optional)
Read-only lead context, so the agent sees the sort of record it will see on a real dial.
Set a Fixture number and Scenario
The fixture placeholder is (555) 010-0001. Deterministic rotation is
the default scenario.
Submit
Live usability test
This places a real call. It is allowed only to a saved test number, and every other gate still applies — provider readiness, agent validation, consent, the emergency stop, concurrency and credits.
Turn on Enable live usability tests
In SettingsVoice & Telephony. It is off by default.
Save the destination as a test number
Under Live test readiness, in the same settings section. The placeholder
is (555) 010-0001.
Open Test agent on the version
Choose Live usability test.
Pick Agent, Version, Product playbook, Caller number and provider
Then the Phone number to call — it must be one of your saved test numbers.
Read the live-call gate readout before you submit
It names the runtime, the provider and your credits. If it says the runtime is mock, no call will be placed however correct the rest is.
Settings reference
| Setting | What it changes | Default |
|---|---|---|
| Agent | Which agent is tested. | — |
| Version | Which version is tested. A draft is saved and validated before the modal opens. | — |
| Product playbook | Which product version the agent may quote during the test. | — |
| Caller number and provider | Which connected number places the call. Live usability test only. | — |
| Phone number to call | The destination. Must be one of the saved test numbers. | — |
| Test persona | Simulation only. Caller context, objections or a conversation path to exercise. | — |
| CRM lead snapshot ID | Simulation only. Optional read-only lead context. | — |
| Fixture number | Simulation only. The number the fixture presents. | (555) 010-0001 (placeholder) |
| Scenario | Simulation only. Which scripted path to run. | Deterministic rotation |
Reading the live test readiness card
SettingsVoice & TelephonyLive test readiness tells you which caller routes are actually usable. Each route reads one of:
| Readout | What it means |
|---|---|
| Inactive | The number exists but is not activated |
| Caller number is not eligible | The number cannot be used as a caller ID for this |
| A provider-setup reason | Something is missing on the Twilio or Telnyx side |
| Available for live usability tests | Ready |
| Readiness has not been reported | No check has come back yet — press Refresh |
With nothing connected you get: No caller numbers were returned. Connect Twilio or Telnyx below, then refresh. Where the surface is not provisioned at all, it says so and points you at scenario simulation instead.
A test call is still a call
Live usability tests consume credits and hit real carriers. They are isolated from production suppression — the call detail page says so — but they are not free and they are not silent. Keep them to numbers you own.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Test agent will not open the modal | The draft failed server-side validation | Read the named field in the error, fix it, and try again |
| The live test option is unavailable | Enable live usability tests is off | Turn it on in Settings → Voice & Telephony |
| The destination is rejected | The number is not a saved test number | Add it under Live test readiness, then retry |
| Every caller route says readiness has not been reported | No readiness check has run yet | Press Refresh on the readiness card |
| The gate readout says the runtime is mock | The platform voice gates are in their safe default posture | Nothing you change in Settings will place a real call — contact Zyan support |
| Voice Lab behaves differently from yesterday | A different agent version is selected | Voice Lab mounts per version; check the selection |