Verify Before You Send
Outcome: a sending list containing only verified addresses, a catch-all routing decision, and a pre-send checklist you run every time.
- Surface
- App and MCP server
- Level
- Intermediate
- Uses
verify_email- Credits
- ~0.3 per row
- Prerequisite
- Lesson 05's found addresses
What is actually at risk
Not the campaign. The sending domain.
| Bounce rate | Consequence |
|---|---|
| Under 2% | Healthy |
| 2–5% | Providers start throttling and filtering |
| Above 5% | Real reputation damage; recovery takes weeks |
| Above 10% | Domain effectively unusable for cold outreach |
A verified list lands under 2%. An unverified one lands between 8% and 30% depending on segment. During the recovery period every campaign you run underperforms for reasons that look like copy, which is what makes this failure so expensive to diagnose.
The statuses
| Status | Send? |
|---|---|
| Valid | Yes |
| Invalid | Never |
| Catch-all | Separate domain, or drop |
| Unknown | Treat as catch-all |
| Disposable | Never |
Role (info@, sales@) | Segment-dependent |
Only valid counts as contactable in every number you report.
Reference: Verify email, verify_email.
Catch-alls in an outbound context
A catch-all domain accepts mail to any address, so verification cannot confirm the specific mailbox. These skew toward larger organizations, so dropping them removes a slice of your best accounts.
The sensible pattern for outbound specifically:
Route them to a secondary sending domain
Not your primary. The whole point is that a bad bucket cannot damage the good one.
Send lower volume
Slower ramp, smaller batches.
Measure the actual bounce rate for that bucket
After a few hundred sends you will know whether your catch-alls are mostly real. Many are.
Then decide
Promote the bucket, keep it separate, or drop it — on evidence rather than on caution.
Never mix catch-alls into your primary sending domain to “see what happens”. The experiment is not reversible: a few hundred bounces is enough to register with the major providers, and the domain carries that history forward for weeks.
Suppression is part of this step
Verification tells you an address works. Suppression tells you whether you should use it.
Check before every send:
- Current customers, unless the play is expansion
- Open opportunities owned by someone else
- Anyone contacted in the last 30 days by any campaign
- Unsubscribes and hard bounces — permanent
- Competitors, partners, investors, your own domain
- Manually disqualified accounts
Suppression runs at the send boundary, not at sourcing. Suppressing early hides accounts from your own market-size reporting.
The pre-send checklist
Run it every time, not just on the first campaign.
- Every row has a
validstatus - Catch-alls are on the secondary domain or excluded
- Suppression applied against all six categories
- No duplicate people across the batch
- Names properly cased —
JOHN SMITHin a greeting is a tell - Company names cleaned for use mid-sentence
- Every personalization variable is populated on every row
- Rows without evidence are excluded, not sent a generic line
- Sending domain warmed and within its daily limit
Do this now
Verify every found address
The whole column.
Count statuses and record the distribution
Set up the secondary domain
If you are keeping catch-alls.
Build the suppression check
All six categories, as a filter on the export view.
Recompute your contactable count
Valid only, after suppression. This is the real campaign size.
Run the checklist
Every item.
Export five rows first
Read them in the sequencer before the full push.
Check your work
- Every sending row is
valid - Catch-alls are isolated or excluded
- All six suppression categories are checked
- Every personalization variable is populated
- You read five rows in the destination before the full export
Where this breaks
Sending to a customer or to an account in someone else’s open deal is the failure that costs a relationship rather than a credit, and it happens because suppression was checked once during setup and never again. Lists change, deals open, customers sign. Make suppression a filter on the export view, not a step someone remembers.
Further automation
Pull bounce and unsubscribe data back from the sequencer into the table automatically. Without that loop, the same dead address gets re-imported from a different source next quarter and bounces again — and your suppression list only ever covers what someone manually copied over.
Next lesson
07 — Research a reason to reach out, the personalization half of the course.
Reference for this lesson: Verify email, verify_email, Outreach integrations, Waterfall Enrichment.