Duplicate Records (Diagnosis)
Find the root cause of duplicate records in your CRM or outbound lists, fix the deduplication logic that created them, and prevent new duplicates from entering the pipeline.
Fast Diagnosis
4 causes behind 90% of duplicate record problems
The most common cause: a CRM integration that creates new contact records instead of matching against existing ones. Every import without a primary deduplication key generates a new record, regardless of whether that contact already exists.
Root Causes
6 root causes ranked by urgency
| Root cause | How to confirm | Urgency |
|---|---|---|
| CRM dedup key set to name, not email | Check CRM deduplication settings. If primary match field shows "Full Name" or "First + Last Name," this is the cause. | High |
| No global suppression list before imports | Ask each team member where their most recent list came from. If two people imported from different tools in the same week, cross-check by email for overlaps. | High |
| Enrichment write mode set to "create on no match" | Open your enrichment tool integration settings (Clay, Apollo, or Clearbit). Look for the write mode. "Create if not found" generates duplicates when match fails. | High |
| Sending tool without cross-campaign deduplication | Search for the same email address across all active campaigns. If it appears in more than one, cross-campaign dedup is not configured. | Medium |
| LinkedIn automation creating new CRM contacts per action | Check your LinkedIn automation CRM sync settings. "Create contact on connection accept" creates a record even when the contact already exists. | Medium |
| Alias emails treated as separate contacts | Search the CRM for the same person's name. If they appear under firstname@company.com and f.lastname@company.com as separate records, aliases are treated as distinct contacts. | Low |
A contact in two active campaigns receives two cold email sequences simultaneously, triggering negative replies that hurt both the relationship and domain reputation. Pause all active campaigns and run the cross-campaign email dedup check before fixing anything else.
The Fix
5 steps to fix duplicate records and stop double sends
Fix the deduplication key and suppress active double-sends before cleaning historical records. Correcting the root cause first prevents new duplicates from forming while the cleanup runs.
- Step 1: Stop active double sends immediately
In Instantly, search leads across all campaigns by email address. Pause the lower-priority campaign for any contact appearing in more than one active campaign.
- Step 2: Set email as the primary CRM deduplication key
In HubSpot: Settings > Objects > Contacts, set Unique Identifier to Email. In Salesforce: Duplicate Management under Setup, confirm Email is the primary matching field for Lead and Contact objects.
- Step 3: Build and enforce a global suppression list
Export all CRM contacts as an email-only CSV and upload it as a suppression list in every sending and LinkedIn automation tool. In Instantly this is the Blocklist; in Smartlead, upload to the global block list under Settings.
- Step 4: Switch enrichment integrations to "update only" mode
In Clay, set conflict resolution to "Update existing record only" and route unmatched rows to a review column instead of auto-creation. Apply the same change to any Apollo, Clearbit, or LeadIQ CRM sync configurations.
- Step 5: Merge existing duplicate records in the CRM
In HubSpot: Contacts > Actions > Manage Duplicates. In Salesforce: use Duplicate Management to generate a report, then merge flagged pairs. For bulk volumes, Dedupely handles large-scale merges across both CRMs.
Export the full duplicate list before running a bulk merge. Verify that activity history and deal associations transfer to the primary record before confirming deletion.
Prevention
1 dedup gate that blocks all future duplicates
Every integration, import, and enrichment run must check against the CRM email address before creating a new record. This is a configuration setting in each tool, not a process step that relies on team discipline.
Most CRMs accumulate a 3 to 5 percent duplicate rate per quarter as new integrations connect. Schedule a 15-minute monthly scan in HubSpot's Manage Duplicates view or Salesforce's duplicate rules report.
Add a column in Clay that checks each row's email against your CRM suppression export. Push only rows flagged as "new contact" to make the Clay-to-CRM pipeline self-deduplicating.
FAQ
Duplicate records: 5 questions answered
Three causes cover most cases: CRM dedup key set to name instead of email, multiple team members importing without a shared suppression list, and enrichment tools set to "create on no match" instead of "update only."
Five items: active double-sends paused, CRM primary dedup key set to email, suppression list updated in all sending tools, enrichment write mode set to update-only, and a CRM dedup scan run with all flagged pairs merged.
Instantly deduplicates within a single campaign but not automatically across campaigns, so the same address can exist in two active campaigns simultaneously. Add all active campaign emails to the global block list to enforce cross-campaign suppression.
In HubSpot, merge transfers all activities, notes, and deals from the secondary record before deleting it. In Salesforce, export the pair's combined activity history first and verify the primary record shows merged data before confirming deletion.
A contact with two CRM records may appear as two open opportunities if both records carry a deal, inflating pipeline figures. Run the dedup scan filtered to contacts with associated deals first when investigating inflated pipeline numbers.
Duplicates cleared. Next: audit the full data quality chain.
The Data Quality to Deliverability guide traces every upstream cause that produces bad records before they reach your CRM or campaigns.