Where duplicates actually come from
- The same person calls and also submits the web form.
- A spouse submits the same job under a different name.
- A lead returns nine months later and is entered as new.
- Imported lists overlap with existing records.
- Phone numbers stored in five different formats never match.
What to match on, in order
Normalized phone is the strongest signal: strip formatting, compare the last ten digits. Email is second. Address plus last name is third and catches households where the phone changed.
Fuzzy name matching alone is a trap. Two different Smiths on the same street are common; two different leads with the same mobile number are not.
Detect at creation, not at cleanup
A duplicate caught at creation costs one confirmation prompt. A duplicate caught three weeks later costs a merge, a split conversation history, and often an apology for calling twice.
The check belongs on every entry path — manual entry, web form, imports and ad-form submissions alike.
How to merge without losing anything
- Keep the oldest record as the surviving one so the lifecycle history stays intact.
- Carry over messages, appointments, estimates and files from the duplicate.
- Record the original source of every merged record for attribution.
- Preserve the most restrictive consent state, never the most permissive.
- Log the merge so it can be explained later.
What duplicates cost you
Pipeline counts inflate, so forecasting drifts. Two reps work the same job and the customer notices. Attribution splits, so a good source looks worse than it is.
The reputational cost is the one that matters. Getting called twice by the same company reads as disorganized before a price is ever discussed.