# Import contacts from a spreadsheet

> In Leads → Import Leads, upload a CSV, XLS or XLSX with a header in the first row, link the columns to Name, Email, Phone, Tags or custom fields, pick the country code and batch tags, validate and import. Anyone who already exists by email or phone is updated, with no duplicates.

Fonte: https://wiki.bip.marketing/en-us/import-contacts · Atualizado: 2026-10-08

<UseCaseMeta effort="csv" plan="free" />

Bring your whole list in at once: store customers, event sign-ups, the list that lived in your old CRM. In a few minutes, everyone is in BIP, with tags and fields ready to segment.

<Checklist items="A BIP account (the free plan works)|A CSV, XLS or XLSX spreadsheet up to 200 MB, with a header in the first row|One name column and another for email or phone|The custom fields created in Settings, if the spreadsheet has extra data" />

## What you'll get

- Your whole list inside BIP, with no duplicates: anyone who already exists by email or phone is updated.
- Phone numbers in international format, ready for WhatsApp, even if the spreadsheet only has the area code and number.
- A batch tag on every contact (for example `trade-show-april-2026`), so you can build the segment right away.
- Dates, cities and other data in custom fields, ready for criteria like birthdays and radius.

## How it works

<Steps items="Upload the spreadsheet and link each column to a BIP field|Validate: BIP checks name, email and phone row by row|Import: new contacts are created and existing ones are updated" />

BIP recognizes each person by **email** or **phone**. When a row matches a contact that already exists:

- the name from the spreadsheet takes over;
- new emails and phone numbers are added to the profile;
- tags are added (an import never removes tags);
- filled-in custom fields are updated, and empty cells keep the current value (or clear the field, if you choose that in the mapping);
- an archived contact comes back to the list.

## Step by step

### 1. Create the custom fields

Name, email, phone and tags already exist on every contact. For any other data in the spreadsheet (date of birth, city, plan), create the field before importing. That way it shows up in the mapping.

1. In **Settings** → **General**, go to **Fields** and click **Add Field**.
2. Choose the **Field Type**: **String** (text), **Number**, **Boolean**, **Date**, **Phone**, **Location** or **Array** (list).
3. Fill in the **Field Name** (for example, _Date of birth_) and click **Save**.

<Shot src="/img/importar-contatos/1-en-us.png" alt="Custom fields in Settings, General tab" url="dash.bip.marketing/…/settings" />

### 2. Upload the file

1. In **Leads**, click **Import Leads**. The importer has four steps: **Upload File**, **Map Columns**, **Validate Data** and **Import Leads**.
2. Drag the spreadsheet onto the upload area or click **Browse Files**. BIP accepts CSV, XLS and XLSX up to 200 MB. For XLS and XLSX, it reads the first sheet.
3. Check the **Leads Preview**: the total number of rows and columns and the file's data, page by page.
4. Click **Next Step**.

<Shot src="/img/importar-contatos/2-en-us.png" alt="Upload File step with the spreadsheet preview" url="dash.bip.marketing/…/leads/import" />

### 3. Map the columns

1. BIP suggests the mapping from the header: columns containing "email" or "e-mail" go to **Email**; "nome", "name" or "usuario" go to **Name**; "telefone", "phone" or "cel" go to **Phone**.
2. Under **Lead Field**, adjust each column: choose **Name**, **Email**, **Phone** or **Tags** under **Standard Fields**, or one of the **Custom Fields**. The **Sample Data** column shows a real value so you can double-check.
3. Leave anything that shouldn't come in as **Skip this column**.
4. Decide what to do with empty cells. With **Clear fields for blank cells** off (the default), an empty cell keeps what the contact already has. With it on, an empty cell in a custom field clears that field on the contact.
5. Click **Next Step**.

The mapping needs **Name** plus **Email** or **Phone** (or both). Each BIP field takes only one column. In the column linked to **Tags**, separate multiple tags with commas: `customer, vip`.

<Shot src="/img/importar-contatos/3-en-us.png" alt="Map Columns step with columns linked to Name, Email, Phone and custom fields" url="dash.bip.marketing/…/leads/import" />

### 4. Validate the data

1. Under **Default Country Code**, choose the country for phone numbers that came without a code: Brazil (+55), Portugal (+351), United States (+1), Spain (+34) or France (+33). With Brazil, `11 91234-5678` becomes `+5511912345678`. Changing the country reruns the validation instantly.
2. Under **Tags**, add the batch tags. They go on every contact in the spreadsheet, new or existing.
3. Watch the validation: BIP shows how many records were processed, how many are valid, how many have warnings and how many have errors.
4. If there are problems, check **Most Common Issues** (with sample rows) and **Issues by Column**. Fix them in the spreadsheet and upload it again, or continue with the valid rows.

- **Error**: the row is left out. This happens when the name is missing or when the email and the phone are both invalid.
- **Warning**: the row goes in. The invalid email or phone is dropped and the contact is imported with the other one.

<Shot src="/img/importar-contatos/4-en-us.png" alt="Validate Data step with country code, batch tags and validation summary" url="dash.bip.marketing/…/leads/import" />

### 5. Confirm and import

1. Click **Next Step**. The **Confirm Import** window shows the **Total Records**, the **Valid Records to Import**, the records with errors (which will be skipped), the ones with warnings (which will be imported) and the batch tags.
2. Click **Import _N_ Record(s)**.
3. Keep the page open until **Import Complete** appears. The progress bar shows how many were processed and imported and, if any, how many failed.

<Callout type="warning">
Don't close or reload the page during the import. Contacts are sent in batches from this screen, and the step only finishes when **Import Complete** appears.
</Callout>

<Shot src="/img/importar-contatos/5-en-us.png" alt="Import Leads step with the import complete" url="dash.bip.marketing/…/leads/import" />

## Ready to copy

### Spreadsheet template

Copy, paste into a text editor and save as `contacts.csv`. First, create the _Date of birth_ (type Date) and _City_ (type Location) fields. Dates are day/month/year.

<Copy label="contacts.csv" code>
name,email,phone,tags,date_of_birth,city
Marina Alves,marina.alves@example.com,11 91234-5678,"customer, vip",12/05/1990,"Curitiba, PR"
Tiago Pereira,tiago.pereira@example.com,,customer,03/11/1985,"Porto Alegre, RS"
Sofia Costa,,21 99876-5432,newsletter,27/08/1994,"Niterói, RJ"
</Copy>

| Column        | Lead Field                              |
| ------------- | --------------------------------------- |
| name          | Name                                    |
| email         | Email                                   |
| phone         | Phone                                   |
| tags          | Tags                                    |
| date_of_birth | Date of birth (custom field, type Date) |
| city          | City (custom field, type Location)      |

### Format for each field type

| Type     | Write it like this                                          | Example                 |
| -------- | ----------------------------------------------------------- | ----------------------- |
| String   | Any text                                                    | Gold Plan               |
| Number   | A period as the decimal separator, no thousands separator   | 1250.90                 |
| Boolean  | `true` or `false`                                           | true                    |
| Date     | dd/mm/yyyy or yyyy-mm-dd, with two digits for day and month | 05/03/1990              |
| Phone    | With `+` and the country code                               | +55 41 99876-5432       |
| Location | City name, preferably with the state                        | Curitiba, PR            |
| Array    | Items separated by commas                                   | bread, pastries, coffee |

A value in the wrong format is skipped only for that field; the rest of the row comes in normally. **Location** is always saved as a city.

<Callout type="tip">
In Excel, format the date and phone columns as **Text** before saving. That way dates stay as dd/mm/yyyy and phone numbers don't turn into shortened numbers. For CSV, use **Save As → CSV UTF-8**: accented characters come through correctly, with a comma or semicolon as the separator.
</Callout>

### Batch tags

Use a pattern that says where the person came from and when:

<Copy label="Batch tag examples">
import-2026-10
trade-show-april-2026
old-crm
downtown-store-customers
</Copy>

### Batch segment

In **Segments**, one criterion is enough to reach only the people from this import:

| Criterion | Operator     | Value                 |
| --------- | ------------ | --------------------- |
| Tags      | Includes any | trade-show-april-2026 |

## How to measure

- The **Import Leads** step closes with the final numbers: processed, imported and, if any, the ones that failed. When it finishes, BIP confirms the total with the message **Import completed successfully**.
- In **Segments**, create the batch segment (**Tags** → **Includes any** → the batch tag). The live count shows how many contacts have the tag: that's the real size of the list you just brought in.
- If the count is lower than expected, go back to the spreadsheet and check rows with no name or without a valid email or phone. Import again: anyone already in is simply updated.

## Frequently asked questions

### Does importing duplicate people already in BIP?

No. BIP recognizes the contact by email or phone and updates the existing profile: it adds new emails, phone numbers and tags and updates the filled-in fields. You can import the same spreadsheet again without worry.

### Does importing contacts count as a send?

No. Importing, storing and segmenting contacts don't use sends. Only the email or WhatsApp message that goes out to a person counts.

### Why didn't some rows come in?

Every row needs a name with at least 2 characters and a valid email or phone. Rows without them show up as errors in validation or as failures at the end of the import. Fix them in the spreadsheet and import again.

### My spreadsheet came in with garbled accents. What do I do?

Save the file as **CSV UTF-8** (in Excel: **Save As** → **CSV UTF-8**) or upload the XLSX directly, without converting it. Then run the import again.

## See also

- [Getting started with BIP](/en-us/getting-started)
- [Segments: the 10 criteria to filter contacts](/en-us/segments)
- [Campaigns: one-time, recurring and API-triggered](/en-us/campaigns)
- [BIP API: keys, contacts, events and triggers](/en-us/api)
