How to merge contacts in ActiveCampaign: the native way, or find the duplicates in bulk first

ActiveCampaign merges contacts two at a time, and a merge can't be undone. Below: ActiveCampaign's own merge steps first, then our done-for-you cleanup of your exported CSV, 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.

How to merge contacts in ActiveCampaign

ActiveCampaign's help center gives these steps (ActiveCampaign help: How to merge contacts):

  1. Click Contacts and open the contact you want to merge away (the "Source" contact; its email address will no longer exist after the merge).
  2. Click the dropdown next to Send a Campaign, then Merge.
  3. Pick the "Destination" contact from the suggestions, or search for it by email address, and click Merge.
  4. Resolve field conflicts: choose which contact's field values to keep. The choice applies to all conflicting fields for that merge.
  5. Resolve automation conflicts, tick the confirmation boxes, and click Merge.

The same article notes that "It is not possible to merge more than two contacts at the same time" and "Once you merge a contact, the action cannot be undone". Tags, open deals and past campaign activity move to the Destination contact; custom object data is not merged.

Why duplicates pile up: email is the only key

ActiveCampaign's migration guide says "The email address is the only unique identifier and required field in ActiveCampaign", and duplicate email addresses "will automatically merge and overwrite existing fields" (ActiveCampaign help: What happens to duplicate contacts during a migration). So the same person under two different email addresses stays two contacts, and nothing flags them for you.

Before an ActiveCampaign CSV import: what the importer skips

ActiveCampaign's help center lists these reasons an import of contacts leaves rows out (ActiveCampaign help: My import failed):

Its CSV guide adds formatting rules (ActiveCampaign help: How to prepare your CSV file): date values must be YYYY-MM-DD or "field values will default to a date in 1899"; phone numbers should look like +13125555555; checkbox and list box values need || between them and tags are separated by commas; line breaks "are not supported by the importer"; and with emojis in cells "the whole import will get stuck".

Or let us find the duplicates in your export

  • You export your contacts (Contacts, then the ... menu, then Export; ActiveCampaign help: How do I export all contacts?), or take the CSV you're about to import, and email it to us.
  • Rows with the same email (ignoring capitalization and spaces at the start or end) are merged into one row, and blank fields on the kept row are filled from the merged row. Every merge and every fill is listed in the change log, so duplicate rows don't just disappear in the importer.
  • Rows with the same full name and company but a different or missing email are flagged, not merged: that is the same-person, different-email case an email-only key never catches. Each one is marked needs_review, with a note naming the row it may match, so you can decide which pairs to merge in ActiveCampaign. Misspelled names aren't caught.
  • Spaces trimmed, emails lowercased, names and titles in ALL CAPS or all lowercase re-cased, US phones formatted +1-XXX-XXX-XXXX, numbers that start with + or 00 kept as sent (extra spaces trimmed only), and 10-digit numbers with no country code treated as US. Invalid, missing and personal emails are flagged.
  • The file we send back is UTF-8, and line breaks inside cells are turned into spaces (except in the email column, where a broken email is flagged invalid instead).
  • What we don't do: our US phone format has dashes, so it isn't the +13125555555 style ActiveCampaign's guide asks for. We leave date values, || values, tags and emojis as you sent them. We don't change bounce or unsubscribe status, we don't guarantee deliverability or bounce rates, we don't verify mailboxes, and we don't add, buy, or find contacts. We don't merge anything inside your account.

Clean my ActiveCampaign 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 ActiveCampaign export for exact-email duplicates and formatting problems free in your browser before you import. 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.

Need a written list-hygiene diagnosis before you clean? 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 and Constant Contact remove duplicates.

Questions

How do I merge two contacts in ActiveCampaign?

Open the contact you want to remove (the "Source"), click the dropdown next to "Send a Campaign", choose Merge, pick the Destination contact, then choose which field values and automation stages to keep (ActiveCampaign help). ActiveCampaign only merges two contacts at a time, and a merge can't be undone. That's fine for a handful. For dozens or hundreds, send us your export: we merge rows that share an email in the file, and flag same-name, same-company rows with different emails (with the row they may match) so you know which pairs to look at. The merge decision, and the merge itself, stay with you.

Why did my ActiveCampaign import skip contacts?

ActiveCampaign's help center lists the usual causes: duplicate rows in the same file, missing or badly formatted emails, contacts who bounced or unsubscribed before, a file that isn't UTF-8, special characters that aren't enclosed in double quotes, and existing contacts when "Update existing contacts while importing" isn't checked (My import failed). Our cleaned file is UTF-8, has one row per email, and turns line breaks inside cells into spaces (except in the email column, where a broken email is flagged invalid instead). Missing and invalid emails are flagged in qa_notes so you can see which rows the importer will skip. We don't see your bounce or unsubscribe history and don't override it, and you still tick "Update existing contacts" yourself.

Why do dates show 1899 or phone numbers fail after import?

ActiveCampaign's CSV guide says date values must be YYYY-MM-DD or they default to a date in 1899, phones should look like +13125555555, and checkbox and list box values need || between them (How to prepare your CSV file). Our cleanup leaves date values, || values and tags exactly as you sent them, so check those against the guide before you import. US phones come back in one consistent +1-XXX-XXX-XXXX format (with dashes), numbers that start with + or 00 are kept as you sent them (extra spaces trimmed only), 10-digit numbers with no country code are treated as US, and anything unclear is kept as-is with a note in qa_notes.

Do you need access to my ActiveCampaign account?

No. You export a CSV and email it. We only clean the exported file and never log in to or touch your ActiveCampaign 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.

Related: monday CRM import cleanup

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