salesforce duplicate rules failed to catch existing contacts
Diagnoses Salesforce duplicate rules that miss existing contacts: matching rule too narrow, rule inactive, or bypassed by the API. Audit the rule, the match criteria, and the bypass paths. Use when duplicates slip through. Not for DUPLICATES_DETECTED blocks.
TL;DR
A duplicate rule that never fires is usually inactive, scoped to the wrong object, or using matching criteria too narrow for your data (exact name when the data has nicknames). Check the rule status and its matching rule, test it against a known duplicate pair, and widen the criteria deliberately. Also check whether the writer bypasses rules via the API header.
Error
(No error; the symptom is two contact records for the same person with no duplicate alert.)Steps
- In Setup, open Duplicate Rules and confirm the rule is Active and assigned to the right object. Expected: active, correct object, correct record types.
- Open the matching rule and read its matching criteria. Expected: you see the fields and the matching method (exact vs fuzzy) for each.
- Test with a known pair: create a contact that should match and see whether the rule fires. Expected: a controlled reproduction of the miss.
- If the criteria are too narrow (exact first+last name but your data has "Bob" vs "Robert"), switch key fields to fuzzy or add email as an exact criterion. Expected: the test pair now triggers the rule.
- Check API writers: the duplicate rule header allowSave bypasses Alert rules, and some integrations set it globally. Expected: you find whether the bypass is legitimate or a blanket skip.
When to use
- Duplicate contacts keep appearing despite an active duplicate rule.
- An agent bulk load created duplicates the UI would have caught.
- After changing matching criteria, duplicates still slip through.
When not to use
- DUPLICATES_DETECTED blocks (the rule fires too aggressively, opposite problem).
- HubSpot duplicates (different platform mechanics).
Tool compatibility
- Salesforce duplicate rules and matching rules; Setup audit.
- API duplicate rule headers.
Variant phrasings
duplicate rule not firing on import
Imports often bypass rules depending on the tool settings; check the import path.
matching rule too strict
Narrow criteria miss real duplicates; widen deliberately.
Why it happens
Matching rules are precise instruments tuned for clean data. Real CRM data has nicknames, typos, and married names, so exact-match criteria miss constantly while everyone assumes the rule is protecting them.
Edge cases
- Cross-object matching (lead vs contact) needs its own rule; a contact rule never fires on lead insert.
- Person accounts need separate matching consideration from business accounts.
- Widening too far creates false-positive blocks; tune on a labeled sample of true pairs.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_m75i7VVOgYLrxXe8oyTjEw
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.