Start here
Overview
Duplicates fragment history and break routing. Automation amplifies the problem unless matching is systematic.
Core concept
Definition
Matching identifies records representing the same real-world entity using deterministic keys first, then fuzzy similarity with thresholds.
Business impact
Why it matters
Splits cause double outreach; bad merges cause compliance and customer experience failures.
Practical model
Framework
Golden keys
Email for contacts; domain + normalized name for accounts where appropriate.
Human merge queue
Borderline matches need review—not silent merges.
Implementation detail
Detailed breakdown
Automation hooks
Before create, run match; on update, re-evaluate links.
In practice
Real-world example
A services firm deduped inbound leads against existing accounts—routing expansions to account teams instead of new rep roulette.
Avoid these
Common mistakes
- Aggressive auto-merge on similar names—different people, same city.
- No audit of merge actions—cannot unwind mistakes.
Engineering layer
Technical patterns
Blocking + scoring
- Block: first 3 chars of last name + zip.
- Score: Jaro-Winkler on name + exact email boost.
Build patterns
Code examples
Simple similarity gate
Candidate pair goes to auto-merge or review.
export function shouldAutoMerge(score, emailMatch) {
return emailMatch || score >= 0.92;
}System view
System architecture
[New/updated record]
→ [Blocking index lookup: candidates]
→ [Scorer]
→ [Auto-merge | human queue]
→ [Audit: survivor id]Keep learning
Related topics
Next step
PrimeAxiom implements dedupe with CRM-native tools and custom matchers—book a data audit.