ForgeSendDocs

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.

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.

Preflight strip — read only
BLOCKEDCampaign blocked — fix issues before sendingView checks
Start blocked by: Suppression list + 1 more.

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

Check groups — read only

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.

Sequence health — read only
Repeated pitch detectionWARNING

Step 2 and Step 4 open with a very similar pitch (91% similar, 9 real day(s) apart).

Spintax variant similarityPASS

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.

Sender pool warning — read only
ModeSelected pool — 2 inboxes
Inboxes1 send-ready · 1 needs reconnect
Selected inboxes already have sends reserved by other active campaigns today. This campaign may send slower than expected.

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.

Preflight drawer — read only

Fix issues before sending

1 blocker · 1 warning

Re-check
Needs action
Suppression listBLOCKED

2 active leads are on the suppression list and will not receive emails.

Remove from active send pool →
Warnings
Risky contactsWARNING

3 active leads are marked risky.

Passed checks
Connected inboxesPASS
Unsubscribe protectionPASS

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 — read only

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

CancelStart campaign anyway

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