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

# Import and export

> Bring contacts in from a CSV file with the fixed set of columns, understand how duplicates are handled, and export your list back out.

Import brings an existing contact list into Callivox from a CSV file. Export takes your contacts back out, matching whatever filter you have on screen. Both are buttons at the top of the **Contacts** page.

<Frame caption="The import dialog, with the column list and the template download.">
  <img src="https://mintcdn.com/haconsultancy/8jQZZfLAZM_xjJe7/images/contacts/import.png?fit=max&auto=format&n=8jQZZfLAZM_xjJe7&q=85&s=88f752454119cd85c739f57dc109ee4e" alt="The Import contacts dialog showing the required CSV columns, a template download link and a file picker" width="2880" height="1800" data-path="images/contacts/import.png" />
</Frame>

## Importing contacts

### What the file must look like

Callivox does not ask you to map columns — the header names are fixed, and your file has to use them:

```
display_name,email,phone,country,gender,birth_date
```

The dialog states it plainly:

> Upload a CSV file with columns: `display_name, email, phone, country, gender, birth_date`. Contacts are matched by email — existing ones are skipped.

| Column         | Example            | Notes                                 |
| -------------- | ------------------ | ------------------------------------- |
| `display_name` | `Jane Doe`         | The contact's name.                   |
| `email`        | `jane@example.com` | Also the key used to spot duplicates. |
| `phone`        | `+966501234567`    | International format.                 |
| `country`      | `SA`               | Two-letter country code.              |
| `gender`       | `Female`           |                                       |
| `birth_date`   | `1990-04-15`       | Year-month-day.                       |

<Tip>
  Click **↓ Download CSV template** to get a file with exactly these headers and a sample row. Filling that in is the surest way to avoid a rejected import — the header spelling has to match.
</Tip>

### How duplicates are handled

Contacts are matched on **email**. If a contact with that email already exists, the row is **skipped** — not merged, not updated.

<Warning>
  Import will not update your existing contacts. Re-importing a corrected file leaves the old values in place; edit those contacts by hand instead. Rows with no email cannot be matched at all.
</Warning>

### Running an import

<Steps>
  <Step title="Click Import CSV">
    The **Import contacts (CSV)** dialog opens.
  </Step>

  <Step title="Choose your file">
    Only `.csv` files are accepted.
  </Step>

  <Step title="Click Start import">
    You will see "Uploading…", then "Processing row X of Y…" with a progress bar as Callivox works through the file.
  </Step>

  <Step title="Read the result">
    When it finishes: "Import complete — N of M rows imported." Any row that failed is listed underneath with its row number and what went wrong, for example "Row 7: …". Click **Done** to close.
  </Step>
</Steps>

If the import cannot be checked in time you will see "Import timed out — please check your file size." Split a very large file into a few smaller ones and run them one after another.

### After importing

Imported contacts have names, emails and phone numbers — but **not** channel addresses, and a contact without a channel address cannot be reached by a campaign on that channel. Open the ones you plan to message and add their address, or start a conversation with them so the address is recorded when they reply. See [Managing contacts](/contacts/managing-contacts).

Imported contacts are **Subscribed** by default. If your list contains people who have already opted out of your marketing, mark them before you send anything: filter or select them in the list and use **Opt out** in the bulk toolbar.

## Exporting contacts

Click **Export CSV**. The button reads "Exporting…" while it works, then downloads `contacts.csv`.

The export respects the filters you have on screen. Search for a name, set a country, tick **Opted out only** — whatever the grid is showing is what comes out. To export everything, clear the filters first.

The file contains these columns:

```
id,display_name,phone,email,country,birth_date,opted_out,created_at
```

<Note>
  The export columns are not the same as the import columns. If you plan to re-import an exported file, cut it down to the six import headers first.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Managing contacts" icon="address-book" href="/contacts/managing-contacts">
    Channel addresses, tags and opt-out.
  </Card>

  <Card title="Creating a campaign" icon="bullhorn" href="/campaigns/creating-a-campaign">
    Message the contacts you imported.
  </Card>
</CardGroup>
