Skip to content

Salesforce Duplicate Management: How to Prevent, Find and Merge Duplicates

How Salesforce matching rules and duplicate rules work, how to find the duplicates already in your org, and how to merge them safely without losing history.

Duplicates are the most common data problem in Salesforce, and one of the most expensive. Two records for the same customer split the activity history, confuse ownership, double-count the pipeline and send the same email twice. Every report and automation built on top of them inherits the problem.

Salesforce has good built-in tools for this. The challenge is using them in the right order: stop new duplicates first, then clean up the ones you already have, then keep it that way.

How Salesforce decides what's a duplicate

Salesforce splits duplicate management into two connected tools:

Tool What it decides Example
Matching rule How two records are compared Same email address, or a similar company name plus the same city
Duplicate rule What happens when a match is found Block the save, or allow it with a warning

Salesforce provides standard matching rules for accounts, contacts and leads, and you can build custom ones for any field combination that identifies a real duplicate in your business. A duplicate rule then uses one or more matching rules and decides the action. Salesforce's Manage Duplicate Records guide covers both in detail.

Step 1: Stop new duplicates

Start with prevention, otherwise any cleanup is undone within weeks.

  • Decide what counts as a duplicate. For contacts and leads, email is usually the strongest signal. For accounts, a name alone isn't enough; "Acme" and "Acme Inc." in two different cities may be two real customers. Agree on the rule with the people who use the data.
  • Choose block or allow deliberately. Block is right when you're confident a match is always a duplicate. Allow with alert is safer for fuzzy matches, because it warns the user without stopping legitimate records.
  • Put block rules first. If a record matches an earlier rule, later rules skip it, so Salesforce recommends ordering block rules ahead of allow rules.
  • Report on what's being allowed. Duplicate rules can log the records users save despite an alert. Review that report regularly; it shows whether your matching rule is too strict or too loose.

Step 2: Know where the rules don't reach

Duplicate rules don't run in every situation. Records restored from the Recycle Bin and some import and API scenarios can bypass them, and a matching rule can miss duplicates if the user saving the record can't see a field the rule compares. Salesforce lists the exceptions in Things to Know About Duplicate Rules.

In practice, that means the biggest sources of duplicates are usually integrations and bulk loads, not users. Check each one:

  • Does the integration search for an existing record before it creates one?
  • Does it match on a stable key, such as an external ID, rather than a name?
  • Do data imports update existing records instead of inserting new ones?

Our data migration checklist explains how external IDs and upserts prevent duplicates during loads.

Step 3: Find the duplicates you already have

Once prevention is in place, size the existing problem:

  1. Report on the obvious matches. A report grouped by email address or by account name and city quickly shows the worst clusters.
  2. Use duplicate record sets. Where your edition supports it, a duplicate job scans existing records against a matching rule and groups the results, so you can work through them in batches.
  3. Prioritize by impact. Start with active customers and open opportunities. Duplicates on records nobody has touched in five years can wait, or be archived instead.

Step 4: Merge safely

Merging is permanent, so treat it as a controlled change, not a quick fix.

  • Salesforce merges up to three records at a time. You choose a principal record, then pick which field values to keep. Salesforce's guides cover merging accounts and merging contacts.
  • Related records follow the principal. Activities, opportunities and cases move to the surviving record, so history isn't lost.
  • Decide the "winning" values up front. Which record's owner, address and phone number survive? A simple rule (most recently updated, or the record with open opportunities) keeps merges consistent across the team.
  • Limit who can merge. Merging requires delete access, and mistakes are hard to undo. Keep it with admins or a trained data steward.
  • Check integrations first. If an external system stores the Salesforce ID of a record you're about to merge away, that link breaks. Update the integration's mapping before merging.

Step 5: Keep it clean

Duplicate management is a habit, not a project:

  • Review the duplicate rule report monthly.
  • Re-run duplicate jobs after large imports.
  • Give one person ownership of data quality, with time set aside for it.
  • Add a duplicate check to every new integration's go-live checklist.

Common mistakes

  • Cleaning up before turning on prevention. The duplicates come straight back.
  • Matching on name alone. It blocks legitimate records and frustrates users, who then find ways around the rule.
  • Ignoring integrations. Users get blamed for duplicates that a nightly sync creates.
  • Mass-merging without a rule for winning values. Good data gets overwritten by bad.

Duplicates are often the first sign of wider data and process issues. If they're one of several problems, our list of signs your org needs a health check is a good next read. And if you're planning AI agents, clean customer records are one of the first items on our Agentforce readiness checklist.

Need help with data quality?

Duplicates, completeness and ownership are part of how CRM360 reviews every org. See our approach to Salesforce optimization, or request a consultation to talk through your data.