Overview
By default, Roark captures the recording from its own simulation agent’s side of the conversation. This gives you basic transcript and metric analysis, but it’s limited to what Roark can observe externally. When you also send your agent’s call data to Roark — via an integration or the API/SDK — Roark automatically matches and merges the two calls. This unlocks significantly richer analysis because your call carries data that only your agent has access to.What You Gain
Enriched simulations give you access to data from your agent’s perspective, enabling deeper analysis:| Data | Description |
|---|---|
| Full Transcript | Your agent’s transcript, which may be higher quality or include internal annotations |
| Tool Invocations | The actual tool calls your agent made during the conversation (e.g., database lookups, booking actions) |
| OpenTelemetry Traces | Backend traces showing your agent’s internal processing |
| Properties & Metadata | Any custom properties or context your agent attaches to the call |
How It Works
Simulation Runs
You run a simulation as usual. Roark calls your agent (inbound) or your agent calls Roark (outbound), and Roark captures its side of the conversation.
Your Agent Sends Its Call
Your agent sends its call data to Roark through your existing integration or via the API/SDK — the same way you send production calls. No special configuration is needed.
Automatic Matching
When Roark receives your agent’s call, it automatically detects that it corresponds to an active simulation and matches the two calls together.
How Matching Works
Roark matches your agent’s call to the simulation using two key signals:Phone Number
The phone number your agent interacted with is matched against the number Roark provisioned for the simulation. This is the same dynamically assigned number described in Identifying Simulations.Timing
The call must have started during the simulation’s active window. Roark checks that your call’s start time falls within the time range when the simulation phone number was in use for that specific test case. Both signals must match for the calls to be merged. This ensures accuracy even when phone numbers are reused across different simulations.Matching is bidirectional — it doesn’t matter which call arrives first. If your agent’s call arrives before Roark finishes processing the simulation, or vice versa, the merge will happen automatically once both are available.
Setup
There’s no additional configuration required for enriched simulations. If your agent already sends calls to Roark, merging happens automatically. If you haven’t set up call ingestion yet:- Choose your method — Use a voice platform integration or send calls via the API/SDK
- Ensure calls include the phone number — Your call data must include the phone number that participated in the simulation so Roark can match it
- Run simulations — Calls will be matched and enriched automatically
Best Practices
Include Tool Invocations in Your Calls
Include Tool Invocations in Your Calls
To get the most out of enriched simulations, send tool invocations with your call data. This enables metrics that verify whether your agent executed the correct actions, not just whether it generated the right words.
Send Calls Promptly
Send Calls Promptly
While matching is flexible on timing, sending calls shortly after they end ensures metrics and results are available in the simulation report as quickly as possible.
Use Consistent Phone Numbers
Use Consistent Phone Numbers
Make sure the phone number in your call data matches the number your agent actually used during the simulation. Mismatched or reformatted numbers will prevent matching.
Leverage OTEL Traces
Leverage OTEL Traces
If your agent supports OpenTelemetry tracing, include trace data with your calls. This gives you full visibility into your agent’s internal decision-making during simulations.

