The gate that runs before you send

Know who’s safe to contactbefore you wake your database.

Every “AI reactivation” tool blasts your dormant list and optimizes for volume. The expensive part isn’t the message — it’s the contacts you weren’t allowed to text, at up to $1,500 each under the TCPA.

This runs first. It scores every dormant contact CONTACT, REPERMISSION FIRST, or SUPPRESS, and gates the whole list GO / FIX / HOLD — from each contact’s own consent and risk fields, not a guess.

Get the Engine — $99one-time · runs on a CSV from your CRM · 30-day refund
Three verdicts · One list gate
CONTACT
Safe to send
REPERMISSION FIRST
Re-consent first
SUPPRESS
Hard stop
Works alongside
GoHighLevel · Salesforce · HubSpot · any CRM export · your send-tools
01.The Problem

The cheapest pipeline you own is the easiest to torch.

Dormant lists carry the stalest consent in your CRM — and the AI send-engines on the market point at the whole list and start messaging. That’s backwards. TCPA statutory damages run $500 per message, up to $1,500 for willful violations, uncapped and under strict liability. A single 1,000-contact campaign sent to the wrong people can reach six or seven figures.

And consent doesn’t age gracefully: a number gets reassigned to someone new, a contact replied STOP two years ago, an old opt-in was implied rather than written. None of it shows when you point a send-tool at a list — all of it is a violation waiting to happen.

$500–$1,500

Per-message TCPA statutory damages — $500 standard, up to $1,500 for willful/knowing, uncapped and strict-liability. The expensive part of reactivation isn't the send; it's the contacts you weren't cleared to reach.

Stalest consent

A dormant list is, by definition, the oldest consent you hold. Reassigned numbers, prior opt-outs, and implied-not-written permission accumulate in exactly the segment everyone is most eager to blast.

Backwards by default

Every send-engine optimizes for volume and starts messaging. None of them ask 'should you send at all?' first. That question — who NOT to contact — is the whole gap this fills.

02.Try It Live

Score a sample dormant list right here.

This is the same logic that ships in the Python tool and the workbook — running in your browser on a 15-row sample. Tap any contact for the reason; toggle the risk chips to see a verdict flip. Nothing is sent and nothing is stored.

List GateGO15 contacts evaluated

40% contact-safe with 73% documented consent — cleared to send the CONTACT segment. Exclude the 4 suppressed; route the 5 to re-permission.

6
CONTACT
40% of list
5
REPERMISSION FIRST
33% of list
4
SUPPRESS
27% of list

Documented-consent rate 73% · tap a row for why · toggle the chips to test a verdict

Verdicts are computed from each contact’s own fields — no baked-in lift estimate. A hard stop (opt-out, reassigned number, hard bounce, DNC) always wins. This reduces risk; it is not legal advice.

03.The Tool in Action

The tool actually runs. Here’s real output.

This is the included reactivation_readiness.py run against the 15-row sample list — not a screenshot of a promise. The gate clears (GO), but the “good” list still hides four hard suppressions and five contacts that need re-permission. It named every one.

database-reactivation-readiness/reactivation_readiness.py
stdlib · no install · no API key
$ python3 reactivation_readiness.py seed_contacts.csv --as-of=2026-06-17

================================================================
  DATABASE REACTIVATION READINESS  —  LIST GATE: GO
================================================================
  • 40% contact-safe with 73% documented consent — cleared to send the
    CONTACT segment. Exclude the 4 suppressed and route the 5 to re-permission.

  Evaluated 15 contacts:
    CONTACT                 6   (40%)
    REPERMISSION_FIRST      5   (33%)
    SUPPRESS                4   (27%)
    documented consent  73%

  Per-contact verdicts:
    row   2  C-1002            sms     REPERMISSION_FIRST
           ↳ Express consent is 53 mo old (> 24 mo floor) — re-confirm before sending.
    row   4  C-1004            sms     SUPPRESS  [HARD]
           ↳ Prior opt-out on record (STOP/unsubscribe) — re-contact is prohibited.
    row   5  C-1005            sms     SUPPRESS  [HARD]
           ↳ Phone number flagged reassigned — consent does not follow the number.
    row   6  C-1006            email   SUPPRESS  [HARD]
           ↳ Email hard-bounced — address is dead; sending damages sender reputation.
    row   7  C-1007            voice   REPERMISSION_FIRST
           ↳ No documented consent for this channel — re-permission before any send.
    row  10  C-1010            sms     SUPPRESS  [HARD]
           ↳ Matches Do-Not-Contact / DNC list — hard suppress.
    row   1  C-1001            sms     CONTACT
           ↳ Documented, fresh, express-written consent for this channel — safe to contact.
    (…9 more rows; full report prints all 15)
$ echo $?
0

Reads a CSV exported from your CRM, evaluates as of today by default (the example pins --as-of so it reproduces the workbook), and prints a per-contact verdict plus the list gate. --json mode for tooling. The tool, the workbook, and the demo above share one logic and are verified to agree.

04.The Standard

The honesty spine: missing proof is never “safe.”

Verdicts are deterministic and come only from each contact’s own fields — there is no baked-in lift or conversion multiplier anywhere in the logic. Three rules hold the line:

01

Hard stops win, always

A prior opt-out, a DNC match, a reassigned number (SMS/voice), or a hard bounce (email) forces SUPPRESS — evaluated before consent and never downgraded to a warning, no matter how strong the rest of the record looks.

02

Unproven ≠ safe

Missing or unverifiable data is treated as 'unproven', never as 'safe'. No consent record, an undated opt-in, or implied-not-written consent routes to REPERMISSION FIRST — you re-earn permission rather than assume it.

03

The gate isn't an average

A list can be majority contact-safe and still HOLD: documented consent under 50%, or suppression over 35%, fails the gate. 'Looks contactable' and 'can be proven contactable' are different things — only the second defends you.

The 24-month consent-freshness floor is a deliberate conservative default, not a fixed legal standard — it’s tunable in the config, and the included compliance reference documents the reasoning. This reduces legal and deliverability risk; it is not legal advice. Confirm the obligations for your industry and states with qualified counsel.

05.Gate, Don't Send

It’s the gate, not the sender — and that’s the point.

The whole reactivation category sells the send. This sells the “should you send at all.” It doesn’t compete with your GHL send-tools — it hands them a clean, defensible segment to work.

AI send-engines
Optimize the send
  • ·Point at the whole dormant list and start messaging
  • ·Optimize for volume and reply rate
  • ·Assume the list is safe to contact
  • ·The penalty for being wrong is per-message
Readiness Engine
Gate the list first
  • ·Scores every contact and gates the list before any send
  • ·Decides who NOT to contact, by name
  • ·Treats unproven consent as unproven, never safe
  • ·Hands a clean CONTACT segment to your send-tools
Gate → repair → send → learn
1 · Gate

Run your dormant export through the Engine. Every contact and the whole list get a verdict. You do nothing until the gate clears.

2 · Repair

Send a single compliant opt-in to the REPERMISSION segment. Re-opt-ins become CONTACT on the next run.

3 · Send

Hand the clean CONTACT segment to your GHL send-tools. This System is the gate, not the sender.

4 · Learn

Fold new opt-outs and bounces back into your data and re-gate. The suppression list compounds, so each wave is safer.

06.What This Is — And Isn't

Clear about the lane. No inflated promises.

What's in
  • A zero-dependency, keyless reactivation_readiness.py — CONTACT / REPERMISSION FIRST / SUPPRESS per contact, plus the GO / FIX / HOLD list gate, with JSON mode and a tunable --as-of date.
  • An interactive workbook (Start Here → Dashboard → Readiness Calculator) whose live formulas reproduce the tool exactly.
  • Two playbooks: the reactivation runbook (gate → repair → send → learn) and the consent & compliance reference behind every verdict.
  • A config.json of policy thresholds shared by the tool, workbook, and demo, plus a 15-row sample list that exercises every verdict path.
What's out
  • Not a send-tool — it gates the list; it doesn't message anyone. Hand the CONTACT segment to your GHL send-tools.
  • No baked-in lift — there is no conversion or 'expected recovery' multiplier anywhere in the verdict logic.
  • No invented safety — missing or unverifiable consent is flagged as unproven, never assumed safe.
  • Not legal advice — it reduces TCPA/CTIA/CAN-SPAM and deliverability risk; it doesn't eliminate it. Confirm your obligations with counsel.
  • No SaaS, no monthly fee, no telemetry — your contact data never leaves your environment.
07.Who It's For

Anyone sitting on a dormant list they mean to “wake up.”

Agencies running reactivation

If you run database-reactivation campaigns for clients, the gate is your liability shield — you send only what you can defend, and you can show the client why a contact was held.

SMBs with an old lead list

Years of leads, quotes, and past customers sit in the CRM. The Engine turns that pile into a clean CONTACT segment and a re-permission list, without betting your sender reputation on a guess.

GHL operators & send-tool users

You already have the send-tools. This is the missing step in front of them — gate the list, then activate the clean segment inside GoHighLevel.

08.Common Questions

The questions operators actually ask before they hit send.

It reads a CRM export of your dormant leads and returns one of three verdicts for every contact — CONTACT (safe to send), REPERMISSION FIRST (re-consent before sending), or SUPPRESS (hard stop) — plus a single GO / FIX / HOLD gate for the whole list. It runs before any outreach, so you send only to the contacts you can prove you're allowed to reach.

Gate first · $99 · one-time

Stop blasting. Start gating.

Reactivate the database without betting your sender reputation or your legal exposure on a list you never checked. Run the gate, repair the re-permission segment, and send only to the contacts you can prove you’re allowed to reach. Thirty-day refund either way.

Reduces legal & deliverability risk; not legal advice. Confirm your obligations with qualified counsel.

Sold by RedHub AI LLC · Secured by Stripe · redhub.ai