# Importing data

Importing data is how you load your contact list into a campaign so your AI voice agent knows who to call. You can upload a file during campaign creation or add more contacts to an existing campaign at any time.

## Supported file types

| Format        | Extension         | Notes                                                                    |
| ------------- | ----------------- | ------------------------------------------------------------------------ |
| CSV           | `.csv`            | Most common format. Easy to export from any spreadsheet tool.            |
| Excel         | `.xlsx`           | Modern Excel format only. The legacy `.xls` format is **not** supported. |
| Google Sheets | `.csv` or `.xlsx` | Export your sheet as CSV or XLSX before uploading.                       |

{% hint style="warning" %}
Only `.xlsx` Excel files are supported. If your file is in the older `.xls` format, open it in Excel or Google Sheets and re-save it as `.xlsx` before uploading.
{% endhint %}

***

## Required and optional fields

Your file needs at least one column — the phone number. Everything else is optional but recommended for personalization.

| Field           | Required         | Description                                                             |
| --------------- | ---------------- | ----------------------------------------------------------------------- |
| `contact_phone` | **Yes**          | The phone number your voice agent will call. Must be in E.164 format.   |
| `contact_name`  | No (recommended) | The contact's name. Useful for personalized greetings in your prompt.   |
| `company_name`  | No               | The contact's company. Helpful for B2B campaigns.                       |
| `email`         | No               | The contact's email address.                                            |
| Custom fields   | No               | Any additional column in your file can be mapped to a new CRM property. |

**Example CSV:**

| contact\_name | contact\_phone | company\_name | email             |
| ------------- | -------------- | ------------- | ----------------- |
| Alice Johnson | +14085550123   | Dapta         | <alice@dapta.com> |
| Bob Lee       | +12065550987   | Jarvis        | <bob@jarvis.io>   |
| Carol White   | +17145550765   | Nimbus        | <carol@nimbus.co> |

> **💡 Tip:** Make sure your file has column headers in the first row. The header names are what you will map to CRM fields during the property mapping step.

***

## Phone number format

All phone numbers must follow the **E.164 international format**: `+[country_code][number]` with no spaces, dashes, or parentheses.

**Valid examples:**

| Number          | Country                            |
| --------------- | ---------------------------------- |
| `+15551234567`  | United States                      |
| `+525551234567` | Mexico                             |
| `+573001234567` | Colombia                           |
| `1XXXXXXXXXX`   | US (without the `+` also accepted) |

**Invalid examples:**

| Number              | Reason                                   |
| ------------------- | ---------------------------------------- |
| `+1 (555) 123-4567` | Contains spaces, parentheses, and dashes |
| `12345`             | Too short to be a real phone number      |
| `0000000000`        | Not a real, dialable number              |
| *(blank)*           | Missing value — row will be skipped      |

{% hint style="info" %}
Numbers must be real and dialable. Fake or test numbers will fail validation and be excluded from your campaign.
{% endhint %}

***

## Property mapping

After you upload your file, you enter the **property mapping** step. This is where you connect your file's column headers to Dapta CRM fields.

**Step 1:** The **Phone Number** mapping is always shown first. It is required and cannot be removed. Match it to whichever column in your file contains the phone numbers.

***

**Step 2:** The **Contact Name** mapping is shown by default. Map it to the column that contains your contacts' names, or leave it unmapped if your file does not include names.

***

**Step 3:** To map additional columns, click **+ Add Property**. For each new property, you need to provide:

* **Display Name** — a human-readable label (e.g., "Company Name")
* **Field Name** — must match your file's column header exactly (e.g., `company_name`)
* **Data Type** — choose from Text, Number, Date, or Boolean

> **💡 Tip:** Mapped data is automatically saved to your Dapta CRM, so you can reuse these contacts across multiple campaigns without re-importing.

***

## What happens during import

Once you confirm the mapping and start the import, Dapta processes your file in real time:

1. Each row is validated against the required fields and phone number format.
2. **Valid rows** are imported into your campaign and added to your CRM.
3. **Invalid rows** are skipped — for example, rows with missing or malformed phone numbers.
4. An **error log** is generated that you can download to see exactly which rows failed and why.
5. Import progress is tracked in real time so you can watch the status as contacts are processed.

If too many rows fail, you can click **Back** to return to the upload step, fix your file, and re-upload it. Alternatively, you can continue with only the valid records.

***

## Adding contacts after campaign creation

You are not limited to importing data only during the initial campaign setup. There are two ways to add more contacts to an existing campaign:

* **Re-import from the Contact List tab** — Open your campaign, go to the **Contact List** tab, and click the **Import** button. Upload a new CSV or XLSX file to add more contacts to the same campaign.
* **Flow Studio** — Use Dapta's automation tool to programmatically add contacts to a campaign based on triggers or external data sources.

***

## Troubleshooting tips

| Problem                                 | Solution                                                                                               |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| File upload fails                       | Make sure your file is `.csv` or `.xlsx`. The legacy `.xls` format is not supported.                   |
| All rows are marked invalid             | Check that your phone numbers are in E.164 format with no spaces, dashes, or parentheses.              |
| Column not showing in mapping           | Ensure the first row of your file contains column headers. Empty headers are ignored.                  |
| Duplicate contacts                      | Dapta uses the phone number as a unique identifier. Duplicate numbers in the same file may be skipped. |
| Missing contact names in calls          | Verify that you mapped the `contact_name` column correctly during the property mapping step.           |
| Numbers rejected despite correct format | The number may not be a real, dialable phone number. Verify it is an active number.                    |
