The Admin's Guide to Salesforce Duplicate Management

How to find, merge, and prevent duplicate records before they wreck your data

Overlapping circles merging into one representing Salesforce duplicate record management

Three overlapping geometric circles consolidating into single circle, navy blue on beige

The report said we had 12,000 donors. The actual number was closer to 8,500.

The nonprofit had been running their annual giving campaign based on inflated numbers. Board reports were wrong. Segmentation was broken. Some donors received duplicate appeals while others received nothing because their records weren't linked to the right household.

Three years of duplicate accumulation. No matching rules. No duplicate prevention. Just a growing mess that got harder to clean every quarter.

Duplicate management isn't glamorous work. It's also one of the highest-impact things a Salesforce admin can do for data quality. Here's how to do it right.

Why Duplicates Happen

Understanding the sources helps you prevent future problems:

Manual Entry Without Checking

User creates a Contact without searching first. Same person, different spelling ("John" vs "Jon"), different company. Now you have two records.

Web-to-Lead Without Matching

Lead form submissions create records directly. Same person submits twice with different email addresses. Two leads, one person.

Data Imports Without Deduplication

Marketing uploads a list from an event. Half the attendees already exist in Salesforce. Now they exist twice.

System Integrations

Marketing automation syncs prospects. ERP syncs customers. Neither system checks for existing records. Duplicates multiply.

Acquisitions and Mergers

Company acquires another organization. Customer databases get combined. Overlap creates duplicates.

Every organization has duplicates. The question is whether you're managing them proactively or discovering them in angry customer emails.

The Three-Part Duplicate Strategy

Effective duplicate management has three components:

1. Prevention: Stop new duplicates from being created

2. Detection: Find existing duplicates

3. Resolution: Merge or manage duplicate records

Most organizations jump to resolution (cleaning up the mess) without addressing prevention (stopping new messes). This creates an endless cleanup cycle.

Start with prevention.

Part 1: Prevention with Duplicate Rules

Salesforce's native Duplicate Management uses two components:

Matching Rules: Define what "duplicate" means for each object. Which fields should match? How fuzzy should the matching be?

Duplicate Rules: Define what happens when a match is found. Alert the user? Block the save? Allow but report?

Setting Up Matching Rules

Navigate to: Setup → Duplicate Management → Matching Rules

Standard matching rules exist for Leads, Contacts, and Accounts. They're decent starting points but often need customization.

Contact Matching Rule Example:

Field | Matching Method

Email | Exact

First Name | Fuzzy: First Name

Last Name | Fuzzy: Last Name

Account Name | Fuzzy: Company Name

The "Fuzzy" methods handle variations: "Robert" matches "Bob," "Smith" matches "Smyth."

Matching Rule Logic:

Most rules use "OR" logic: match if Email matches OR if (First Name AND Last Name AND Account) match.

This catches duplicates even when email addresses differ.

Setting Up Duplicate Rules

Navigate to: Setup → Duplicate Management → Duplicate Rules

For each rule, define:

When does the rule run?

• On create only

• On create and edit

What action to take?

• Allow with alert (user sees warning, can save anyway)

• Block (user cannot save)

• Report (creates duplicate record set for admin review)

Alert behavior:

• What message does the user see?

• What fields appear in the duplicate comparison?

My Recommended Configuration

For Leads:

• Matching: Email exact OR (First Name fuzzy + Last Name fuzzy + Company fuzzy)

• Action: Alert on create, allow save

• Report: Yes

For Contacts:

• Matching: Email exact OR (First Name fuzzy + Last Name fuzzy + Account match)

• Action: Alert on create and edit, allow save

• Report: Yes

For Accounts:

• Matching: Company name fuzzy + (Billing City OR Website domain)

• Action: Alert on create, allow save

• Report: Yes

I rarely recommend "Block" because it frustrates users and they'll find workarounds. "Alert" educates users while still flagging duplicates for review.

Part 2: Detection with Reports and Tools

Duplicate rules catch new duplicates. You still need to find existing ones.

Native Detection: Duplicate Record Sets

When duplicate rules run and find matches, they create Duplicate Record Sets. Review these regularly:

Navigate to: Setup → Duplicate Management → Duplicate Record Sets

This shows every duplicate pair your rules have detected. Prioritize by:

• Record count (larger sets = more duplicates to merge)

• Object type (Accounts typically matter more than Leads)

• Created date (older sets may need immediate attention)

Report-Based Detection

Create reports to find potential duplicates your rules might miss:

Same Email, Different Records:

Object: ContactsColumns: Email, Name, Account, Created DateFilter: Email is not blankGroup By: EmailShow CountFilter Groups: Count > 1

Same Company Name Variations:

Object: AccountsColumns: Name, Billing City, WebsiteSort By: NameReview manually for variations

Same Phone Number:

Object: ContactsColumns: Phone, Name, AccountFilter: Phone is not blankGroup By: PhoneFilter Groups: Count > 1

Third-Party Detection Tools

For large orgs or complex matching, consider AppExchange tools:

Cloudingo: Mass deduplication with advanced matching

DemandTools: Enterprise-grade data management suite

Duplicate Check (Plauti): Real-time and batch duplicate management

These tools offer matching algorithms more sophisticated than native rules and handle bulk merging that's tedious to do manually.

Part 3: Resolution Through Merging

Once you've found duplicates, you need to merge them.

Manual Merging: The Native Approach

For Accounts:

1. Go to the Account you want to keep (the "master")

2. Click "Merge Accounts" from the action menu

3. Search for duplicate Accounts

4. Select which fields to keep from each record

5. Merge

For Contacts:

1. Go to the Contact you want to keep

2. Click "Merge Contacts" from the action menu

3. Search for duplicates (must be in same Account)

4. Select field values

5. Merge

For Leads:

1. Navigate to the Leads tab

2. Select duplicate Leads from a list view

3. Click "Merge Leads"

4. Select field values

5. Merge

Merge Considerations

When merging, you're choosing which record becomes the "master" and which values survive:

Keep the most complete record. The record with more populated fields usually becomes master.

Keep the oldest record. Preserves historical Created Date and sometimes matters for reporting.

Keep the record with more relationships. The record with more Activities, Opportunities, or related records often has richer history.

Check before deleting. Merging deletes the non-master record. Related records typically transfer to the master, but verify.

Bulk Merging

Native Salesforce limits you to merging 3 records at a time. For large duplicate sets, use:

Apex:

Account master = [SELECT Id FROM Account WHERE Id = :masterId];List<Account> duplicates = [SELECT Id FROM Account WHERE Id IN :duplicateIds];Database.merge(master, duplicates);

Data Loader:

For truly large volumes, some organizations export, transform, and re-import rather than merging. This is more complex but handles thousands of records.

Third-Party Tools:

Cloudingo and similar tools excel at bulk merging with field-by-field control.

Building a Duplicate Management Routine

Duplicate management isn't a one-time project. Build it into your regular admin work:

Weekly:

• Review Duplicate Record Sets created in the past week

• Merge high-priority duplicates (Accounts, key Contacts)

Monthly:

• Run duplicate detection reports

• Review and tune matching rules if false positives are high

• Train users who create the most duplicates

Quarterly:

• Audit duplicate prevention effectiveness

• Run bulk detection on objects not covered by real-time rules

• Review third-party data sources for duplicate contribution

Annually:

• Deep clean: Comprehensive duplicate sweep across all objects

• Rule review: Are matching rules still appropriate?

• Tool assessment: Do you need better tools?

Special Cases

Duplicates Across Objects

Lead-to-Contact duplicates are common. A Lead converts, but a Contact with the same email already exists.

Prevention: Check for existing Contacts before Lead conversion

Detection: Cross-object reports comparing Lead and Contact emails

Resolution: Convert Lead without creating Contact, link to existing record

Intentional Duplicates

Sometimes "duplicates" are legitimate:

• Same person, different roles at different companies

• Parent/child Account with same name

• Contact who moved companies but you want history at both

Handle these with:

• Custom fields to flag "known duplicate, intentional"

• Exclusions in your duplicate rules

• Documentation of why they're separate records

Duplicates from Integrations

Integrations are often the biggest duplicate source. Prevent by:

• Requiring External ID matching before creating records

• Upsert operations instead of insert

• Integration-specific duplicate rules

• Syncing with duplicate detection before commit

Measuring Success

Track duplicate management effectiveness:

Duplicate Creation Rate:

• New duplicate record sets per week

• Trend should decline after implementing prevention

Duplicate Inventory:

• Total unresolved duplicates

• Should decrease over time

Resolution Velocity:

• Duplicates merged per week

• Should exceed creation rate

User Behavior:

• Which users create the most duplicates?

• Are alerts changing behavior?

Build a simple dashboard with these metrics. Review monthly.

The Checklist

Before you consider duplicate management "done":

Prevention:

• [ ] Matching rules configured for Leads, Contacts, Accounts

• [ ] Duplicate rules active with appropriate actions

• [ ] Users trained on duplicate warnings

• [ ] Integration sources configured for deduplication

Detection:

• [ ] Duplicate Record Sets reviewed regularly

• [ ] Detection reports scheduled

• [ ] Historical data scanned for existing duplicates

Resolution:

• [ ] Merge process documented

• [ ] High-priority duplicates resolved

• [ ] Ongoing merge routine established

Monitoring:

• [ ] Metrics tracked

• [ ] Dashboard available

• [ ] Quarterly review scheduled

Next Steps

1. Activate standard matching and duplicate rules (they're off by default)

2. Run duplicate detection reports on your highest-value objects

3. Merge the worst offenders first

4. Establish a weekly review routine

5. Train users on duplicate prevention

If your duplicate situation is severe (more than 10% of records), consider bringing in help. Clear Concise Consulting offers data quality assessments and bulk deduplication services. Sometimes a concentrated cleanup effort gets you to a maintainable state faster than incremental work.


Jeremy Carmona is a 13x certified Salesforce Architect who has cleaned up duplicate databases for nonprofits, healthcare systems, and enterprise organizations. His largest deduplication project reduced a 50,700-record database to 34,200 clean records.

Next
Next

Salesforce Certification Decoder: What Recruiters Must Know