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

# How to import contacts (CSV or Excel)

> The three steps of an import: file, column mapping and the consent declaration — plus how to undo one.

## What you will learn

How to bring your base into Cliqo with the data in the right fields and consent declared correctly — and how to undo an import that came in wrong.

## Before you start

* A **CSV, XLSX or XLS** file, up to 30 MB, with an email column (required).
* If you migrated from another tool, import its blocklist into Suppressions **first** ([why](https://docs.cliqo.io/en/entregabilidade/checklist-primeiro-envio.md)).

Go to **Audience › Contacts › Import**. There are three steps.

## Step 1 · File

Drag the file in (or click to select it). Cliqo detects the separator and encoding on its own.

## Step 2 · Columns

At the top of this step you'll find **Separator** and **Encoding** (CSV only): if accented characters look wrong in the sample or columns are glued together, change them there and the file is re-read right away.

Map each column of the file to a field:

* **Email** (required), **Full name** — or **First name** + **Last name**, which Cliqo joins together —, **Phone / WhatsApp**.
* Extra columns become **custom fields**: choose "Create field" (or "Map to field", if the brand already has that field) and the type is detected automatically (text, number, date, yes/no…). Review the detection notes — ambiguous dates and postal codes with leading zeros are flagged. Details in [Custom and typed fields](https://docs.cliqo.io/en/gestao-de-dados/campos-tipados.md).
* Anything you don't need: **Ignore**.

Under **Import settings**, choose the mode (**Add and update**, **Only add new** or **Only update existing**) and whether an empty column should overwrite the contact's current data or not.

## Step 3 · Confirm — and declare consent

Here you declare what this base has authorized: **email marketing** and/or **WhatsApp marketing**. Read carefully before checking:

* The declaration is **your responsibility** under the LGPD (Brazil's general data-protection law, similar to the GDPR) — it is recorded with a date, as origin "import confirmed by the customer".
* **If you leave Email marketing unchecked**, you declare that the base has no opt-in: these contacts receive nothing, and the whole account starts requiring consent — every campaign from then on excludes anyone without an opt-in record, including older contacts who receive today. The screen warns you about this before you import.
* **WhatsApp: only check it if you have proof.** Meta punishes senders who message without opt-in — blocks drag down your number's quality rating. When in doubt, import without the WhatsApp opt-in and capture the authorization later (pop-up, form inside the email).

Choose the **Target list** (optional) and click **Import N contacts**. The full context is in [Understand consent and opt-in](https://docs.cliqo.io/en/gestao-de-dados/entenda-consentimento.md).

## Result

The import report shows: new contacts, skipped for invalid email (with **Download skipped** and **Download invalid**, which list each row with its reason — so you can fix and re-import them), invalid phone numbers, and how many came in with each opt-in.

Two protective behaviors, by design:

* **Imported contacts do not receive the welcome flow automatically** — the welcome flow is for someone who just signed up, not for a base that moved in from elsewhere. In step 3, the default is **Do not send a welcome flow**.
* **An import never creates a silent opt-in** — only your explicit declaration unlocks marketing.

## Import came in wrong?

While still on the result screen, before closing it, click **Undo this import**: the contacts it created are removed; anyone who already existed before stays as they were, and anyone who already received a campaign is preserved and reported. Then fix the file and import again.

## Related articles

* [Custom and typed fields](https://docs.cliqo.io/en/gestao-de-dados/campos-tipados.md)
* [Suppressions and blocklist](https://docs.cliqo.io/en/gestao-de-dados/supressoes.md)


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