Glossary · Data plumbing

Duplicate leads

The same person, twice — inflating your conversion count and, through it, the signal you send back to the ad platform.

Also: Lead deduplication, double submission

One of 25 entries in the Endpoint Forms glossary.

Definition

Two or more records representing one submission or one person. They arrive three ways: the same submission processed twice, the same person submitting twice, and the same person recognised as two people because the join key differed.

Why it matters

They corrupt the count before they corrupt the CRM. A duplicated conversion fires a duplicated event, and the ad platform treats every event as evidence about what to go and find more of.

the redirect has a boring upside nobody’s said yet: post/redirect/get. swapping state on the same url means back and refresh can re-fire the submit, so you end up with duplicate leads that look like two different people
u/navlio · r/webdev · Aug 2026
we had a quote form where the endpoint took ~4s and one user made three identical rows before the button ever disabled
u/navlio · r/webdev · Aug 2026

Three rows, one buyer, one intention. Your CPL improved, your conversion volume improved, and your sales team called the same person three times.

In practice

Three layers, because each fails differently and none is sufficient alone.

  • Client: disable the button on submit and generate an idempotency key per form render. Slow endpoints produce duplicates from impatience, not from malice.
  • Server: a unique constraint on that idempotency key, and post/redirect/get so a refresh cannot resubmit.
  • CRM: a merge rule for the same human arriving through different forms weeks apart, which no request-level mechanism can catch.

Send a stable event_id with every conversion so the ad platform can deduplicate too — see conversions API.

The common mistake

Deduplicating on email alone, after the conversion fired.

Email is a weak key. The same person uses a work address on the demo form and a personal one on the newsletter; two colleagues share an info@ mailbox; a relay address rotates. Deduplicate on a combination — email, phone, domain plus name — and accept that you will merge some things wrongly and miss others.

The bigger error is the timing. Most deduplication runs nightly in the CRM, long after the conversion event has already gone to the ad platform. The record gets tidy and the training data stays wrong.

Related terms

Hidden field
An input the visitor never sees, carrying your attribution into the submission — and the first thing an automated filler reads.
GCLID
The click id Google appends to your landing page URL — the join key between your CRM and your ad account, and it is discarded by default.
Conversions API
The server-to-server endpoint each ad platform provides for conversion events. A transport, not a truth.
Partial submission
What someone typed before they left. Both a recoverable lead and the raw material for every drop-off report you will ever run.
Progressive profiling
Ask three fields now and three more next time — a trade of completion for enrichment that almost nobody measures.