Measure the duplicates first, agree which record wins, back up, merge in small batches, then turn on duplicate rules so new ones stop. Salesforce merges at most 3 records at a time.
Clientell AI, the AI Salesforce admin, finds duplicate groups across Leads, Contacts and Accounts, shows the merge it would make, and runs it only after you approve. Try the Clientell AI data cleaning tool or run the free, read-only data quality audit first.
How many duplicates do I have?
Count before you clean. Pick a few simple keys per object and record the duplicate rate, so you can show progress later (Abstrakt, 25-09-2026).
| Object | Keys to group by | Why |
|---|---|---|
| Lead | Imports and web forms create the most Lead duplicates. | |
| Contact | Email, plus Account | One person can sit under two Accounts. |
| Account | Normalized company name, plus website domain | "Acme Inc" and "ACME, Inc." should match. |
The duplicate rate is the records with at least one likely match, divided by the active records on that object. For example, if 1,200 of 8,000 active Contact records have a match, your rate is 15%. Track it per object and per source, such as form, import or integration, so you see which door the duplicates come through.
You can find Contact groups with one SOQL query in the Developer Console:
SELECT Email, COUNT(Id) FROM Contact WHERE Email LIKE '%@%' GROUP BY Email HAVING COUNT(Id) > 1
Cloudingo suggests the same idea in a report: group Leads by Email Address and look for campaigns or imports that produced many matches (Cloudingo, 10-06-2026).
What do matching rules and duplicate rules do, and what do they miss?
A matching rule decides what counts as a duplicate (Salesforce Help). A duplicate rule decides what happens when one is found: block the save, alert the user, or log it (CLIMB, 30-04-2026). You pair them. One duplicate rule holds up to 3 matching rules, and an object can have up to 5 active matching rules (Trailhead).
Standard matching rules exist for Leads, Contacts and Accounts. They cover the basics and will not catch everything, especially inconsistent formats and partial entries (CLIMB).
| Tool | What it does | What it misses |
|---|---|---|
| Duplicate rule | Warns or blocks when someone creates or edits a record | It does not clean records already in the org. |
| Duplicate Job | Scans existing records and builds Duplicate Record Sets | It needs Performance or Unlimited Edition. |
| Compare and Merge | Shows two records side by side so you pick field values | It handles 3 records per merge. |
| Data Import Wizard | Matches on Salesforce ID, Name or Email during an import | Data Loader has no built-in matching, so active rules fire per record. |
The Duplicate Job edition limit comes from CLIMB and from Verum, 17-01-2026. If you run Professional or Enterprise Edition and see no Duplicate Jobs option, that is why. Read more about imports in Data Loader vs Data Import Wizard.
How do I merge duplicates safely, and what can I not undo?
Merges cannot be undone, so decide the rules before the first merge. Use this order (Abstrakt, 25-09-2026):
- Decide which record wins: the most recent activity, the most complete, or the one linked to open Opportunities.
- Back up. Export the affected records and their related data.
- Merge Accounts first, then their Contacts. Opportunities follow the Account.
- Merge or convert Leads last, so marketing history stays with the right person.
- Check your integrations. Confirm connected systems point at the surviving record.
Then set a rule for each important field, because the best value often sits on the losing record.
| Field type | Rule that usually works | Example |
|---|---|---|
| Contact details | Most recently verified value | A phone number a rep confirmed last month beats an old import. |
| Ownership | Owner of the record with open Opportunities | The owner of a live deal keeps the Account. |
| Descriptive fields | Most complete value | A full street address beats a city. |
| Consent and opt-out | Most restrictive value | If either record opted out, the merged record stays opted out. |
| External IDs | Keep every ID | Both billing IDs stay, so the finance sync still works. |
Salesforce lets you merge a maximum of 3 records at a time, and standard tools cannot automate it (CLIMB). The Salesforce Admin blog gave the same limit in 2017: up to 3 records of the same object (Salesforce Admins, 16-10-2017).
How do I clean up duplicates in bulk without breaking reports and automations?
The cap of 3 records is the problem at scale. Merging 500 duplicate pairs by hand means at least 500 merges, each with a field-by-field choice. Scripted merges or a data-quality tool with a review step are safer than thousands of hand merges (Abstrakt).
Before any bulk merge, check four things:
- Flows and triggers that run on update or delete of the object. A merge removes the losing records, so check whether any automation listens for deletes.
- Reports and list views filtered by a record's ID or created date. The winner keeps its own ID, and the losing records disappear.
- Integrations that store the Salesforce ID of a losing record. They must switch to the winner.
- Validation rules that could reject the winner once it takes the losing record's values.
Run the first batch in a sandbox that holds a copy of the object. Compare counts before and after. Then run a small batch in production, check the same counts, and only then run the rest.
Clientell AI works the same way: a read-only scan first, a sandbox first, a plan that shows each group with the record it would keep, your approval, and rollback. See security and privacy.
Try it in Clientell: "Find duplicate Contacts by email and account, show each group with the master record I should keep, and wait for my approval before merging anything."
How do I stop new duplicates from coming in?
Cleanup without prevention only buys a few months (Abstrakt). Do these four things:
- Start duplicate rules in alert mode, not block mode. Rules that block good records teach users to work around them. Tighten once the matches prove accurate.
- Make integrations upsert on an external ID instead of inserting blindly.
- Use matching during imports. The Data Import Wizard can match on Salesforce ID, Name or Email.
- Run the duplicate report on the same day each month, with the same keys.
Duplicates now cost more than messy reports. When an AI agent or a flow acts on a record, a duplicate means the action lands on the wrong customer. Clean data is the first item on an AI readiness list. Start with the free data quality audit, or start the 14-day trial, no card needed. Clientell MCP is $249 a month and Clientell Platform is $500 a month. See pricing.
FAQ: common questions about Salesforce duplicates
Can I undo a Salesforce merge?
No. Back up the records first, then merge. That is why the order above puts the backup before the first merge.
How many records can I merge at once?
Up to 3 records of the same object per merge, through the standard tools.
Do Duplicate Jobs work in Enterprise Edition?
No. CLIMB and Verum both say Duplicate Jobs need Performance or Unlimited Edition. Duplicate rules and matching rules still work on Professional and Enterprise Edition.
Should I block duplicates or just warn?
Warn first. Review a sample of the matches, then block once the rule proves accurate.
Should I merge Leads or Accounts first?
Accounts first, then Contacts. Leads go last.
Last updated: October 6, 2026