Every long-running Salesforce org accumulates duplicates. Different reps enter the same company with different capitalization. Marketing forms create new Contact records instead of matching the existing one. Meanwhile, an integration pushes in 40,000 accounts overnight without checking for matches. This guide walks through how to mass merge duplicate accounts and contacts in Salesforce using four methods: the native merge tool, Salesforce’s Duplicate Rules for prevention, the built-in Data Import Wizard merge, and dedicated AppExchange apps for volume cleanups. Which one fits depends on how many duplicates you have — three is a native merge job, three thousand is not.
Quick Answer: For fewer than 20 duplicate sets, use the native Salesforce merge UI (Accounts and Contacts each support merging up to 3 records at a time). For hundreds to thousands, use a dedicated AppExchange dedup tool like Cloudingo or DataGroomr — both provide bulk matching, master-record selection, and merge preview. Always turn on Duplicate Rules first so new dupes stop being created while you clean up the old ones.
Duplicate cleanup is a two-part job — stop the bleeding with Duplicate Rules, then bulk-merge the historical mess with the right tool for the volume.
Before You Merge Anything: Turn On Duplicate Rules
In most cases, the single most expensive mistake in a duplicate cleanup is bulk-merging 4,000 records only to have 200 new duplicates appear the following week because no one turned on prevention. Fortunately, Duplicate Rules stop new dupes at the moment of entry.
Set these three things before touching a single merge button:
- Activate the Standard Account Duplicate Rule — Setup → Duplicate Rules → activate “Standard Account Duplicate Rule.”
- Activate the Standard Contact Duplicate Rule — same path.
- Choose Block or Allow with Alert — Block stops the save entirely; Allow with Alert lets the user proceed knowingly. For an org actively cleaning up, Block is usually the right call for a month or two.
If the standard rules don’t match your matching logic (they use fairly loose fuzzy matching on Name + Email), create custom Matching Rules first, then reference them from custom Duplicate Rules.
Method 1: Native Merge (Best for Under 20 Duplicate Sets)
Salesforce ships with a native merge tool built into every org. Specifically, it handles up to 3 records at a time on Accounts and Contacts. In practice, you pick which record is the master, which fields to keep from each duplicate, and Salesforce reparents related records automatically.
For Contacts: from any Contact record, click the dropdown → Merge Contacts. Salesforce shows candidate matches based on active Duplicate Rules; pick up to 2 more.
For Accounts: Setup → Data → Merge Accounts. Search by name, pick up to 3 duplicates, select master, choose winning field values for each row of the comparison.
- Setup: Zero — native
- Cost: Free
- Volume: Up to 3 records per merge, one merge at a time
- Best for: Fewer than 20 duplicate sets; ongoing cleanup as new dupes are surfaced
Watch Out For
Importantly, merging Accounts also reparents child Opportunities, Cases, Contacts, and custom-object records to the master. Specifically, if your org has heavy Opportunity roll-ups or forecasting locked on the losing account, the merge can distort historical roll-ups. Test in a sandbox before merging Accounts with a lot of closed-won pipeline.
Method 2: Data Import Wizard “Update” With External ID (Free, Prep-Heavy)
This is the “clever admin” method — no app install, no cost, but you have to do the matching yourself in a spreadsheet.
- Export the duplicate set — a report of Accounts (or Contacts) grouped by potential match key (Email domain, Name, Phone).
- In Excel/Google Sheets, pick a master record for each group and note the “surviving” ID.
- Build an Update CSV with the survivor’s Salesforce ID and the consolidated field values.
- Delete the losers after reparenting related records — this is the risky part; a Flow or Apex helper is safer than manual deletion.
Notably, the Data Import Wizard does not have a native “merge” mode — it has an “add or update” mode. As a result, true bulk merging with automatic reparenting is what dedicated dedup apps solve.
Method 3: AppExchange Dedup Apps (Best for 100+ Duplicate Sets)
Once you’re past a few dozen duplicate sets, native tools become impractically slow. Instead, dedicated dedup apps handle three things native tools don’t: bulk matching across many fields, mass-selection of a master record via configurable rules, and merge preview so you can catch problems before they’re irreversible.
Two we’ve deployed extensively for Cloud Nexus clients:
- Cloudingo — a mature dedup platform focused on Salesforce data cleansing. Handles bulk merges with matching-filter templates, and supports scheduled dedup jobs so cleanups run continuously. See our Cloudingo for Salesforce implementation notes for the deployment pattern we use with mid-market clients.
- DataGroomr — an AI-driven data-quality platform on the Salesforce AppExchange that focuses on machine-learning matching rather than fixed rules. Good fit for orgs with messy, inconsistent data where rule-based matching misses obvious dupes. Details on our DataGroomr integration approach.
Notably, both are paid apps, and both save enough admin hours on a 5,000+ record cleanup to pay for themselves inside the first project. The right choice depends on how structured your matching logic can be — rule-based (Cloudingo) vs. ML-based (DataGroomr).
Method 4: A Sequenced Cleanup Plan (For Really Bad Orgs)
Meanwhile, some orgs are past the point of a single-shot cleanup — 300,000 accounts with 40% duplicates isn’t a merge job, it’s a rebuild. In those cases the cleanup runs in phases:
- Phase 1: Prevention — activate Duplicate Rules to stop the growth. Nothing else matters until this is done.
- Phase 2: High-value cleanup — dedup Accounts with active pipeline first, then Contacts with recent activity. These matter most to the sales team and unlock the majority of business impact.
- Phase 3: Historical archive — for old duplicates with no downstream records, consider archiving or bulk-deleting instead of merging. Merge time and merge risk scale linearly; archive is O(1).
- Phase 4: Governance — schedule ongoing dedup runs (monthly or weekly) so drift doesn’t re-accumulate. A Salesforce org health check quarterly catches new sources of duplication before they compound.
Comparison — Which Method Fits Your Duplicate Volume
One Reason to Not Skip This: Downstream Damage
Duplicate accounts and contacts don’t stay contained to the object model. First, they corrupt forecasting (revenue reported twice on two records for the same customer). On top of that, marketing segmentation breaks — the same person gets two versions of the same nurture campaign. Storage costs also quietly inflate. Finally, duplicates show up in reports as duplicate rows — a symptom that admins often mistake for a report design problem when it’s really a data problem. Related good reading: our post on common Salesforce data migration mistakes covers many of the patterns that create duplicates in the first place.
Frequently Asked Questions
Will merging Accounts delete related Opportunities?
No — Salesforce reparents Opportunities from the losing Account to the master. However, any Contact Roles on those Opportunities may need review, and if two Opportunities on the losing and winning Account have similar names or amounts, you may want to review for duplicates separately.
Can Duplicate Rules retroactively find existing duplicates?
Not directly. Duplicate Rules fire on record save. To surface existing dupes, either export and analyze in a spreadsheet, run the Duplicate Record Sets object report, or use an AppExchange app that scans the org in bulk.
How do I decide which record should be the master?
Common criteria, in order of usefulness: most recent activity (open Opportunities, recent Tasks), most complete field population, oldest record ID (preserves historical audit trail), and record ownership (keep the record owned by the active rep). Most AppExchange dedup tools let you configure these as rules so the master selection is consistent across a bulk merge.
Does deduplication affect Person Accounts?
Yes, but with restrictions. Person Accounts can be merged, but you can’t merge a Business Account with a Person Account. If your org uses both, dedup should be scoped to like-with-like, and any AppExchange tool needs to be verified as Person-Account-aware before you deploy it.
Facing a Duplicate Backlog You Can’t Merge Manually?
Book a free 90-minute Salesforce Org Review with the Cloud Nexus team. We’ll size the duplicate footprint, recommend the right native / AppExchange combination, and hand you a phased cleanup plan you can execute without breaking pipeline data.
Book Your Free Org Review →



