Brevo duplicate contacts: clean your export before you re-import

Brevo has no button to merge two contacts. Duplicates inside an import file are dropped automatically, and a re-import that links two existing contacts deletes one of them, with its campaign history. Below: Brevo's own steps first, then our done-for-you cleanup of your file, back in 24 hours on Quick Clean (up to 200 rows).

Rather not do it by hand? Skip to done-for-you cleanup, from $25.

Brevo merge contacts: what you can do natively

On Brevo's community forum, a Brevo admin answered the "Best way to merge contacts" thread with "I am not aware of a way to merge contacts, unfortunately" (Brevo Community, Dec 2023). Brevo's help center describes merging only as part of re-importing: when an imported row links identifiers from two contacts, "The record with the higher-priority identifier is kept and the duplicate record is deleted", and "the history data (like past campaigns) associated with the deleted contact is permanently lost" (Brevo help: FAQs, best practices for importing contacts). So the practical fix is to clean the file:

  1. How to export all contacts from Brevo: go to CRM > Contacts, select the checkbox at the top left of the table, click Select all contacts, then More actions > Export. Keep EMAIL (selected by default) or add Contact ID. Brevo warns that without an identifier "your contacts will be re-imported as new contacts, resulting in duplicates in your database." Download the file from your Notifications (Brevo help: Update the information of your contacts).
  2. Combine duplicates in the file. Keep one row per person. In Brevo, "Each contact can only have one email address, and it must be unique to that contact", so for someone signed up under two addresses, choose the one to keep (Brevo help: Create a file to import your contacts).
  3. Format it for Brevo. Save as .CSV, .XLSX or .TXT with UTF-8 or Windows-1252 encoding, and only one sheet. Phone numbers need the + sign and country code, and Brevo says "Do not separate the digits with special characters" (its example: +13374569342). In a .CSV file, line breaks in cells "are considered new rows" (Create a file · Brevo help: Troubleshooting, why can't I import contacts?).
  4. Re-import. CRM > Contacts > Import contacts > Upload a file, map your columns and pick a list. In Finalize your import, keep Update the attributes of the existing contacts on, and leave Import empty fields to erase existing attribute data off unless you mean to wipe values (Brevo help: Import your contacts to Brevo).
  5. Read the import report. It shows new, updated and unchanged contacts, plus a downloadable table of errors for contact IDs that don't exist or emails in the wrong format (Import your contacts to Brevo).

Moving from Mailchimp? The same steps apply to a Brevo import from Mailchimp: clean the Mailchimp export first, then import it. See Mailchimp audience cleanup.

Or let us clean the file before you re-import it

  • You send the Brevo export from step 1, or the Mailchimp or other export you're about to import, as a CSV or Excel file. Send one file: if your contacts sit in several exports, paste them into one sheet first, and same-email rows in it are merged.
  • Rows with the same email (ignoring capitalization and spaces at the start or end) are merged into one row: the first row is kept and its blank fields are filled from the later rows. Every merge and every fill is listed in the change log, so you decide what survives before Brevo silently drops in-file duplicates.
  • Rows with the same full name and company (when your file has a company column) but a different or missing email are flagged, not merged: that's the person using multiple email addresses. Each one is marked needs_review, with a note naming the row it may match, so you choose which address to keep. Misspelled names aren't caught.
  • Invalid, missing and personal (for example Gmail or Yahoo) emails are flagged in qa_notes. We don't fix or verify mailboxes.
  • Names in ALL CAPS or all lowercase are re-cased. US phone numbers are formatted +1-XXX-XXX-XXXX. Numbers with a non-US country code (starting with + or 00) are kept as you sent them (extra spaces trimmed only). Numbers with no country code and 10 digits are treated as US. Placeholder phones like N/A are blanked and logged. Anything we can't read is kept as-is, with a note in qa_notes. Line breaks inside cells are turned into spaces (except in the email column, where a broken email is flagged invalid instead), and the CSV is saved as UTF-8.
  • Brevo phone note: Brevo's import guide asks for phone digits with no separators, for example +13374569342. Our US output keeps the hyphens (+1-XXX-XXX-XXXX), so before you map that column to SMS, WHATSAPP or LANDLINE_NUMBER, remove the hyphens with a spreadsheet find-and-replace, or map the column to a text attribute.
  • You get back the cleaned CSV (with status, qa_notes and source_row columns), a change log with every merge, every fill from a duplicate, every email and possible-duplicate flag, and every edited cell listed by row, with its old and new value, a QA report with counts (rows in and out, duplicates merged, possible duplicates flagged, emails flagged and cells edited), and your original file, unchanged.
  • What we don't do: we don't merge, delete or edit anything inside Brevo. We don't promise deliverability, inbox placement or bounce rates, we don't verify mailboxes, we don't find, buy or add contacts, and we don't merge rows that only might be the same person.

Clean my Brevo export · $25 (up to 200 rows, back in 24h)

Bigger list? Intro $99 for up to 500 rows (48h) · Growth $299 for 501 to 2,000 rows (72h) · Bulk $499 for 2,001 to 5,000 rows (5 business days) · over 5,000 rows, custom quote. See all sizes.

What you get back

  • Every change is logged with its original row number.
  • Possible duplicates are flagged for your review, never blind-merged; same-email duplicates are merged and listed in the change log.
  • Your original file is returned alongside the cleaned one.

See a free before-and-after sample · sample files you can download

Start a Quick Clean · $25 (up to 200 rows)

Check your CSV free first

Check your CSV for exact-email duplicates and formatting problems free in your browser before you import it into Brevo. Your file never leaves your computer.

Run the free CSV Preflight Checker

How it works

Pay

Pick the size that fits your list and check out on Stripe. Quick Clean is $25 for up to 200 rows.

Email us your CSV (reply to your receipt or send it to slrescue@mail.grokbot.com)

No account login, no call, no upload form.

Get it back: 24h (Quick Clean, up to 200 rows), 48h (Intro), 72h (Growth), 5 business days (Bulk)

A clean CSV plus a change log. Over 5,000 rows, the turnaround is scoped in your custom quote.

Flat pricing

Your $25 Quick Clean counts toward any bigger cleanup within 14 days.

Not sure how messy it is? CRM Hygiene Scorecard (written diagnosis), $29 · DIY HubSpot and Salesforce import checklist, $9. Agencies: white-label batches. Moving lists between email tools? See Mailchimp audience cleanup · ActiveCampaign merge duplicate contacts · Constant Contact remove duplicates.

Questions

Does Brevo remove duplicates when I import?

Inside the file, yes. Brevo's help center says rows sharing an email address or phone number are treated as duplicates and only one is imported (Brevo help), but it doesn't say which row's data is kept. Contacts already in your account aren't created again; they're updated only if you select "Update the attributes of the existing contacts". We merge same-email rows in the file before you import and log every value we fill, so nothing disappears without a record; conflicting consent or opt-out values (consent columns we recognise by header name) are flagged needs_review, never overwritten. A consent column with an unusual header still has any conflict logged in the change log. Tell us the column name when you order and we'll treat it as consent.

Can I merge two contacts in Brevo?

Not with a merge button. A Brevo admin on its community forum wrote "I am not aware of a way to merge contacts, unfortunately" (Brevo Community). The only merge happens on re-import, when one row links identifiers from two existing contacts: Brevo keeps one, deletes the other, and that contact's campaign history is permanently lost (Brevo help). We don't merge people with different emails. We flag rows with the same full name and company so you can choose which address to keep before you import.

Will your cleaned file import straight into Brevo?

Mostly. You get a UTF-8 CSV, which Brevo accepts. One exception: we write US phones as +1-XXX-XXX-XXXX, and Brevo asks for phone digits without separators (Brevo help). Remove the hyphens before you map phones to SMS or WhatsApp, or map them to a text attribute. Numbers with a non-US country code (starting with + or 00) come back as you sent them (extra spaces trimmed only), and 10-digit numbers with no country code are treated as US, so check that each international number starts with + and a country code; otherwise Brevo applies the default country code you choose at mapping.

Do you need access to my Brevo account?

No. You export a file and email it. We only clean the exported file and never log in to or touch your Brevo account.

How fast is delivery?

From when we receive your file: Quick Clean (up to 200 rows) within 24 hours, Intro within 48 hours, Growth within 72 hours, Bulk within 5 business days. Over 5,000 rows is scoped in your quote.

What if the cleaned file isn't right?

If the file isn't what we promised, we fix it once for free within 48 hours. If it still isn't right, you get your money back for the part we couldn't deliver. If we're late, you choose a full refund or a free rush job.

What happens to my data?

Your file is used only for your job and deleted after delivery on request. We never log in to your CRM, and we never invent, buy, or append emails.

Try the free in-browser CSV dedupe teaser (data never leaves your browser). Freelancers: see the referral kit.