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

# Importing contacts

> Bring contacts into Audience from a CSV file, with column mapping and validation

CSV import is the fastest way to add many contacts at once — whether you're starting a fresh list or topping up Audience from a spreadsheet export.

## Preparing your file

* **CSV only** (not Excel), UTF-8 encoded, up to 12MB.
* Comma- or semicolon-separated — Famulor detects which from the first line, so European spreadsheet exports work as-is.
* A header row is strongly recommended: Famulor reads it to pre-match obvious columns. A file without one still imports; the columns are just labeled Column 1, Column 2, and so on.
* Every row needs a phone number. Everything else — name, email, tags, custom fields — is optional.

```csv theme={null}
phone,name,email,tags,company
+491701234567,Ada Lovelace,ada@example.com,vip;renewal,TechStart Solutions
+14155551234,Grace Hopper,grace@example.com,,Acme Corp
```

## Import steps

Select **Import** in Audience. The wizard has three steps.

<Steps>
  <Step title="Upload File">
    Drag in your CSV or choose it from disk. You'll be asked to certify that these contacts consented to being contacted and aren't from a purchased list — this is your responsibility, not something Famulor validates for you.
  </Step>

  <Step title="Match Columns">
    Map each column to a target: a contact field (**Phone**, **Name**, **Email**, **Tags**), an assistant variable (when importing directly into a campaign with an assistant assigned), a workspace **custom attribute**, or a free-form custom key. Obvious matches — a column literally called "phone" or "email" — are pre-selected; review and adjust the rest, and set anything you don't need to **Ignore this column**.

    This step also carries two settings for the whole batch. **Default country for phone numbers** is appended to any number that doesn't already include a country code (`01701234567` → `+491701234567`), so you don't have to split your file by country first. **Tags** adds the same tags to every contact in the batch.
  </Step>

  <Step title="Preview">
    Review the first five mapped contacts, check the **Ready to import** and **Skipped (invalid phone)** counts, and confirm.
  </Step>
</Steps>

## Where imported contacts land

Import from **Audience** creates unassigned contacts, available to every campaign and segment in the workspace. The same **Import** button also sits on a campaign's own page — used there, it adds the contacts straight to that campaign's queue instead of leaving them unassigned.

<Tip>
  To add already-existing Audience contacts to a campaign instead of re-importing them, use **Assign leads** on the campaign — pick a saved segment or hand-pick contacts. See [Setting up a campaign](/campaigns/overview#setting-up-a-campaign).
</Tip>

## Column mapping reference

| Target                   | Where values come from                                                                                                           |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| Phone, Name, Email, Tags | Built-in contact fields. A **Tags** column may hold several tags separated by commas or semicolons                               |
| Assistant variable       | Offered only when importing into a campaign with an assistant assigned                                                           |
| Custom attribute         | Workspace-defined fields under **Settings → Workspace → Custom Attributes**                                                      |
| Custom key               | Free-form: lowercase letters, digits, and underscores, starting with a letter. `phone`, `name`, `email`, and `tags` are reserved |

## Keeping your data clean

* Prefer E.164 phone format (`+491701234567`) over local formats (`0170 123 4567`, `(030) 123-4567`) — it removes any ambiguity about the country.
* Save the file as UTF-8 CSV. If you're exporting from Excel, convert formulas to values and avoid merged cells before saving.
* **Deduplicate before you import.** Phone numbers and email addresses are unique per workspace, and an import doesn't merge into existing records the way the single-contact form does — a row whose phone or email already belongs to a contact fails instead. Remove those rows from the file first, or update those contacts individually in Audience.
* Give each import batch a shared tag (e.g. `import-2026-08`) in the Match Columns step so you can find that batch again in Audience afterward.

## Troubleshooting

| Symptom                                          | Fix                                                                                                                                                                                                |
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Upload is rejected outright                      | File must be `.csv`, UTF-8 encoded, and 12MB or smaller — Excel (`.xlsx`) isn't supported; export or save as CSV first                                                                             |
| No contacts imported                             | Make sure a column is mapped to **Phone** — a row with no valid phone number is always skipped                                                                                                     |
| Fewer contacts than rows in the file             | Check the **Skipped (invalid phone)** count on the preview step; those rows had a phone number that couldn't be parsed                                                                             |
| The import stops with a duplicate-identity error | A row's phone or email already belongs to another contact in this workspace. Remove the duplicate rows and import again — contacts already created before the failure stay                         |
| Wrong country code was added                     | Only numbers without a country code get the default country appended — set the correct default before confirming, or fix those numbers to include `+<country code>` in the file                    |
| A custom key is rejected                         | Keys must be lowercase letters, digits, and underscores, starting with a letter. `phone`, `name`, `email`, and `tags` are reserved; rename the column or pick an existing custom attribute instead |

See also [Contacts](/audience/contacts) for editing and merging records after import, and [Campaigns overview](/campaigns/overview) for assigning contacts to outreach.
