The Admin's Guide to Salesforce Duplicate Management
How to find, merge, and prevent duplicate records before they wreck your data
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.

