Identity and retry controls

How to Prevent Duplicate Quiz Leads

By The Lead Quiz ReviewPublished Verified 8 min read

Answer: Prevent duplicate quiz leads by separating a person, a completion, an event, and a downstream action. Give every completion an immutable ID, normalize only approved identifiers, and create deterministic keys for CRM writes, assignments, analytics, and email. Merge people only under an explicit identity rule; preserve legitimate repeat completions, and reconcile retries before creating another action.

Key findings

The short version

What is a duplicate quiz lead?

A duplicate quiz lead is not one universal record. It may be a repeated browser event, a retried webhook, two contact records for one person, two valid completions by the same person, or one completion that creates multiple assignments or messages. Each layer needs its own identity key and resolution rule.

Deduplication removes unintended repetition. It must not erase a later valid completion, overwrite a supplied answer with an inference, or silently merge people who share a mailbox or device.

Related: Define the CRM handoff contract · Trace questions to stored outcomes

Define four identities

Keep the keys visible in logs and records so a reviewer can trace a duplicate report back to the exact completion and action rule.

EntityRecommended identityDo not use aloneReason
Person/contactApproved normalized identifier plus sourceBrowser cookie or nameShared and unstable values collide
CompletionGenerated immutable completion IDEmail addressOne person may complete more than once
EventCompletion ID + event name + versionTimestampRetries can have new timestamps
ActionCompletion ID + purpose + destination + versionProvider response IDA response may be missing after acceptance

Normalize conservatively

Trim surrounding whitespace and apply only transformations supported by the identity policy. Email-domain casing is generally safe to normalize, but provider-specific tricks such as removing dots or plus tags can merge distinct addresses. Phone normalization needs country context. Do not fingerprint people by combining extra fields merely to improve matching.

The ICO data-minimisation principle says personal information should be adequate, relevant, and limited to what is necessary. Document the purpose, access, retention, deletion, and correction behavior for every identity field. The ICO notes that this guidance is under review following the Data (Use and Access) Act, so recheck it before relying on the details.

Sources: ICO, Data minimisation principle

Choose merge and append rules

Update a contact only after a rule decides that the incoming record is the same person. Append every valid completion as a separate child record, preserving supplied answers, rule version, result, permission state, and event time.

SituationPerson ruleCompletion ruleDownstream action
Same completion retriedResolve existing contactReuse completion IDReuse action keys
Same person completes laterUpdate approved contact fieldsAppend new completionCreate actions for the new completion
Shared address, different personEscalate or keep separateKeep separateDo not auto-merge identity
Address corrected before finishUpdate pending record with auditOne final completionSend once to the corrected recipient
Address corrected after finishPreserve evidence and add correctionKeep original completionAudited resend if approved

Make every downstream write idempotent

Before a CRM upsert, assignment, analytics event, or email, calculate an action key from the completion ID, purpose, destination, and relevant version. Store that key before or atomically with the request when the architecture permits. A retry must look up the key and continue from its existing state.

Do not equate a timeout with failure. A receiver may accept a request even when the caller never receives the response. Reconcile the prior request by action key or receiver lookup before creating anything new.

Related: Apply the result-email send-once pattern

Run the duplicate injection matrix

Use synthetic records to test repetition, concurrency, correction, and legitimate repeat journeys before release.

TestInjectionExpected resultBlocking failure
Double clickSubmit twice rapidlyOne completionTwo IDs or actions
ReloadRefresh confirmationExisting completion shownNew lead created
Webhook retryDeliver one payload twiceOne event and actionDuplicate assignment
Timeout after acceptDrop local responseReconcile existing actionBlind resend
Concurrent workersProcess one event in parallelOne winning writeRace creates duplicates
Later valid completionRepeat after a changeNew completion under approved identityHistory overwritten
Shared addressTwo disclosed people use one inboxPolicy-specific reviewSilent merge
Deletion requestRemove governed dataAliases and merged records handledHidden copy remains

Keep analytics denominator-safe

Track raw received events, accepted unique events, completions, unique people under the approved rule, and downstream actions separately. A deduplication rate needs both raw and accepted counts.

Google Analytics recommends lead-generation events such as generate_lead and qualify_lead, but names do not solve identity or retry behavior. Document when each event is emitted and how repeated emissions are rejected.

Related: Use the full quiz-funnel measurement model

Sources: Google Analytics, Recommended events

Worked example: preserve a real repeat journey

A participant double-clicks submit. Two requests carry the same client completion token. The first creates completion C-9021 and actions C-9021:crm-upsert:v2 and C-9021:result-email:v1. The second resolves to C-9021 and returns the existing state. Three weeks later, the same approved contact completes an updated quiz and receives C-9470, preserving both result histories.

This is a synthetic systems example, not a product test or performance benchmark.

Release checklist

Block release until identity, retry, correction, and deletion behavior are reproducible.

  • Person, completion, event, and action identities are documented separately.
  • Normalization avoids provider-specific or unverified assumptions.
  • Legitimate repeat completions append instead of overwrite.
  • Every downstream write has a deterministic action key.
  • Double-click, reload, retry, timeout, and concurrent tests pass.
  • Shared identifiers and correction cases have an explicit human-safe rule.
  • Raw, accepted, duplicate, and action counts remain auditable.
  • Retention, deletion, access, and correction cover aliases and merged records.

Sources: W3C, Validating input

Evidence

How to reproduce the method

The reproducible evidence object is a four-identity contract, merge-versus-append decision table, and eight-case duplicate-injection matrix. It can be run with synthetic records and no vendor account.

Limitation

Where this conclusion stops

This method reduces unintended repetition; it cannot prove that two records represent the same human, prevent every malicious submission, or define a lawful identity policy. Identity, retention, and deletion rules require context-specific privacy and legal review. No product performance or conversion claim is made.

Sources and verification

What this guide relies on

Sources and method checked September 25, 2026. External standards are linked to their primary publishers. Request a factual correction.

Continue the workflow

Related practical guides

This article is implementation guidance and does not make a product recommendation.

Explore quiz conversion, follow-up, and measurement