Skip to content
DataUntangler

ActiveCampaign duplicate contacts and merge contacts before import

ActiveCampaign duplicate contacts are the same person stored under a second email address, a phone only record from an SMS form, or a row from an old list that ActiveCampaign had no exact match for. ActiveCampaign keeps one contact per exact email address, merges only two contacts at a time by hand, and on accounts opened since November 3, 2025 counts every contact toward your plan limit whatever its status. DataUntangler reads your export and your next import file in the browser, shows each likely duplicate with the reason, and returns a clean file plus a log of every merge you approved.

In-browser your file never leaves your computer

Every row proposed to you before it is applied

CSV log of what you approved and rejected

Clean a file
01 Try it on this page

Load a messy sample and watch it work

The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.

1. Load a file

Your file is read on your own machine. Nothing is uploaded, so nothing can leak.

Or start from a messy sample

Status

Loading the sample file.

File: CRM contact export

Rows

--

Columns

--

Changes

--

Duplicate rows

--

Date formats

--

Blank or invalid emails

--

Load a file to see the diff

Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.

02 About activecampaign duplicate contacts

Why ActiveCampaign ends up with duplicate contacts

ActiveCampaign treats the email address as the unique identifier of a contact. Two rows with exactly the same address become one contact, on a form, an import or the API. Anything that is not an exact match is a new contact, so the same buyer under a work and a personal address, or a name typed differently at a trade show, is two contacts from the first day.

Phone only contacts added a second door. Once an admin switches the feature on, and ActiveCampaign notes that the switch is permanent, a phone number can identify a contact on its own. The help center is plain about the side effect: a phone number entered in a different format is not recognized, and a phone number that matches a contact who already has an email address creates a new phone only contact. Only exact matches count as the same contact.

Imports add their own share. When a CSV holds the same email or phone number twice, ActiveCampaign imports the first row and skips the others, so whichever row sits higher in the file wins, even when the lower one had the newer phone number or the correct company.

Do duplicate contacts count toward my ActiveCampaign contact limit?

Yes. ActiveCampaign prices on unique contacts, so a person on ten lists is one contact, but the same person under two email addresses is two. On accounts created on or after November 3, 2025, every contact counts toward the limit regardless of list status, including unsubscribed and bounced ones. Accounts created on or before November 2, 2025 count only active contacts.

That change makes cleanup a billing task, not only a tidiness task. On a newer account a duplicate that unsubscribed years ago still takes a seat in your plan. Archiving is the lever ActiveCampaign gives you: archived contacts do not count toward the limit, are kept read only for up to a year, and can only be restored manually after 30 days.

ActiveCampaign on its own against a pass on the file first

The duplicate ActiveCampaign on its own Pass on the file before import
Same email twice in one import file First row imported, the rest skipped Shown as one cluster, you pick the row that survives
Same email with capitals or spaces Not documented, check before relying on it Trimmed and lowercased, then matched
Phone only form entry and an email contact, same person A new phone only contact Matched on name and company where the file has one
One buyer, work and personal email Two contacts, both counted Kept as two on purpose, you decide
Near duplicate name at the same company Two contacts, no suggestion Close match, shown for review
States, ZIP codes and dates written several ways Stored as supplied, segments miss rows Two letter states, five digit ZIP codes, one date format

ActiveCampaign merges two contacts at a time and a merge cannot be undone. Work from a reviewed list of pairs instead of deciding one record at a time.

The matching is the same data deduplication engine used across the site: exact email after trimming and lowercasing, then name and company for rows where one side has no email, with fuzzy matching for close spellings. Each cluster is built around the most complete row, and nothing changes until you approve it.

How do I find duplicate contacts in ActiveCampaign?

For a few, search the Contacts page by last name and open each result. For more than a handful, export all contacts into one file and sort by last name and organization, because duplicates that share no email only show up side by side. Look hardest at rows with a phone number and no email next to rows with an email and no phone number. Those are the phone only duplicates the help center warns about.

Include the list you are about to import in the same file. Most new duplicates arrive with the next event list or webinar export, and catching them before the import costs nothing, while catching them afterwards means one manual merge per pair.

How do I merge contacts in ActiveCampaign?

  1. 1 Export first. Go to Contacts, click the ellipsis at the top right of the Contacts Overview page, choose Export, and select the fields you need: email, first and last name, phone, organization, location fields and the date created. Name the export without special characters, or it downloads as a text file instead of a CSV. The download link under Contacts, then Exports, stays valid for seven days.
  2. 2 Add the file you are about to import, a trade show list, a webinar export or a list from another platform, with a Source column so every row remembers where it came from.
  3. 3 Load the combined file into the demo at the top of this page. Nothing uploads, the file is read and matched inside your browser tab. Every cluster shows its rows side by side with the reason and a confidence level. Approve the merges you agree with, reject the rest, and download the cleaned file with the audit log.
  4. 4 For pairs already in ActiveCampaign, open the source contact, the one that will disappear, click the dropdown next to Send a Campaign, choose Merge and pick the destination contact. Resolve the field conflicts and the automation conflicts, confirm, and merge. The source email address no longer exists afterwards, its tags, open deals and past campaign activity move to the destination, and custom object data is not merged.
  5. 5 Import the cleaned file with Update existing contacts switched on, so matching rows update instead of being skipped. Turn off Trigger Automations in the advanced options if the list or tags you apply start an automation you do not want to run again.

Can you merge more than two contacts at once in ActiveCampaign?

No. ActiveCampaign merges two contacts at a time, and each merge is permanent. A person with three records takes two merges, and there is no bulk merge on the Contacts page. That is why the order of work matters: settle which records belong together in a file first, then run the merges in the account from that list, rather than deciding case by case inside the merge window.

The merge also asks you to pick one side for all conflicting fields at once, and one side for all shared automations. If the destination has the better email but the source has the newer phone number, fix the field on the destination before you merge, or you lose one of them.

Clean the import file before ActiveCampaign skips the wrong row

Because an import keeps the first row for each email or phone number and skips the rest, the order of your file decides what survives. Sort it so the most complete and most recent row comes first, or better, merge the duplicates in the file so there is only one row per person to import.

The same pass repairs formats that break segments: names in consistent case, emails trimmed and lowercased, states as two letter codes, ZIP codes back to five digits and dates in one format. Doing that on every incoming list is the routine side of data hygiene. If part of your audience also lives in Mailchimp, the same file pass is on Mailchimp duplicate contacts.

Who pays for an ActiveCampaign cleanup

The buyer is usually the marketing ops lead or the agency that runs ActiveCampaign for a US small business, who owns the invoice and is about to import an event list, switch on phone only contacts for SMS, or move a list over from another platform. They need the contact count to stay inside the plan and to be able to explain why it moved.

When the contacts come from a CRM, fixing the source once pays off on every sync. CRM data cleansing covers that file, and HubSpot deduplication covers the most common CRM that sits next to ActiveCampaign.

When a connected app is the better buy

A pass on the export fits a project: an import to run, a plan limit to stay under, a list move with a deadline. A person reviews every merge and applies the result, and that is deliberate, because deciding whether two contacts are one buyer belongs to someone who knows the customers.

If you need contacts merged continuously inside the account without an export, look for an app that connects to ActiveCampaign directly. DataUntangler does not connect to your ActiveCampaign account and does not claim to. It is a data cleaning tool that gives you the matched file and a record of each decision, on the Analyst plan at 59 dollars a month, or 348 dollars a year, with unlimited files.

03 Read it off a real file

An ActiveCampaign export combined with a webinar list, a trade show list and a phone only form, run through the engine on this page

Source Email Name and company Result
ActiveCampaign export brian.cole@harborcpa.com Brian Cole, Harbor CPA Group Kept: the row with an email
Webinar signups (no email) Brian Cole, Harbor CPA Group LLC Same name and company, confidence high
ActiveCampaign export natalie.price@gmail.com Natalie Price, with phone Kept: the more complete row
Trade show list Natalie.Price@Gmail.com natalie price, no phone Same email address, confidence high
ActiveCampaign export karen.webb@lakesidelaw.com Karen Webb, Lakeside Law Kept
Phone only form (no email) Karen Web, Lakeside Law Close name and company match, likely
ActiveCampaign export sam.ortiz@ortizdental.com Sam Ortiz, Ortiz Dental Left alone
Trade show list samuel@ortizdental.com Samuel Ortiz, Ortiz Dental Left alone: two emails, two inboxes
Webinar signups (no email) Derek Shaw, no company Not matched to the Derek Shaw at Acme Roofing

Every result above came out of a real run on this file. A row with no email and no company is not matched on the name alone when the other row has a company, so Derek Shaw stays for you to check by hand. The phone number is not used as a match key. The same run proposed texas, mass, california, ohio and florida as TX, MA, CA, OH and FL, restored ZIP 2110 to 02110 and turned 03/04/2026 and 15 Jan 2026 into ISO dates.

04 Importing lists into ActiveCampaign

What exact matching does not cover

ActiveCampaign recognizes the same contact only on an exact email address or phone number. Everything else becomes a new contact, and every new list adds more.

Data deduplication tools

Phone formats split people

A number typed another way, or one that belongs to a contact with an email, creates a new phone only contact.

Imports keep the first row

Later rows with the same email or phone number are skipped, even when they hold the better data.

Every contact counts

On accounts opened since November 3, 2025, unsubscribed and bounced duplicates still count toward the limit.

What the file pass adds

Every likely duplicate across your export and the new list in one view, formats repaired before import, and a log of each merge you approved to explain the contact count.

05 Before you run it

Questions about activecampaign duplicate contacts

Does ActiveCampaign automatically remove duplicate contacts?
Only exact ones. ActiveCampaign keeps one contact per exact email address, and with phone only contacts on, per exact phone number. A second address, a different phone format or a typo in the name creates a new contact, and nothing suggests the pair for review. Those you find in an export and merge yourself.
How do I merge contacts in ActiveCampaign?
Open the contact you want to remove, click the dropdown next to Send a Campaign, choose Merge and pick the contact to keep. Resolve field and automation conflicts, then confirm. Tags, open deals and campaign activity move across, custom object data does not, and the merge cannot be undone.
Do unsubscribed contacts count toward my ActiveCampaign limit?
On accounts created on or after November 3, 2025, yes, every contact counts regardless of status. On older accounts only active contacts count. Archived contacts do not count on either, so archiving duplicates and dead records is how you bring the number down without losing history.
What happens to duplicate emails in an ActiveCampaign import?
ActiveCampaign imports the first row for each email address or phone number in the file and skips the rest. The row that survives is decided by file order, not by which row is better, so merge duplicates in the file first or sort the best row to the top.
Does DataUntangler connect to my ActiveCampaign account?
No. It works on the file you export, in your browser, and returns a cleaned file plus an audit log of every decision. You import the result into ActiveCampaign and merge any existing contacts yourself. Nothing on this site has access to your account and nothing writes to it.
06 What it costs

Plans for when the file is bigger than the demo

Yearly billing saves 50 percent. There is no free plan, and no card is needed to use the browser demo above.

Yearly billing saves 50 percent, half the monthly price.

Switch to yearly and save 50 percent.

Analyst

Self-serve

One person with files to clean, as many as they like.

$29$59/mo

Billed $348 a year Billed monthly

Buy Analyst, yearly Buy Analyst, monthly
  • Unlimited files
  • Files up to 25MB, about 100,000 rows
  • Exact and fuzzy duplicate detection
  • Dates, numbers, currencies, encoding and casing fixed
  • Every change reviewable before you download
  • Cleaned CSV and a change log, both downloadable
  • Runs in your browser: files never leave your machine
  • Email support

Enterprise

Several people on one invoice, a DPA on request, priced per seat.

$49$98/seat/mo

Billed $588 a seat a year, from 2 seats ($1,176) Billed monthly per seat, from 2 seats ($196)

Buy Enterprise, yearly Buy Enterprise, monthly
  • Everything in Analyst
  • Several people on one invoice
  • DPA on request
  • Invoicing and purchase orders
  • A named contact for support

Payment is by card through our payment provider, monthly or yearly, and you can cancel from your account at any time. The free try is one file of your own, up to 5MB, in the browser demo. Already paid? Sign in.

Clean the file, and be able to show what you changed

Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.

No card required. Your file never leaves your computer.

Clean a file