Back to Blog

How do I deduplicate leads across multiple campaigns?

4 min read
How do I deduplicate leads across multiple campaigns?

Selling the same lead to two different buyers — whether from the same campaign or across different campaigns — is one of the fastest ways to lose buyer trust and generate disputes. Cross-campaign deduplication prevents this by checking every incoming lead against your organization's full lead history before it enters the delivery queue.

The challenge is that dedup needs to happen in real time, at ingestion, before any buyer receives the lead. Post-hoc dedup (checking later and issuing credits) is better than nothing but creates unnecessary disputes and erodes confidence in your operation.

How dedup works at ingestion

The core mechanism is straightforward: when a lead arrives, hash its canonical identifier (email, phone, or a composite of both), then look up that hash in your dedup store against all leads received within the configured window. If a match exists, reject the incoming lead immediately and return a duplicate rejection response to the source. If no match, accept the lead and write its hash to the dedup store for future checks.

The hash lookup must be atomic — meaning the read-and-write happen as a single operation — to prevent race conditions where two simultaneous submissions of the same contact both pass the check before either is recorded.

Choosing your dedup key and window

Three common key strategies:

  • Phone only: catches resubmissions from people who use different email addresses, common with auto-fill abuse. Miss: same phone, different person (rare but possible in households).
  • Email only: catches repeat submitters who know their phone number will be checked. Miss: same person with a different email.
  • Email + phone composite: both must match for a rejection. Tightest dedup, fewest false positives. Best default for most campaigns.

Window selection depends on your buyers' exclusivity expectations. A 7-day window is the standard for most lead distribution verticals. Mortgage and solar often use 30-day windows because buyers expect exclusive contact rights for longer.

Single-campaign vs. cross-campaign dedup

ScopeWhat it catchesWhat it missesTools with support
Single-campaign onlyDuplicates within one campaignSame contact submitted via different campaignsMost basic tools
Cross-campaign (org-wide)All duplicate submissions regardless of campaignContacts from before the dedup windowLeadMove ($149/mo), LeadProsper ($499+), Boberdoo ($1,000+)
Manual Sheets lookupPeriodic checks, not real-timeParallel submissions, high-volume campaignsSpreadsheets

Why manual dedup fails at real-time scale

Spreadsheet dedup runs a lookup formula at query time, not at ingestion time. In a campaign receiving even 50 leads per hour, two identical submissions can arrive within milliseconds of each other. Both lookups run against the same spreadsheet state before either write completes, and both pass. This race condition is not solvable with spreadsheet-based tooling — it requires a proper atomic data store with write locking or atomic compare-and-set operations.

Manual dedup also can't cover multiple campaigns simultaneously without complex sheet architecture that breaks when any schema changes.

Monitoring your dedup rate

A healthy dedup rejection rate depends heavily on your traffic sources. Pure SEO or referral traffic might see 1-3% duplicate rate. Paid traffic campaigns, especially affiliate-driven ones, can run 5-15% or higher if sources are gaming your system. A sudden spike in duplicate rate from a specific source is a reliable fraud signal worth investigating immediately.

Cross-campaign dedup is the unglamorous infrastructure layer that keeps your buyer relationships intact. Buyers who receive duplicates will eventually compare notes — and when they do, a systematic dedup log is the only way to demonstrate you're taking quality seriously.

Frequently asked questions

what is cross-campaign lead deduplication?

Cross-campaign dedup checks whether an incoming lead — identified by email, phone, or a combination — has already been received in any of your campaigns within a defined time window. If a match is found, the new submission is rejected as a duplicate before it enters the delivery queue. This prevents the same contact from being sold to multiple buyers across different campaigns.

what should the dedup key be?

The most common dedup keys are email address, phone number, or a combined hash of both. Phone-only catches people who use different email addresses. Email-only catches people who change their phone. Using both together as a composite key gives the tightest dedup. The tradeoff is that stricter keys may reject legitimate leads (e.g., a spouse submitting for the same household).

what dedup window should I set?

Common windows are 24 hours (aggressive, for high-volume campaigns where any re-submission within a day is suspect), 7 days (standard for most lead distribution), and 30 days (conservative, for high-value verticals like mortgage or solar where buyers want exclusivity for longer). The right window depends on your vertical and your buyers' expectations.

does LeadMove deduplicate across campaigns?

LeadMove runs dedup on every lead at ingestion by default. You can configure the dedup window (24h, 7d, or 30d) per campaign, and the dedup check runs across all campaigns in your organization, not just within a single campaign. This is included in the $149 Starter plan with no additional configuration required.

does LeadProsper support cross-campaign deduplication?

LeadProsper supports deduplication features on higher-tier plans, starting at $499+/mo. Cross-campaign dedup scope and window configurability depend on the specific plan and setup. For agencies managing multiple campaigns with strict dedup requirements, it's worth testing with a sample dataset before relying on it in production.

why does spreadsheet dedup fail at scale?

Spreadsheet dedup uses VLOOKUP or similar formulas that run at query time, not at ingestion time. When leads arrive in parallel (common with high-volume campaigns), two simultaneous submissions of the same contact can both pass the dedup check before either has been logged. This race condition is fundamental and not fixable with spreadsheet logic.

what happens to rejected duplicate leads?

Rejected duplicates should be logged with a rejection reason (duplicate) and the original lead ID they matched against, so you can audit your dedup performance by source. A high duplicate rate from a specific traffic source is often a signal of fraud or low-quality traffic that needs to be addressed upstream.

Start distributing leads smarter today

Ingest. Score. Route. Track. One platform.