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

# Calls

> Review what your agents did on the phone. Read the Calls table, open a call to see the transcript and insights, filter and export call history, and manage scheduled callbacks.

**Calls** is the record of everything your agents have done on the phone. Use it to
review conversations, find the calls that need attention, and export data for
reporting.

There are two views:

* **History** shows calls that have already happened.
* **Scheduled** shows calls queued to happen later.

On this page:

* [Reading the Calls table](#reading-the-calls-table)
* [Opening a call](#opening-a-call)
* [Filtering call history](#filtering-call-history)
* [Exporting to CSV](#exporting-to-csv)
* [Scheduled calls](#scheduled-calls)
* [Where to go next](#where-to-go-next)

***

## Reading the Calls table

Go to **Calls** and open the **History** tab. Each row is one call.

<Frame>
  <img src="https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/calls/calls-table.jpg?fit=max&auto=format&n=Ntis-q5QWqwCqRQw&q=85&s=4fe3b2dbd0977506429e3dc6e9430cd2" alt="The Calls History table, showing one call with its start time, agent, numbers, duration and outcome" width="1496" height="697" data-path="images/product/calls/calls-table.jpg" />
</Frame>

| Column | What it shows |
| - | - |
| **Start** | When the call began. |
| **Agent Name** | The agent that handled the call. Select it to open the agent. |
| **Numbers** | Who called who. Calls that came through a web widget show **web** on both sides instead of a phone number. |
| **Duration** | How long the call lasted. |
| **Outcome** | How the call ended. |
| **Issues** | Whether anything went wrong on the call. |
| **Result** | Whether the call counted as a success. |

### Outcome

**Outcome** answers "how did this call end".

| Outcome | What happened |
| - | - |
| **Voicemail** | The agent reached an answering machine rather than a person. |
| **Customer Disconnected** | The person hung up. |
| **Bot Disconnected** | The agent ended the call. |
| **In progress** | The call is happening right now. |
| **Error** | Something stopped the call from running. |

Select the information icon next to an outcome to see the specific reason, for
example **Voicemail Detection Hangup**.

### Issues

**Issues** flags calls worth a second look. A call is flagged when it recorded an
error, when an action the agent ran returned an error, or when the agent was slow
to respond.

Response time is graded in two bands. Above **2 seconds** is a warning. Above
**5 seconds** is an error, because delays that long are noticeable to the person on
the call.

A dash means nothing was detected.

<Tip>
  Slow responses usually come from a provider rather than from your prompt. If the
  same agent keeps getting flagged, try a different Speech to Text or LLM provider
  on its **Advanced Settings** tab.
</Tip>

### Result

**Result** is the pass or fail judgement for the call. It stays empty until you set
up **Result Conditions** on the agent's **Post-Call** tab.

| Result | Meaning |
| - | - |
| **Success** | The call met your conditions for a good outcome. |
| **Unsuccessful** | The call met your conditions for a bad outcome. |
| **Neutral** | Neither set of conditions matched. |

If a call matches both sets of conditions, it counts as **Unsuccessful**.

***

## Opening a call

Select any row to open **Call Overview**.

<Frame>
  <img src="https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/calls/call-overview-summary.jpg?fit=max&auto=format&n=Ntis-q5QWqwCqRQw&q=85&s=4360296f6c1544dbf2ed301ee5328d7e" alt="Call Overview showing the transcript on the left and the Summary tab on the right with duration, outcome and an extracted insight" width="1496" height="697" data-path="images/product/calls/call-overview-summary.jpg" />
</Frame>

The left side shows the **transcript**, with each turn timestamped and labelled as
the caller or the agent. If recording was enabled for the agent you can play the
audio here. You can also download the transcript.

The right side has four tabs:

**Summary** gives you the call's duration, its outcome, and any **insights** your
agent extracted. Two actions live here:

* **Create test from call** turns this conversation into a test case on the agent's
  **Test** tab.
* **Improve agent** opens the agent's **Train your agent** panel with this call's
  transcript loaded, so you can turn what went wrong into prompt changes. See
  [Improve an agent from a call](/product/features/agent-testing#improve-an-agent-from-a-call).

**Action History** lists the actions the agent ran during the call, such as a
transfer or a lookup against your own system.

**Performance** shows how quickly the agent responded, broken down by the speech,
language, and voice providers it used, along with any configuration problems found
on the call. It also shows the **context** the call started with. Only the values you passed in
appear here, not the ones Fluents adds internally.

<Frame>
  <img src="https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/calls/call-overview-performance.jpg?fit=max&auto=format&n=Ntis-q5QWqwCqRQw&q=85&s=8c77002e871394dd69e9242dbedefb6b" alt="The Performance tab, showing average and maximum latency for the LLM, speech to text and text to speech providers, and the context the call started with" width="1496" height="697" data-path="images/product/calls/call-overview-performance.jpg" />
</Frame>

**Config** shows the settings this particular call ran with, such as the provider
that carried it and whether Do Not Call detection was run.

<Tip>
  **Create test from call** is the fastest way to build a test suite. Rather than
  inventing test cases, find the calls that went wrong and turn each one into a
  test.
</Tip>

***

## Filtering call history

Select **Filters** to open the filter panel. Filters combine, so you can narrow by
several at once.

| Filter | Use it to |
| - | - |
| **Period** | Restrict to a date and time range. |
| **Agents** | Show calls handled by specific agents. |
| **Statuses** | Filter by status. |
| **Call ID** | Jump straight to one call. |
| **Contact Number** | Show every call to or from one phone number. |
| **Duration (seconds)** | Focus on shorter or longer calls. |
| **Successful Actions** | Show calls where specific actions completed. |
| **Result** | Filter to Success, Unsuccessful, or Neutral. |
| **Skill Type** | Show calls where a specific skill ran. |
| **Transcript Keyword** | Search what was said. |
| **Campaign** | Show calls generated by a specific campaign. |
| **Call Insights** | Filter on what your agent extracted from the call. |
| **Call Context** | Filter on a value you passed into the call. |

### Status values

**Not started**, **In progress**, **Voicemail**, **Is not voicemail**, **Error**,
and **Ended**.

**Is not voicemail** excludes machine-answered calls in one step, which is usually
what you want when reviewing outbound results.

### Filtering by Call Insights

Select **Add Row**, choose an insight, choose an operator, then enter the value to
match. Each extra row narrows the list further, so a call has to match all of them.

Use this for questions like "show me every call where the caller asked for a refund".

### Filtering by Call Context

Select **Add Row** and enter a **Key** and **Value**. This searches the context you
passed into the call, such as a customer ID or an order number, so it is the
fastest way to find every call tied to one record in your own system.

<Warning>
  The **Skill Type** filter does not match the **Call Screen Handling** skill.
  Calls where that skill ran will not appear when you filter by it.
</Warning>

***

## Exporting to CSV

Apply your filters first, then select **Export CSV**. The export always reflects the
filters currently applied, so narrow the list before exporting rather than
exporting everything and cutting it down afterwards.

You choose which columns to include:

**ID**, **Agent**, **Agent Name**, **Call Context**, **Transcript**, **Start Time**,
**End Time**, **Duration (s)**, **From Number**, **To Number**, **Status**,
**Result**, **Insights**, **Call SID**, **Account SID**, **Stream SID**,
**Encoding**, **Provider**.

You can drag the headers to change the order they appear in.

Choose how you want the file. **Download CSV** is capped at **1,000 calls**.
**Send by email** handles far more, up to 100,000 calls, so use it for anything
larger.

Turn on **Expand Insights** to give each insight its own column rather than packing
them all into one field. Do that if the file is going into a spreadsheet or a
reporting tool.

<Note>
  In a HIPAA-enabled environment, **Transcript** and **Insights** are not available
  as export columns.
</Note>

### Useful combinations

* **Real conversations only.** Status **Is not voicemail**, plus duration greater
  than 30 seconds. This removes unanswered and machine-answered calls.
* **Calls to review.** Filter **Result** to **Unsuccessful**, or scan the **Issues**
  column.
* **One customer's history.** Use **Contact Number**, or **Call Context** with your
  own record ID.
* **Campaign review.** Use **Campaign**, plus **Call Insights** for the outcome you
  care about.

<Tip>
  Include **Call SID** and **Start Time** in any recurring export. Those two let you
  match Fluents records against your phone provider's own records later.
</Tip>

***

## Scheduled calls

Open the **Scheduled** tab to see calls that have not happened yet. They come from
two places: callbacks an agent agreed to during a conversation, and calls queued by
a campaign.

| Column | What it shows |
| - | - |
| **Created At** | When the call was queued. |
| **Campaign** | The campaign it belongs to, if any. |
| **Agent** | The agent that will handle it. |
| **From** and **To** | The numbers that will be used. |
| **Scheduled Time** | When the call is planned. |
| **Status** | Where the call has got to. |
| **Activity** | Recent events, such as the last attempt. |

Campaign calls are labelled by their place in the sequence, starting with **Initial
Call**, then **Follow-up Call #1** and so on. Callbacks an agent arranged are
labelled **Callback**.

### Status values

| Status | Meaning |
| - | - |
| **Scheduled** | Queued and waiting for its time. |
| **Pending** | Held back by a limit, most often the number of calls your plan lets you run at once. |
| **In Progress** | Running now. |
| **Exited** | The contact left the campaign because they met an exit criterion. |
| **Canceled** | Canceled before it ran. |
| **Canceled (Contact Reached)** | Canceled automatically because you reached the contact another way. They answered an earlier call, or they called you. |
| **Errored** | The call could not be placed. |

### Filtering

The Scheduled tab has its own filters for **Agents**, **Campaigns**, **Statuses**,
whether the call came from a callback or a campaign, and a date range. There is no
CSV export on this tab.

<Note>
  Callbacks only appear here if the agent has the **Call Back Later** skill enabled.
</Note>

***

## Where to go next

* Set up what your agent extracts and how calls are judged in
  **[Agents, Post-Call](../concepts/agent/post-call)**.
* Change providers, recording, and call duration in
  **[Agents, Advanced Settings](../concepts/agent/advanced)**.
* See how campaigns generate the calls that land here in
  **[Campaigns](./campaigns)**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.