Running campaign counts, and Send to latest

FeatureEmailService
Shipped
September 12, 2026 at 11:35 PM UTC
Author
Kamo
Commit
4125272

Counts: - Every status change moves a campaign's counts by exactly what it changed: a send +1 sent, a later bounce report -1 sent +1 bounced, an add +n, a removal by what its DELETE returned. Nothing counts the list on the way; before, every send recounted every status of the campaign. - Queued is derived from the total. Cancelled is a Redis counter, rebuilt from the rows if it is lost. Each finished run recounts once, which puts right anything a running count missed. - Completion, "can it send" and the audience top-up ask whether a row exists, or count to a cap, instead of counting the list. Send to latest: - Recipients can be added, and the All boxes changed, in any status (PUT /campaigns/{id}/audience). - POST /campaigns/{id}/send-latest sends a campaign that has gone out to whoever it should reach and has not yet. That is the addresses added since, and the records its All boxes reach that were added since: every source is walked again, and addresses already on the list are skipped. - The late suppression and the preference page's pull from a waiting send count only a row that actually moved.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing