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

# CSV exports

> Download your conversations, leads, extra fields and contacts as CSV files for a spreadsheet or CRM.

Four lists in the workspace can be downloaded as CSV files: conversations, leads, extra fields, and contacts. Use them to load leads into a CRM, share a month's conversations with someone outside WireDesk, or keep your own copy.

## Where to export

Each list page has an **Export CSV** button in its header. It appears once the list has at least one row.

| Page                     | File                 | Rows                                                                    |
| ------------------------ | -------------------- | ----------------------------------------------------------------------- |
| **Conversations**        | `conversations.csv`  | Every conversation, across all agents.                                  |
| **Inbox → Leads**        | `leads.csv`          | Every lead, or one agent's if you have filtered by agent.               |
| **Inbox → Extra fields** | `collected-data.csv` | Every save by a **Capture details** action, or one agent's if filtered. |
| **Contacts**             | `contacts.csv`       | Every contact.                                                          |

The conversations export ignores the channel, outcome and search filters on the page and always contains every conversation.

When you delete an agent that has knowledge sources, the confirmation dialog also offers **Take a copy first**, with **Conversations (CSV)** and **Collected details (CSV)** buttons. These download the same workspace-wide files as above, not just that agent's rows.

## Who can export

Anyone in the workspace can export, whatever their [role](/docs/account/team-and-roles). Owners, admins and agents all see the same buttons.

## What is in each file

Every file has a header row. Timestamps are ISO 8601 in UTC, e.g. `2026-09-18T14:03:22.000Z`, so they sort correctly as text.

### conversations.csv

| Column       | Contents                                                                                                                                   |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `agent`      | The agent's name, or `Default agent` for your own tests of the demo agent.                                                                 |
| `channel`    | `chat`, `phone`, `email` or `web_voice` (browser voice).                                                                                   |
| `contact`    | The phone number in international format (e.g. `+12018991082`), the email address, `Web visitor`, `Browser test`, or `Caller ID withheld`. |
| `started_at` | When it started.                                                                                                                           |
| `ended_at`   | When it ended. Empty if it is still live.                                                                                                  |
| `handover`   | `requested`, `active`, `unanswered`, or empty. See below.                                                                                  |
| `outcome`    | `resolved`, `handed_over`, `message_taken`, `abandoned`, or empty if not yet analysed.                                                     |
| `topic`      | The short topic phrase.                                                                                                                    |
| `sentiment`  | `positive`, `neutral` or `negative`.                                                                                                       |
| `summary`    | The one- or two-sentence summary. For email conversations, this column holds the email's subject.                                          |

The `handover` values match the badges in the app:

| Value        | Badge              | Meaning                                                       |
| ------------ | ------------------ | ------------------------------------------------------------- |
| `requested`  | **Needs human**    | A person was asked for and nobody has joined yet.             |
| `active`     | **Human takeover** | A person is in the conversation and the agent is staying out. |
| `unanswered` | **No answer**      | The request timed out and the agent carried on.               |

### leads.csv

| Column       | Contents                                                                                                                 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------ |
| `agent`      | The agent that captured the lead.                                                                                        |
| `name`       | The name they gave.                                                                                                      |
| `email`      | Their email, if collected.                                                                                               |
| `phone`      | Their phone number, if collected.                                                                                        |
| `fields`     | Any other fields the lead capture action collects, as a JSON object, e.g. `{"company":"Acme"}`. Empty if there are none. |
| `created_at` | When the lead was saved.                                                                                                 |

### collected-data.csv

| Column            | Contents                                                                                                    |
| ----------------- | ----------------------------------------------------------------------------------------------------------- |
| `agent`           | The agent that saved it.                                                                                    |
| `action_id`       | The ID of the **Capture details** action that saved it. Use this to tell apart rows from different actions. |
| `conversation_id` | The conversation it came from.                                                                              |
| `fields`          | Every field saved, as one JSON object, e.g. `{"order_number":"10482","issue":"late delivery"}`.             |
| `created_at`      | When it was saved.                                                                                          |

Fields are one JSON cell rather than one column each. Different actions collect different fields, so the set of columns would change from workspace to workspace.

### contacts.csv

| Column          | Contents                                                                                      |
| --------------- | --------------------------------------------------------------------------------------------- |
| `name`          | Their name, if known.                                                                         |
| `channel`       | `phone`, `email`, `visitor` (website chat) or `user` (your own browser tests).                |
| `contact`       | The phone number in international format, the email address, `Web visitor` or `Browser test`. |
| `first_seen`    | When they first got in touch.                                                                 |
| `last_seen`     | When they last started a conversation.                                                        |
| `conversations` | How many conversations they have had.                                                         |

## Limits and formatting

* **Up to 10,000 rows per file**, the most recent first. Older rows beyond that are not included.
* **Every cell is quoted**, so commas and line breaks inside a customer's message cannot shift the columns.
* **Cells that start with `=`, `+`, `-` or `@` get a leading apostrophe.** Everything in these files was typed or said by members of the public. Without the apostrophe, a spreadsheet would run a value like `=HYPERLINK(...)` as a formula. The apostrophe makes the spreadsheet treat it as plain text, and most spreadsheets hide it. A phone number such as `+12018991082` therefore arrives as `'+12018991082`.

<Note>
  Full transcripts, messages the agent took for you, and the action log are not included in any export.
</Note>

## Related

* [Conversations](/docs/workspace/conversations)
* [Inbox](/docs/workspace/inbox)
* [Contacts](/docs/workspace/contacts)
* [Team and roles](/docs/account/team-and-roles)
