Run a voice simulation
Pick the version and provider dialing the calls, then read how they landed
A voice run test starts itself the moment it’s created, and Run New Simulation fires another full execution of the same bundle, both already covered in Create a simulation. What’s left is specific to voice: which provider is actually dialing, what a call looks like while it’s in progress, where the finished conversations land, and Re-run simulation, a control that acts on a single execution rather than starting a new one.
Note
This picks up after a voice run test already exists, built in Create a simulation with a voice agent definition attached. That guide covers the wizard itself, picking scenarios and evals; nothing here repeats it.
The definition decides the provider
The Choose Agent definition and Choose version fields in the wizard are where this gets locked in, and for a voice run they carry more weight than they do for chat: the provider that places every call, Vapi or Retell, lives on the agent definition itself, not on the version. Every version under one definition dials through the same provider, so switching providers means pointing the run test at a different definition, not a different version of this one. Voice providers covers what each one supports.
Both choices are fixed once the run test is created. Getting the wrong version or provider costs more here than it does in chat, since undoing it means real call minutes already spent, not just a rerun of code.
While the calls are placed
Each row in Call Details starts as a placeholder reading “Call has not been picked up yet.” Once dialing starts on that row it switches to “Call is in progress,” and stays there until the call ends and the row fills in with duration, status, and a recording. Rows fill in as their calls finish, not in the order they were listed, so a run midway through shows some rows done and others still waiting.
A single call can run up to 30 minutes before it’s cut off, so a scenario with a handful of long, wandering conversations takes a while to finish even at a small row count.
Stop Running, in the header, is available for as long as the run is actively placing calls. It asks for confirmation through a Confirm Stop Runs dialog, and it’s the way to cut a bad batch short instead of waiting out every remaining call.
Where you land when it’s done
You’re still on Call Details, only now every row is a finished call instead of a placeholder. Open one and you land on the call itself: the recording to play back, the transcript beside it, the evals that scored it, and a cost breakdown split across speech-to-text, language model, and text-to-speech usage. Voice calls also carry metrics no chat call has, like talk ratio, interruption counts, and words-per-minute on both sides of the conversation.
Analytics is the tab for looking across every call in the run rather than one at a time, and it’s the same tab any run test uses, not something specific to voice. Explore results walks through both Logs and Analytics, and Call metrics defines every number a voice call produces.
Running it again
Re-run simulation, in the header, acts on the calls that already exist rather than starting a fresh execution. It’s disabled with a tooltip when the run has no completed calls to re-simulate yet. Clicking it opens a choice between two options, and voice is the one channel that gets both:
- Run Evals rescores the existing calls against the run’s current eval configs, recording and transcript untouched. Reach for this after changing an eval’s mapping, when you want updated scores without spending call minutes again.
- Run test + Evals dials fresh calls for the run and scores those. Use it when the agent itself changed and the old recordings and transcripts no longer represent what it does.
Either way, a Confirm Rerun Test dialog asks you to confirm before anything starts.
Dive deeper
Questions & Discussion