Pre-send preflight
Pre-send preflight is the campaign-level launch check inside Campaign Builder — separate from the workspace-wide Deliverability page, though they share some of the same underlying DNS and inbox checks. It combines domain, inbox, and lead-quality signals into one verdict that gates the Start button.
On this page
The preflight strip
A persistent strip sits above the tabs in Campaign Builder, showing a live READY / WARNING / BLOCKED verdict as you configure the campaign.
Two verdict vocabularies are in play, and they mean different things: individual checks return PASS / WARNING / BLOCKED; the campaign's overall launch state is READY / WARNING / BLOCKED. A campaign can be READY overall while every underlying row still literally says PASS — READY just means no row is currently WARNING or BLOCKED.
Don't confuse either of these with the Analytics health badge (Healthy/Watch/Risk) — that's a completely separate signal computed from a campaign's actual sent-mail bounce and failure rates, not from preflight.
The full check list
Domain and workspace
MX records · SPF record · DKIM record · DMARC record · Connected inboxes · Workspace capacity · Sending domains
Inbox
Inbox connected · Daily capacity · Token health
Campaign and leads
Sequence steps · Active leads · Invalid leads · Risky contacts · List verification · Suppression list · Duplicate emails in active send pool
Protection and trial
Unsubscribe protection · Variable coverage · Trial send limit
Sequence health
Repeated pitch detection · Spintax variant similarity
Severity isn't symmetric: missing MX, SPF, or DMARC, an unavailable inbox, no active leads, invalid or suppressed leads, and duplicate emails in the send pool can all block launch outright. A missing DKIM record, risky contacts, and unverified contacts only warn — unless a campaign's send policy is set to skip risky or unverified contacts, in which case those specific checks resolve to a pass instead, since the affected contacts will simply be excluded from sending. Both Sequence health checks only ever warn, never block — see Sequence health checks below.
Sequence health checks
Two checks look at the sequence's own content for problems no domain or lead-quality signal would catch — genuine semantic similarity, not simple word-matching, computed fresh every time preflight runs rather than on a schedule.
Step 2 and Step 4 open with a very similar pitch (91% similar, 9 real day(s) apart).
Spintax variants provide adequate real variation.
Repeated pitch detection compares every pair of steps' bodies for how similar their core pitch reads, using real embedding similarity rather than shared keywords. The bar for what counts as "too similar" isn't fixed — it slides based on the real elapsed time between the two steps: two steps sent close together are allowed to read fairly similar (a quick bump reads as deliberate, not an oversight), while two steps sent a week or more apart are held to a much stricter bar, since repeating the same pitch after real time has passed is a bigger problem than repeating it the next day.
Spintax variant similarity compares the sibling options inside the same spintax block — e.g. the two options inside {{Hi|Hey}} — and flags a pair that reads as too similar to provide real variation, such as a synonym swap that doesn't actually change the sentence. Only options inside the same block are ever compared against each other.
Both checks state plainly, rather than showing a false result, whenever they weren't actually run: "Not applicable" when a campaign doesn't yet have enough real step content to compare (fewer than 2 steps with body content, and no spintax blocks with 2 or more options), and "Not checked" if no embedding provider is configured on this instance, or if the embedding request itself failed — Re-check tries again. Both are advisory only: an unresolved finding from either check never blocks Start, the same way Variable coverage only warns.
Sender-pool-aware evaluation
Preflight is scoped to whichever sender pool the campaign is actually using — Automatic evaluates every connected workspace inbox; a Selected pool evaluates only the chosen inboxes. Switching modes changes the connected-inbox count, the available capacity, and which specific inboxes get checked.
That reservation warning reflects real send capacity your other active campaigns have already claimed on the same inbox today, giving you an early heads-up that sending may run slower than the raw capacity numbers suggest.
The preflight drawer
Clicking View checks opens a drawer grouping every check into Needs action (blockers), Warnings, and Passed checks, with a Re-check action and fix guidance per issue.
Fix issues before sending
1 blocker · 1 warning
2 active leads are on the suppression list and will not receive emails.
Remove from active send pool →3 active leads are marked risky.
Fix links route you to the relevant part of the app: Sequence for step or unsubscribe-language issues, Leads for missing active leads, Lists for invalid leads or verification, Inboxes for connection/capacity/token/domain issues, and Deliverability for MX/SPF/DKIM/DMARC issues.
Cleanup actions
For Invalid leads and Suppression list blockers, the drawer offers Remove from active send pool.
This doesn't delete anyone from the campaign — matching leads are set to PAUSED within that campaign, which excludes them from preflight and from any future job creation. Nothing is removed from your contact list or the campaign's enrollment history.
Launch review and enforcement
Clicking Start doesn't enqueue jobs immediately — it opens Review before launch, summarizing Schedule, Capacity Forecast, Lead Quality, Sender Mode, and the guardrail state together.
Review before launch
Confirm schedule, sender capacity, and guardrails before ForgeSend creates send jobs.
Lead quality
227 active · 7 risky · 11 unverified
Sender mode
Selected pool — 2 inboxes
BLOCKED removes the ability to start at all; WARNING shows Start campaign anyway; READY shows a plain Start campaign. Preflight is re-enforced on the backend whenever a campaign actually starts or resumes — reopening the browser tab doesn't bypass it.
This same check is what Launch Guardian runs when you ask the AI Account Analyst to get a campaign launch-ready — it auto-fixes what's safe (sender pool, suppressed leads, risky-lead re-verification) and explains everything else, previewed and confirmed the same way as any other guided action.
Where to go next
Next: Settings overview