Skip to main content

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:
DataDescription
Full TranscriptYour agent’s transcript, which may be higher quality or include internal annotations
Tool InvocationsThe actual tool calls your agent made during the conversation (e.g., database lookups, booking actions)
OpenTelemetry TracesBackend traces showing your agent’s internal processing
Properties & MetadataAny custom properties or context your agent attaches to the call
This additional context enables metrics that aren’t possible with the simulation recording alone. For example, the Tool Invocation metric can verify whether your agent actually called the right tool with the correct parameters — not just whether it said it would.

How It Works

1

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

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

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

Merged Analysis

The simulation call is enriched with your agent’s data. Metrics, transcripts, and traces from both sides are combined into a single unified view under the simulation results.

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:
  1. Choose your method — Use a voice platform integration or send calls via the API/SDK
  2. Ensure calls include the phone number — Your call data must include the phone number that participated in the simulation so Roark can match it
  3. Run simulations — Calls will be matched and enriched automatically
If you’re using a voice platform integration like Vapi, Retell, or LiveKit, calls are typically sent to Roark automatically — meaning enriched simulations work out of the box.

Best Practices

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

Next Steps