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

# Live Conversations

> Evaluate real production calls in Coval — the production counterpart to simulations.

A **Live Conversation** is a real production call you upload to Coval to evaluate. Running your metrics against calls that actually happened lets you measure how your agent performs in production. (In the app, these are labeled **Conversations**.)

## Sending a conversation in

You submit a conversation by pushing its post-call transcript to Coval — with audio, or transcript-only. Text-only metrics (anything derived from the transcript) start running the moment the transcript lands; audio-derived metrics run once audio is attached.

There are three ways to get a conversation in:

* **API** — `POST /v1/conversations:submit` with the transcript, and optionally `audio_url` or inline `audio`. This is the path for production volume. See the [submit API reference](/api-reference/v1/conversations/conversations/submit-conversation-for-evaluation).
* **UI upload** — the **Upload to Conversations** dialog, for manual or one-off uploads.
* **Telephony (async audio)** — when your recording URL only finalizes after the call ends, submit the transcript first and attach the audio in a second call. See [Attach Audio After a Call](/concepts/conversations/async-audio-attach).

### Submitting with audio

Audio is optional. Attaching it also runs audio-derived metrics (STT word error rate, audio sentiment, and other acoustic checks). How you record matters for role mapping:

* **Stereo (recommended)** — Channel 0 (left) = Agent, Channel 1 (right) = User. Roles are assigned deterministically from channel position.
* **Mono** — Also supported. Speaker roles are inferred from transcript content via an LLM, so mapping is usually accurate but less reliable than stereo.

## What gets evaluated

Every metric you can run on a simulation can run on a conversation. Metrics attach to incoming conversations in three ways:

* **Default Metrics** — a set you define that runs on every incoming conversation.
* **Metric Rules** — add metrics conditionally, based on a conversation's results or metadata keys.
* **Ad hoc** — select metrics yourself when [rerunning on historical calls](#rerunning-metrics-on-historical-calls).

To evaluate behavior that isn't visible in the transcript — tool calls, execution order, internal steps — send [OpenTelemetry traces](/concepts/simulations/traces/opentelemetry#tracing-for-conversations) alongside the submission. You can send traces via the API, the OpenTelemetry SDK, or directly from the Upload to Conversations dialog. Traced conversations also become searchable in [Trace Search](/concepts/conversations/trace-search).

## Closing the loop: add to test sets

When a production call surfaces a problem, add the conversation to a [test set](/concepts/test-sets/overview). The scenario then runs as part of your simulations, so the same failure is checked before future releases.

## Rerunning metrics on historical calls

If you change a metric formulation or add a new metric, you can retroactively apply it to historical conversations without re-ingesting transcripts.

**How to rerun metrics from the conversations table:**

1. Open the **Conversations** page.
2. Click **Select Rows** along the top menu bar under Conversations and use the checkboxes on the left to select one or more calls.
3. Click the **Rerun Metrics** button in the action bar.
4. In the modal, select the metrics you want to run, then confirm. You'll see a toast confirming the launch.

<iframe className="w-full aspect-video rounded-xl" src="https://www.loom.com/embed/59674b1a5b68468380deb9d780a03814" title="Rerun Metrics on Historical Calls walkthrough" frameBorder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

**Limits:**

* You can rerun metrics on up to **500 calls** per batch. If you select more than 500, the button shows a count and displays a toast asking you to reduce the selection.
* Only calls with an existing evaluation output are eligible. Calls without one are automatically filtered out.

<Note>
  Rerunning metrics does not re-ingest or re-simulate the call. It re-evaluates the existing transcript and outputs against the selected metrics. Depending on the number of calls and metrics selected, this may take a few moments to complete.
</Note>

## See also

* [Attach Audio After a Call](/concepts/conversations/async-audio-attach) — submit the transcript at call end and attach audio when the recording finalizes
* [Trace Search](/concepts/conversations/trace-search) — search across all traced calls, simulations and conversations alike
* [Dashboard](/concepts/dashboard/overview) — chart conversation metrics over time
* [Simulations](/concepts/simulations/overview) — the pre-production counterpart to Live Conversations
* [Uploading Conversations](/concepts/conversations/uploading) — transcript and audio formats for upload
