A useful Brevo contact import preserves the right person, the right information and the right subscription status. Prepare separate files for different jobs, check every mapping, then reconcile the import report with actual contact records before using the audience.

This guide covers a file-based migration into an existing Brevo account. If you are still choosing the platform, start with our Brevo versus Mailchimp comparison and check your account’s current contact allowance before a large upload.
Table of Contents
Prepare a file with a clear purpose
Brevo’s file requirements accept CSV, XLSX or TXT, with one sheet and a maximum size of 250MB. Use commas, semicolons or tabs as separators and UTF-8 or Windows-1252 encoding. For a straightforward newsletter migration, a CSV exported as UTF-8 is a practical choice.
Use a header row, one contact per row and a separate column for each attribute. Keep an untouched original export and a short change log. Remove spreadsheet totals and notes from the working copy; ask the data owner to resolve contradictory details rather than guessing which version is correct.
For new contacts, omit CONTACT_ID: Brevo generates that fixed identifier. An old platform’s reference belongs in EXT_ID, where appropriate, rather than Brevo’s ID column. Brevo requires at least one supported identifier: email, SMS, WhatsApp, landline number or external ID. Its format guide also specifies that date values must follow the account’s day/month order.
Understand matching before updating existing people
Brevo’s import best-practice FAQ says an email-based reimport matches the existing email address. If you identify existing contacts by EXT_ID, include their Brevo contact IDs too. Export those IDs from Brevo and retain all identifiers already associated with each person.
Combining identifiers can merge previously separate records. Brevo’s priority is contact ID, external ID, email, SMS, WhatsApp, then landline. The surviving record keeps its history; the deleted record’s history is permanently lost. Resolve uncertain identity matches before importing, especially shared phone numbers or email addresses. A tidy-looking contact count does not prove that the correct history survived.
Upload, map and choose the destination list
Follow Brevo’s import procedure: open CRM → Contacts → Import contacts, select Contacts, continue and upload your file. Inspect the preview, then confirm it. Map each column to the intended contact attribute; create an appropriate attribute if needed or exclude an unwanted column. Confirm the mapping and select the destination list or create one.
We suggest a list name that identifies the migration batch, such as “Workshop newsletter migration”. Keep a separate note describing its source and owner. Inspect a real value beneath every heading: “Course” might mean the subject someone requested, their last purchase or a campaign label. Those meanings should not silently become one field.
Choose update and empty-field behaviour deliberately
For existing records, enable the option to update their attributes only when the file should replace those values. Brevo’s update guide recommends exporting existing contacts first, editing that file and reimporting it with identifiers intact.
The separate empty-field setting matters. Brevo’s blank-field instructions say enabling it allows empty cells to erase stored attributes; leaving it disabled preserves existing values where imported cells are blank. Keep it off unless clearing data is part of a reviewed change. An incomplete spreadsheet is not a request to delete everything it lacks.
Carry subscription restrictions into the new account
Brevo’s contact eligibility guidance prohibits purchased and scraped lists and distinguishes consent evidence from subscription status. Its opt-in attributes do not themselves control whether a contact is subscribed. Retain the evidence supporting your audience and inspect the actual status; an imported address is not permission to start messaging it.
For people who unsubscribed in the previous system, use Brevo’s blocklist import workflow. The selected email, SMS or WhatsApp restrictions apply to every contact in that file. Separate files are therefore needed when different people require different channel restrictions. Inspect the resulting channel status after import, including people already present in Brevo.
Read the final eligibility confirmation before accepting it. Hold back records whose subscription position you cannot establish. For the migration checklist, record the source of each person’s status and who resolved any discrepancy; copying everybody into a list called “Subscribers” does not settle it.
Rehearse a small migration batch
Illustrative example: a workshop business is moving its newsletter. Its coordinator could begin with a small selection covering the situations below. These are proposed acceptance checks, not results from an import we performed. Completing an import changes real records.
| Record type | Check afterwards |
|---|---|
| New newsletter subscriber | Correct name, email and destination list. |
| Existing subscriber with a corrected name | The intended person receives the correction. |
| Existing contact with an optional field blank | Stored information remains when erasure was disabled. |
| Previous email unsubscribe | Email campaign blocklisting is present after the separate restricted import. |
Read the report and resolve discrepancies
The import report, accessible from the completion banner or notification, separates new, updated and unchanged contacts. It also provides errors, destination lists and channel-blocklisting information. Save the report alongside the source file and compare several actual records with the intended changes.
Brevo’s troubleshooting guide explains why row count and new-contact count can differ: existing people are not created again and duplicates are removed. Invalid email formats or nonexistent Brevo IDs can reject contacts. Download the errors, correct the affected rows and review identifiers before retrying. Do not repeatedly upload the entire file merely to chase a larger total.
Have a second person review the completed batch and its exceptions before continuing. Give unresolved rows a named owner. Once the audience is correct, our Brevo domain authentication guide covers the separate sending-domain checks before a campaign.
Sources reviewed 26 September 2026 against official Brevo documentation. The workshop example and acceptance checks are illustrative recommendations.

