Cover image showing a “QA Gate” filtering leads before routing—syntax checks, enrichment, deduplication, consent, scoring, and quarantine—so sales only gets qualified contacts.

QA Gates: Pre-Routing Validation

September 19, 20258 min read

Validate before routing so sales doesn’t waste cycles and attribution stays clean.


High-intent leads deserve high-quality handling. But if you pass everything straight to sales, you’ll clog calendars with bad numbers, fake emails, mismatched geos, and non-consenting contacts. Pre-routing validation—your “QA gate”—catches junk and risk up front, so reps stay focused, pipeline stays trustworthy, and your attribution model reflects reality rather than noise.

Below is a practical, implementation-ready blueprint you can adapt to your stack.


Why validate early: cost of junk leads

Passing unvetted leads to sales feels fast—until you quantify the drag:

  • Wasted sales time: If a rep spends even 5 minutes on a bad lead and 10% of leads are junk, 100 junk leads/month = 8+ hours of lost selling.

  • Artificially low conversion rates: Bad inputs deflate conversion math, masking good channels and unfairly penalizing experiments.

  • Attribution contamination: Unreachable or ineligible contacts inflate “leads” while depressing “qualified” and “opportunity” metrics, distorting channel ROI.

  • Deliverability & reputation risks: Messaging to invalid emails/phone numbers worsens sender and A2P reputation, reducing reach for legitimate contacts.

  • Compliance exposure: If consent isn’t verified, outreach can create TCPA/A2P and privacy liabilities.

Bottom line: A 3–8% lift in sales-accepted lead rate is common when a rigorous QA gate filters junk and routes only qualified, eligible records.


Syntax checks, enrichment, deduplication

Think of this step as “does it look real, can we reach it, and do we know enough to route it?” Your QA gate should run in milliseconds to seconds and assign a disposition that controls routing.

1) Syntax & format checks (instant)

  • Email: RFC-compliant format, allowed TLD, no disposable domains, no role-based (info@, sales@) if your ICP requires personal contacts.

  • Phone: E.164 normalization, valid country/area code, non-paged ranges, not obviously fake (e.g., repeating digits).

  • Name: No profanity, no keyboard mashing, length bounds.

  • Address: Basic structure present (street/city/region/postal), country recognized.

Pass/Fail thresholds (typical starting points):

  • Email format valid AND domain resolvable (MX or catch-all) → pass

  • Phone parses to E.164 AND carrier type ≠ pager/test → pass

  • Address includes postal code and mappable locality → pass
    Anything else → quarantine (see below).

2) Enrichment & verification (fast but informative)

Use low-latency APIs to strengthen routing and scoring:

  • Email verification: Deliverability risk score (e.g., valid, risky, invalid).

  • Phone intelligence: Line type (mobile vs. landline), carrier, active status.

  • Address validation/geocoding: Standardization + lat/long for territory routing.

  • Firmographic/persona enrichment (B2B): Industry, employee range, revenue, tech install signals, role seniority from the domain or social lookup.

  • IP & device signals: Geolocation vs. declared location, VPN/hosting detection, velocity heuristics.

How to use: Combine enrichment confidence with declared form data to assign a pre-score (e.g., 0–100). High confidence + ICP fit moves the lead to priority routing; low confidence moves to quarantine or nurture.

3) Deduplication & identity resolution

Nothing erodes trust faster than double-booked meetings or duplicate sales outreach. Build a tiered match:

  • Tier A (hard match): Email exact match (normalized, lowercase) OR phone E.164 match.

  • Tier B (probable match): Same domain + same first+last name OR same device fingerprint within X days.

  • Tier C (fuzzy match): Levenshtein similarity on names + same company + same region.

Merge strategy:

  • If Tier A, attach the new activity to the canonical person record and do not create a new lead.

  • If Tier B, flag for auto-merge with human-review fallback when confidence ≥ threshold (e.g., 0.85).

  • If Tier C, route to quarantine for review or low-risk nurture.

Recommended ID keys (store all):

  • email_normalized, phone_e164, domain_root, cookie_id, device_fingerprint, ip_hash, external_source_id (from partners), ga_client_id / utm_bundle.


Consent/eligibility checks

You’re not just validating can we reach them—you’re validating may we contact them and should we offer this product.

Consent validation:

  • Capture type: Explicit vs. implicit; written vs. verbal; checkbox language snapshot; timestamp+timezone.

  • Channel scope: Email consent, SMS/A2P consent (opt-in keyword or checkbox), voice consent (recording disclosure).

  • Proof artifacts: Store the rendered consent language, page path, version hash, IP, user agent, and any screenshot/snippet of the submission state.

  • Revocation & status: Respect global do-not-contact, per-channel opt-outs (STOP, UNSUBSCRIBE), and time-bounded or campaign-specific permissions.

Eligibility validation:

  • Geo & licensing: Restrict where services can be sold (e.g., state licensing for insurance, country restrictions).

  • Age gating: Minimum age checks when required.

  • Product fit: Screen out known exclusions (e.g., budget floor, tech compatibility, vertical restrictions).

  • Partner contracts: If leads arrive via affiliates, apply partner-specific compliance rules (prohibited claims, landing page checks, UTM requirements).

Disposition examples:

  • Compliant & eligible: Route to sales.

  • Compliant but ineligible: Route to alternate product/partner or to education flow.

  • Non-compliant: Block from outreach, retain for proof/logs only.


Scoring and disposition rules

Your QA gate should return a single, deterministic disposition that drives the next action. Keep it simple, auditable, and explainable.

Recommended scoring layers:

  1. Reachability (0–40): email deliverability, phone line type/active status, address mappability.

  2. Consent & eligibility (0–40): present, provable, channel-specific opt-in; geo/age/licensing fit.

  3. ICP fit (0–20): enrichment match to target persona/firmographics.

Example rubric (starting point):

  • Reachability ≥ 30 AND Consent+Eligibility ≥ 30 → Qualified

  • Reachability 20–29 OR Consent+Eligibility 20–29 → Review/Quarantine

  • Anything lower → Reject/Nurture (no sales routing)

Dispositions you can implement today:

  • ROUTE_SDR — Creates task/queue for SDR and pushes to dialer/SMS sequence allowed by consent.

  • ROUTE_AE — Calendly/meeting router if high intent (e.g., demo request) + territory.

  • NURTURE_EMAIL_ONLY — No SMS/voice; email cadence only until consent or reachability improves.

  • QUARANTINE_REVIEW — Park for human verification, auto-expire after X days if not resolved.

  • REJECT — Log for reporting; do not contact.

Channel thresholds (illustrative baselines):

  • Email: Accept when verification = “valid” or “risky-catch-all” with domain reputation OK; reject “invalid.”

  • SMS: Accept only if line type = mobile and SMS consent captured; reject landlines/VOIP without explicit consent.

  • Voice: Accept if number active; ensure applicable disclosure requirements are satisfied before calling.


Alerting & quarantine flows

Even a great ruleset needs feedback loops. Quarantine and alerts keep humans in the loop where it matters.

Quarantine design:

  • Separate datastore/table with TTL (e.g., 7–14 days).

  • Store reason codes (EMAIL_INVALID, NO_SMS_CONSENT, DUP_TIER_B, GEO_INELIGIBLE, etc.).

  • Allow one-click actions: verify, merge, route, reject.

  • Auto-recheck periodically (e.g., every 6–12 hours) for signals that can change (catch-all domains, enrichment API timeouts).

Alerting you actually need:

  • Spike alerts: Junk rate by source exceeds threshold (e.g., >15% invalid emails in last 100 leads).

  • Partner-level alerts: A single affiliate/source triggers a surge in duplicates, blocked consent, or geo ineligibility.

  • Channel health: SMS deliverability dips, email bounce rate rises, or A2P campaign errors increase.

  • Compliance hot flags: Leads missing consent artifacts for a campaign currently in outreach.

Who gets notified:

  • Ops/RevOps: Pipeline quality, dedupe merges, routing anomalies.

  • Compliance: Consent gaps, revocation handling, recording disclosures.

  • Acquisition/Media: Source quality trends and blocklist candidates.

  • Sales leadership: Clear, weekly summary of accepted vs. quarantined vs. rejected by source and reason.


Putting it together: a simple, production-ready flow

  1. Ingest: Lead hits your form/webhook.

  2. Normalize: Trim, lowercase, E.164 for phone, split names, parse address.

  3. Syntax pass: Quick regex/format checks (milliseconds).

  4. Enrich & verify: Email/phone/address checks + firmographics.

  5. Consent & eligibility: Validate artifacts, match geo/licensing, age.

  6. Deduplicate: Tiered ID match; merge or quarantine if ambiguous.

  7. Score + Disposition: Apply rubric; stamp qa_status, qa_reason, qa_score.

  8. Route: Create task or calendar link only if disposition allows it.

  9. Log & Monitor: Persist all artifacts, reason codes, and timing for audits and tuning.

  10. Feedback: Weekly tuning—adjust thresholds, update blocklists, refine ICP weights.


Implementation notes & acceptable thresholds by channel

These starting points keep you safe without crushing conversion. Tweak for your risk tolerance.

  • Email

    • Accept: valid or accept_all with domain reputation ≥ “fair”; hard bounce rate < 2%.

    • Quarantine: risky with new domains or mismatched country signals.

    • Reject: invalid, role accounts (if policy requires named contacts), or domains on blocklist.

  • SMS/A2P

    • Accept: Mobile line type, explicit SMS consent present (keyword or checkbox + language snapshot), 10DLC campaign allows content category.

    • Quarantine: Mobile but consent ambiguous; VOIP lines where policy allows with extra proof.

    • Reject: Landline without specific voice-only workflows, missing consent artifacts.

  • Voice

    • Accept: Active number, geo/territory allowed, disclosure language ready.

    • Quarantine: Carrier/line type unknown, territory mismatch requires manual check.

    • Reject: Do-Not-Call/Do-Not-Contact, revocation on file, or licensing ineligible.

  • Address/Territory

    • Accept: Validated address, mappable lat/long, territory capacity available.

    • Quarantine: Partial address that geocodes broadly; manual triage for high-value inbound.

    • Reject: Country/state not served or sanctions-restricted.


Data you must store (for audits and analytics)

  • Flags & timestamps: qa_status, qa_score, qa_reason, qa_at, consent_checked_at.

  • Source & proof: utm_*, referrer, landing_page_version, consent text hash, IP, user agent, screenshot hash or blob.

  • Identity keys: email_normalized, phone_e164, domain_root, cookie_id, device_fingerprint, external_source_id.

  • Decision trail: Rules version, thresholds, and which checks fired (for explainability).

  • Merge log: Canonical record ID, merged IDs, who/what merged, when.


Governance and tuning cadence

  • Change log: Version every rule/threshold; include who changed it and why.

  • Weekly QA review: Top quarantine reasons, junk rate by source, merges, false positives.

  • Quarterly audit: Sample proof artifacts, verify consent text/versioning, test revocation handling.

  • Training: Give sales and media teams a one-pager on dispositions and how to request tuning.


KPIs to watch

  • Sales-accepted rate (SAR): Up is good; aim for steady improvement post-QA gate.

  • Junk rate by source: Falling trend indicates better partner/channel hygiene.

  • Time-to-first-touch (qualified): Should remain fast; QA must not become a bottleneck.

  • Duplicate ratio & merge accuracy: Duplicates decrease; false merges stay near zero.

  • Compliance incidents: Should drop as proof artifacts and consent checks mature.


Next steps + checklist + CTA

Quick-start checklist:

  • Implement syntax checks for email, phone, and address with immediate pass/fail.

  • Add low-latency enrichment (email verify, phone intelligence, address validation).

  • Define Tier A/B/C dedupe logic and set up a canonical record key strategy.

  • Capture and store consent artifacts (text, timestamp, IP, UA, version).

  • Stand up a quarantine table with TTL, reason codes, and recheck jobs.

  • Ship alerting for spikes, partner anomalies, and compliance hot flags.

  • Roll out a clear disposition map and update routing automations accordingly.

  • Review KPIs weekly and tune thresholds with Sales, Ops, and Compliance.

Ready to ship a proven ruleset?
👉 Get the QA Ruleset — a plug-and-play library of validation checks, thresholds, dispositions, and alert templates you can drop into your existing forms, webhook processors, or CDP.

David Leathers is a fractional CMO and AI developer behind Dependable Consulting. He helps teams architect GoHighLevel for revenue: opinionated data models, attribution that reconciles, and automations that don’t break. His work spans demand gen, paid media economics, CRO, compliance/consent (TCPA/A2P), and partner/affiliate programs. Practical, transparent, and metrics-driven—he prefers kept appointments and payback windows over vanity stats.

David Leathers

David Leathers is a fractional CMO and AI developer behind Dependable Consulting. He helps teams architect GoHighLevel for revenue: opinionated data models, attribution that reconciles, and automations that don’t break. His work spans demand gen, paid media economics, CRO, compliance/consent (TCPA/A2P), and partner/affiliate programs. Practical, transparent, and metrics-driven—he prefers kept appointments and payback windows over vanity stats.

Back to Blog