Early access — pilot stage · sample data / no live messaging yet · pilot enquiry form not yet connected to intake — nothing is sent

Guide · Campaigns

Campaign preflight: what must be true before you press start.

A safe campaign is not one that feels ready — it is one that passes specific checks. ConvoTide’s preflight blocks ineligible sends before a single message leaves, and this guide lists every check, what each platform refusal means, and the two things the preflight cannot judge for you.

The preflight, item by item

  1. Audience and consent. Recipients come from contacts who opted in on the campaign’s channel. The enqueue for each recipient is consent-gated — an un-opted-in contact is refused, not sent to — and re-adding an existing recipient is absorbed idempotently, so re-running an import never double-sends.
  2. Template state. The campaign names an approved template. Draft templates are invisible to campaigns by design; retired ones cannot be resurrected.
  3. Lifecycle position. A campaign moves draft → scheduled → sending, and it must be scheduled before it can start. Trying to enqueue recipients or start a campaign in the wrong state is refused with a state error — the state machine, not a hopeful button, decides what may happen.
  4. Quiet hours and frequency caps. Sends respect configured quiet hours, and frequency caps stop the same contact being messaged into resentment. Both are checked before the send, which is the only moment checking them helps.
  5. Cost estimate, labelled as an estimate. Where an estimate exists, the cost preview shows it; where none exists, the preview says so plainly. Meta bills you directly for message charges — the platform never invents a rupee figure to make a screen look complete, and estimates are never mixed with actuals in reports.
  6. Idempotency keys. Every recipient enqueue and every API send carries a stable key. Retries, refreshes and double-clicks converge on the same outcome instead of stacking duplicates.

What each refusal means

Refusals are the preflight working, shown in plain language on the screen where you acted:

  • Consent required — that contact has not opted in on this channel. Fix the audience or the consent record; never route around it.
  • Campaign not active — the action needs the campaign to be in a sendable state (scheduled or sending). Move the campaign to the right state first.
  • Already enqueued — not an error: the same idempotency key was seen before, and the first enqueue stands. You are looking at idempotency succeeding.
  • Transition refused — the state move is illegal (start from draft, restart a finished campaign). The current state and legal moves are shown with the refusal.

The human half of preflight

One check has no flag: a named person who can pause. Before any campaign starts, know who that is. Campaigns can be paused, resumed or cancelled while sending, and stopping takes seconds — but only if someone is accountable for deciding to.

What preflight cannot judge

Two things remain yours. First, content quality: preflight proves the template is approved and the audience is opted in — it cannot tell you the message is worth reading. Second, deliverability: how Meta treats your traffic depends on your quality history, which is earned, not configured. Read the results guide after each send — that feedback loop is the real deliverability strategy.

Content reviewed October 2026 · owner: Zcode (implementation) · independent factual review: Codex QC, pending.