Skip to main content

How should we deduplicate leads that come in twice?

Attribution & Measurement Published November 3, 2026
Short Answer

Match on a normalized phone number first, then email, then name plus service address. Set a time window inside which a repeat contact joins the existing lead instead of creating a new one. Keep both records and mark one as a duplicate rather than deleting it, and preserve the earliest source on the surviving record. Deleting duplicates destroys the evidence you need when two systems disagree later.

Normalize before you compare

Most duplicate detection fails on formatting, not logic. The same phone number arrives as a ten-digit string from the web form, with a country code from the call platform, and with a dash pattern from an import. Strip everything to digits, drop the leading country code, discard extensions, and compare the result. Do the same for email by lowercasing and trimming.

Addresses need their own treatment. Standardize suite and unit notation, expand or collapse street type abbreviations consistently, and compare on the standardized form. Without normalization your match rate is measuring your typing conventions rather than your customers.

The matching ladder, in order of confidence

  • Normalized phone. Strongest single signal for residential service work, and the one most likely to be present on both records.
  • Email. Strong, but frequently missing on phone leads and often shared within a household.
  • Name plus service address. Catches the case where a spouse calls from a different phone about the same job.
  • Address alone, within a short window. Useful as a review flag rather than an automatic merge, since multi-unit buildings and property managers produce legitimate separate jobs.

The window, and the two ways to break it

A time window decides whether a second contact is the same lead or a new one. Too short and every follow-up call creates a fresh lead, inflating counts and cutting your booking rate. Too long and a genuine second job months later gets absorbed into an old record, hiding real repeat demand.

Pick the window from your own data rather than a default. Look at the distribution of days between contacts for records you know are duplicates, and set the boundary where that distribution thins out. Commercial accounts and property managers usually need their own rule, because one phone number legitimately generates many unrelated jobs.

First source wins, and never hard delete

When two records merge, keep the earliest source. It matches how people describe what happened, and it prevents the pattern where every lead eventually attributes to branded search because that was the last route in. Record the later sources as subsequent touches rather than discarding them.

Mark duplicates rather than deleting them. When the ad platform, the call platform and the field service system report three different lead counts, the duplicate flags are how you explain the gap. That is the same reason a good integration layer keeps its unmatched bucket visible, and why customer intelligence work starts with identity before it starts with analysis.

Topics: deduplication · lead matching · CRM hygiene · data quality

Have a version of this question about your own business?

The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.

Related Answers

People who read this also asked

Browse the Answer Hub →

AI is easy to access. Making it useful is hard.

Bluefrog makes AI useful by integrating it with the way your business actually works — your software, your calls, your customers, your marketing and your revenue.

Technology development since 1997 · AI integration platforms since 2001