Campaigns
Pick an audience, write the email, schedule it, and then find out what happened afterwards.
Composing runs through four steps — Compose, Audience, Schedule, Review and Send — and the gate on each one is whether it is genuinely complete, not whether you clicked past it. Problems surface on the step that owns them, and every item on the review list is a button that jumps to the step and puts the cursor in the offending field. Reopening a saved draft unlocks every step so you can move around freely; the validation still runs before you send.
Pressing New campaign creates the draft immediately and drops you into the editor rather than asking you to name it first, and the name follows the subject line as you type until you edit it yourself. Write in the Topol editor or in raw HTML. The preview is a live render of the campaign rather than a cached screenshot, which matters because a stored thumbnail is only ever as current as the last time something regenerated it.
The From field is a local part plus a dropdown of your verified domains, which kills the most common way to build a campaign that cannot physically send. Test sends go through the real sending path on your own subaccount, with tracking off so they never pollute the campaign's numbers, and are capped at ten an hour.
Scheduling now actually schedules. A scheduled campaign is held until its moment arrives, and can be pulled back to draft before then. The time you pick is the time that is stored.
The results page leads with the numbers. Unique opens and clicks per recipient are the figures shown: one person opening an email twenty times and twenty people opening it once are not the same event, and a dashboard that reports them identically will eventually talk somebody into a decision they cannot defend. Every rate is measured against a fixed base of total recipients, with a tooltip saying so, because a moving denominator makes two campaigns impossible to compare. The stat tiles double as filters — clicking Bounced gets you the bounced recipients with the full bounce reason, not one truncated just before the part that tells you anything.
The page polls while a campaign prepares and sends, and keeps polling after it is sent, because provider events lag and an empty activity table looks exactly like a failed send. A banner says it is waiting rather than leaving you to guess.
Per-recipient event history runs 30 days. Four weeks after a send, a job archives that campaign's events to storage just before they expire, and you can ask for the archive from the campaign page and get a link by email. The activity view knows the difference between “nothing has happened yet” and “this is older than the history window”, and offers you the archive in the second case.
Select two or more campaigns and open the comparison sheet: campaigns as rows, metrics as columns, best and worst marked per metric. We built it the other way round first. It was worse, and transposing it cost almost nothing once we stopped defending the original decision. Bulk delete and duplicate work from the same selection.
Campaigns