> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.youratlas.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.youratlas.com/_mcp/server.

# Call Records

## Accessing Call Records

Navigate to the Records section for campaign-specific calls.

## Call Record Details

Each call record includes:

* **Call Summary:** Overview of the conversation
* **Call Transcript:** Complete text record of what was said
* **Call Recording:** Audio playback of the entire call

## Recording Features

* Play back recordings directly in the interface
* Download recordings to your computer
* Click "Open" to navigate back to the associated campaign

## Batch Downloading Call Records

You can export call records in bulk from the call records table. The **download** button (down-arrow icon) appears below the table whenever the view is scoped to a campaign and at least one record matches the current filters.

Clicking it opens the **Download Call Records** dialog with two export options.

### Send to Email

Requests a full export of the campaign's call records and delivers it to the email address on your account.

1. Atlas queues the export and shows a **Preparing Call Records** notification.
2. You receive an email with the file once it is ready.

> **Note**
>
> The email export always covers **every** call record for the campaign — table filters, sorting, and pagination do not limit it. If the campaign has no records available, no email is sent.

### Download CSV

Saves the current table view immediately as a CSV file, generated in your browser with no server round-trip.

* Includes **all records matching the active filters and sort order**, not just the rows on the current page.
* Columns match the columns visible in the table. Depending on the view, these are: `Time & Date`, `Contact`, `Phone Number`, `Campaign`, `Duration`, `Ended Reason`, and `Status`.
* Values are exported as they are displayed in the dashboard — for example, `Ended Reason` uses the friendly dashboard label, not the raw API value. See [Call Status Messages Guide](#call-status-messages-guide) for the mapping.
* The file is named `call-records-YYYY-MM-DD.csv`, using the current date.

> **Tip**
>
> Use **Download CSV** for a quick, filtered slice of the table, and **Send to Email** for a complete campaign export or when the record count is large.

For programmatic exports, use the [Get call records](/api-reference/atlas-api/calls/get-call-records) endpoint instead.

---

## Bulk Deleting Call Records

You can select and delete multiple call records at once directly from the call records table.

### Selecting Records

* **Select individual records** by clicking the checkbox on the left side of any row.
* **Shift-click** to select a range of records at once.
* **Select all on the current page** using the checkbox in the table header.

### Deleting Selected Records

Once one or more records are selected, a **Delete (n)** button appears in the toolbar. Click it to open a confirmation dialog. Confirming the action will:

1. Optimistically remove the selected rows from the table immediately.
2. Send delete requests for each selected record in the background.
3. Display a notification with the outcome:
   * **Success** — all selected records were deleted.
   * **Partial success** — some records were deleted but others failed.
   * **Error** — no records could be deleted.
4. Refresh the table to reconcile any differences with the server.

> **Warning**
>
> Deleting call records is permanent and cannot be undone.

## Call Status Messages Guide

The `EndedReason` field in the [Get call records](/api-reference/atlas-api/calls/get-call-records) API response indicates why a call ended. The dashboard displays user-friendly labels, while the API returns the raw values shown below.

### Agent-Related Outcomes

| API Value                                   | Dashboard Label     | Description                                         |
| ------------------------------------------- | ------------------- | --------------------------------------------------- |
| `assistant-ended-call`                      | Agent ended call    | AI agent intentionally ended the call               |
| `assistant-ended-call-after-message-spoken` | Message delivered   | Agent completed call after delivering final message |
| `assistant-ended-call-with-hangup-task`     | Agent hung up       | Agent hung up after completing its task             |
| `assistant-forwarded-call`                  | Call transferred    | Agent successfully forwarded the call               |
| `assistant-said-end-call-phrase`            | End phrase detected | Agent recognized a goodbye phrase                   |

### Customer-Related

| API Value                 | Dashboard Label     | Description                     |
| ------------------------- | ------------------- | ------------------------------- |
| `customer-busy`           | Line busy           | Recipient's phone line was busy |
| `customer-ended-call`     | Customer ended call | Recipient hung up               |
| `customer-did-not-answer` | No answer           | Recipient didn't answer         |

### Connection Issues

| API Value                                                        | Dashboard Label                      | Description                             |
| ---------------------------------------------------------------- | ------------------------------------ | --------------------------------------- |
| `phone-call-provider-closed-websocket`                           | Connection lost                      | Connection unexpectedly dropped         |
| `twilio-failed-to-connect-call`                                  | Twilio connect failed                | Twilio was unable to establish the call |
| `twilio-reported-customer-misdialed`                             | Invalid number                       | Invalid or incomplete phone number      |
| `call.in-progress.error-providerfault-transport-never-connected` | Call interrupted due to system error | Audio transport was never established   |

### Platform Errors

These are transient faults in the voice platform itself. Calls ending this way were not
answered or completed, and are safe to retry.

| API Value                                                         | Dashboard Label                      | Description                                                                                                    |
| ----------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| `call.in-progress.error-assistant-did-not-receive-customer-audio` | Unable to get microphone access      | No inbound audio reached the agent                                                                             |
| `call.in-progress.error-atlasv1fault-worker-died`                 | Call interrupted due to system error | Voice worker terminated mid-call                                                                               |
| `call.in-progress.error-atlasv1fault-worker-not-available`        | Call interrupted due to system error | No voice worker was available to take the call                                                                 |
| `call.in-progress.error-transfer-failed`                          | Call interrupted due to system error | Warm transfer to the destination failed                                                                        |
| `server-shutdown`                                                 | Call interrupted due to system error | Voice service replica was drained (e.g. for a deploy or scale-down) past its deadline before the call finished |

### Duration & Other

| API Value               | Dashboard Label      | Description                                       |
| ----------------------- | -------------------- | ------------------------------------------------- |
| `exceeded-max-duration` | Max duration reached | Call reached maximum allowed duration             |
| `silence-timed-out`     | Silence timeout      | Call ended due to prolonged silence (default 30s) |
| `voicemail`             | Voicemail            | Call diverted to voicemail                        |
| `manually-canceled`     | Manually canceled    | Call was manually canceled                        |

> **Note**
>
> If you encounter an `EndedReason` value not listed here, contact [support@youratlas.com](mailto:support@youratlas.com) with the call ID.