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

# Uploading contacts

![Campaign wizard Audience step and campaign detail CSV upload section.](https://mintcdn.com/callaro-docs/Rn-efrjnSIS1s0ID/images/campaigns/upload-contacts.png?fit=max\&auto=format\&n=Rn-efrjnSIS1s0ID\&q=85\&s=8d5a0573ced63402d9725d8fae335172)

# Uploading Contacts

**There is no separate “launch checklist” page in the app** (see [Campaign launch checklist](https://help.callaro.ai/campaigns/campaign-launch-checklist.md)). Contact uploads for bulk campaigns are centered on the **Create campaign** flow **Audience** step and, for drafts tied to a server-side upload, the **upload status** area on the **campaign detail** page.

Contact quality drives pickup, reporting, and how painful troubleshooting will be. A clean upload makes the first hours predictable; a messy one creates confusion before the first answered call.

**In the product**

* [Wizard Step 3: Audience](https://help.callaro.ai/campaigns/wizard-step-3-audience.md)
* [Troubleshoot: campaign isn’t dialing](https://help.callaro.ai/campaigns/wizard-troubleshooting-not-dialing.md)

## Before you start

* Source file is **approved** by the campaign owner.
* **One row = one contact**; merges and notes-in-cells complicate validation.
* **Required fields** are present (identifier, **phone**, timezone if schedule is local).
* **Consent / suppression** policy applied upstream.
* **Duplicate policy** is decided before import.

## Who should own this

* **SDR lead:** list sourcing and sanity.
* **Sales Ops:** mapping, import validation, launch readiness.
* **Compliance:** suppression and consent.
* **RevOps / CRM:** IDs or fields needed for writeback.

## Upload and attach contacts (wizard)

The **Audience** step in **Create campaign** (or **Edit** for a draft) is where you choose **CSV**, **paste contact IDs**, or a **segment**. For **new** campaigns from CSV, the wizard requires a **file** before you can go forward. After upload and mapping (as shown in the step), complete later steps and **save** the draft so the list is attached for dialing.

1. Prepare **CSV** with stable headers and one contact per row.
2. Open **Create campaign** (or **Edit** from a draft).
3. Go to **Audience** and select **CSV**; add the file the UI accepts.
4. Map columns to Callaro fields; fix sample rows the preview highlights.
5. Continue through **Schedule** and **Outcomes**; finish **Review** and save.
6. On **campaign detail**, confirm counts and any upload card match expectations.

## Monitor an existing upload (campaign detail)

When the campaign has a bulk upload, the **upload** section on campaign detail shows **status**, **size**, and timestamps as processing completes. Use it to confirm the upload is **staged, attached, or consumed** as expected before launch, and to reconcile any errors with the choices you made in the wizard.

## What the important decisions mean

1. **Row grain:** One dialable contact per row keeps tasks and reporting honest.
2. **Phone normalization:** E.164-friendly data reduces silent skips; see troubleshooting if many tasks fail early.
3. **Timezone column:** Matters when **calling windows** are local to the contact.
4. **Duplicates:** Decide **suppress**, **split campaigns**, or **dedupe upstream** — do not improvise at launch.
5. **Segments:** If cohorts need different measurement, **split campaigns** instead of one mixed file.

## What good looks like

* Expected **import / attach** counts match the owner’s plan.
* **Rejections** are low and explainable.
* Mapping is obvious to the **next reviewer** without tribal knowledge.
* Successful dials tie back to the **right CRM rows** and workflows.

## Common mistakes and troubleshooting

1. Launching while the upload is **still processing** or in an **error** state — wait for a clean status on **campaign detail** and a clear task picture.
2. **Skipping** mapping validation because the file “looked fine” in Excel.
3. **Mixing segments** that need different scripts or numbers — split campaigns.
4. **Editing** the CSV only on disk without re-running the **Audience** step — the draft must reflect the file you intend to dial.

## Final checklist

* **Audience** step shows the **intended** source and **Next** is available when validation passes.
* **Campaign detail** upload section (if shown) matches **status** and **timing**.
* Failed rows are **resolved** or **excluded** consciously.
* Owner signs off that the list matches **compliance** and **capacity**.

## Related articles

* [Creating a campaign](https://help.callaro.ai/campaigns/creating-a-campaign.md)
* [Campaign launch checklist](https://help.callaro.ai/campaigns/campaign-launch-checklist.md)
* [Setting call schedules and time zones](https://help.callaro.ai/campaigns/call-schedules-and-time-zones.md)
* [Campaign settings reference](https://help.callaro.ai/campaigns/campaign-settings-reference.md)
* [What gets logged automatically after every call](https://help.callaro.ai/crm-and-integrations/what-gets-logged.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.