Account & Contact Dedupe
CRM dedupe rate > 99%
Duplicate CRM records are the tax nobody wants to pay. Every rep who's ever manually created an account instead of searching first has planted one. Every dropped-in list from marketing has grown them. Every acquisition has doubled them. By the time your CRM has 50k accounts, 15% are duplicates — mis-routing leads, breaking attribution, polluting every dashboard downstream.
An hour-by-hour walkthrough.
Step by step.
- 01
Detect duplicates by domain, email, fuzzy name
Nightly scan reads all accounts + contacts. Detects duplicates using: exact domain match, exact email match, fuzzy name match (Levenshtein), plus optional enrichment-based match (Clearbit / ZoomInfo confirms same company).
Salesforce · HubSpot · ZoomInfo · Clearbit - 02
Merge or flag high-confidence dupes
Confidence >0.9: auto-merge. Keep the older record (or the record with more activity, per your policy). Migrate opportunities, contacts, activities. Preserve audit trail.
Salesforce · HubSpot - 03
Route low-confidence to review
Confidence 0.6-0.9: queue to the RevOps review dashboard with side-by-side comparison. Reviewer taps approve / reject / edit. Sub-0.6 doesn't surface unless a rep explicitly asks Rev to check.
Dashboard · Slack - 04
Report changes to RevOps
Daily digest to the RevOps Slack channel: N merges, N reviews queued, N reversals from previous day. Trends surface over time; anomalies (sudden spike in dupes usually = a bad marketing import) flagged.
Slack
What you connect to make this run.
Salesforce
read+writeOAuth credential with account + contact merge scopes. Merge API called directly; audit trail preserved via Salesforce's own merge history.
HubSpot
read+writeOAuth with company + contact scopes. Same merge pattern; HubSpot's audit trail preserved.
ZoomInfo · Apollo · People Data Labs · Clearbit
readOptional enrichment layer. Rev uses vendor data to confirm 'same company' or 'same person changed jobs.' Improves confidence scoring materially.
Before and after, honestly.
Playbooks that pair with this one.
CRM Data Hygiene & Updates
The general hygiene pass this playbook is one component of.
Inbound Lead Enrichment & Routing
Same enrichment logic runs on inbound leads; dedup at intake prevents duplicates from being created.
Territory & Account Reassignment
Merges can trigger territory reassignments; both handled cleanly.
Stale Opp Cleanup
The related cleanup pattern for opportunities.
Answers about this playbook.
What if two reps 'own' the two duplicate records?
Ownership rules configurable. Default: keep the record with more recent activity (usually the more-worked one). If both are actively worked, escalate to the RevOps reviewer with context — the losing rep gets a notification with the merge rationale, not a silent removal.
Can we exclude specific accounts from auto-merge?
Yes — an exclusion list at the account level (e.g. "never auto-merge our top-20 strategic accounts"). All merges on excluded accounts go to human review.
What if the merge is wrong?
Every merge is reversible from the merge report for 30 days. After 30 days, historical data preserved but the merge is treated as final. Reversal writes to audit like the merge did.
How does this handle person-changed-jobs vs. duplicate person?
Enrichment-based check. If enrichment says the person is at Company B now (updated LinkedIn / job change signal), Rev creates a NEW contact at Company B instead of merging with the old one. Preserves the historical activity at Company A.
Does it work for a company with 500k accounts?
Yes — indexed hashing on domain + name makes the scan sub-linear. Nightly scan on a 500k-account CRM completes in under 2 hours.
See it run on your data.
Free plan, no credit card. Connect the systems this playbook needs and run it against a past event first.