> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thunderphone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulate a call before you ship

> An AI caller has a real conversation with your agent — same telephony path, real transcript, real grading.

A **simulation** is an AI caller talking to your agent for real: it
rings your number (or connects directly to the agent), improvises
within a scenario you set, and produces a normal call log — transcript,
recording, grading — in Call History. It's how you test a prompt
before real callers hear it, and how you catch regressions after every
change.

## Run one from the agent builder

<Steps>
  <Step title="Click Simulation">
    In the agent builder's top bar, click **Simulation**.
  </Step>

  <Step title="Set the scene">
    Generate a caller scenario with AI or write your own — who the
    caller is, what they want, how difficult they're being. Then
    approve the charge and place the call. (Simulations are real calls
    and bill like them; the dialog shows the cost before you commit.)
  </Step>

  <Step title="Watch it happen">
    A floating activity pill appears as soon as the run is placed —
    your agent is on a call right now. Open the call to follow along;
    you can even [listen in live](/guides/review-calls).
  </Step>
</Steps>

## Build a scenario library

The **Simulations** page (`/dashboard/simulations`) manages scenarios
per agent. Pick an agent and click **Generate scenarios with AI** —
it drafts scenarios from the agent's own prompt, with an optional
**Include edge case scenarios** pass for the hard stuff (angry
callers, wrong numbers, half-answers). Edit and keep the ones you
like.

Scenarios group into **suites** with a minimum pass rate, which can
gate releases in CI — see
[Test an agent end-to-end (API)](/guides/test-agents) for the suite
runner and the programmatic version of everything on this page.

## What to do with the result

Every simulation lands in **Call History** like any other call. Read
the transcript to spot where the prompt needs tightening, check the
grade, and fix-then-rerun. When a real call exposes a gap, promote it:
the call detail page's **Create test case** button turns a real
conversation into a reusable scenario.

***

## Next steps

<CardGroup cols={2}>
  <Card title="Review the call" icon="headset" href="/guides/review-calls">
    Transcript, recording, listen-in, whisper.
  </Card>

  <Card title="Test-calls API" icon="code" href="/api-reference/test-calls">
    Run simulations and batches programmatically.
  </Card>

  <Card title="Suites in CI" icon="flask" href="/guides/test-agents">
    Release gates with pass rates and regression tracking.
  </Card>

  <Card title="Experiments (A/B)" icon="scale-balanced" href="/guides/experiments-ab-testing">
    Compare variants on live traffic once simulations pass.
  </Card>
</CardGroup>
