Scheduling
Send a campaign now, at a set time, or spread it out over days at a steady rate.
A campaign goes out in one of three ways: right away, at a date and time you pick, or gradually — a limited number per day, released steadily inside its sending window. Whichever you choose, a sending window can keep the send inside the days and hours you allow.
Send now
Send now queues every recipient as soon as you confirm. The campaign shows as Sending while deliveries leave and Sent once the last one is queued; delivery confirmations keep arriving after that. If the campaign has a sending window and it is closed at that moment, the campaign is scheduled for the window's next opening instead — the confirmation says so, and the campaign shows as Scheduled.
Schedule
Schedule takes a date and time at least five minutes ahead. The campaign shows as Scheduled and can be cancelled from its page until then, which returns it to a draft. At the scheduled time it runs the same readiness checks as an immediate send; if one fails, the campaign is returned to draft and the workspace is notified with the reason. A scheduled time that falls outside the campaign's sending window is moved to the window's next opening, and the Review step and the confirmation show the moved time.
Sending window
A campaign's sending window is the days of the week, the hours, and the timezone in which its mail may leave. Set it in the Delivery step under Window: Any time (the default when the workspace has no default window) or Only during the days and hours you pick. The window has to end after it starts on the same day; it is evaluated in its own timezone, not each recipient's.
- A send-at-once campaign that would leave outside the window waits for the next opening.
- A gradual send spreads its per-day rate over the window's hours (see below).
- The send job checks the window again when it fires, so a window edited after scheduling still holds.
Workspace default
Under Settings → Usage & Limits → Sending rules, owners and admins can set a default sending window. It is copied onto every new campaign draft — including drafts created over the API and "resend to non-openers" follow-ups — where it stays editable or can be removed. Changing the default later does not move campaigns that already exist. Journeys keep their own quiet hours.
Send at local time
Turn on Local-time delivery under Settings → Features, then choose At local time under Pace in the Delivery step. Two settings:
- Local time — the wall-clock time (
HH:mm) every recipient gets the campaign at, on their own clock. - Fallback timezone — used for contacts that have no timezone of their own.
A recipient's clock is their timezone contact property, an IANA zone name such as Europe/Amsterdam. The slug is reserved: whichever way it is first written — the contact API, a CSV import, or a journey's Update contact step — the property is created with the Timezone type and every value is validated as a real zone. Contacts without one use the fallback.
When the campaign starts, every recipient's delivery is written with the instant their clock next reaches the chosen time (a recipient whose local time has already passed today gets tomorrow's), and deliveries leave as those instants come. A send spreads over up to 26 hours; the campaign stays Sending meanwhile, can be paused and resumed like a gradual send, and its page shows the release schedule — one line per timezone, with how much of each has left. Local-time delivery cannot be combined with a sending window, gradual sending or an A/B test: each of those decides the send instant a different way.
Send gradually
Turn on Gradually under Pace in the Delivery step to spread a campaign over days. Two settings:
- Per day — the most that goes out on one sending day. It has to be at or under your workspace's daily sending limit.
- The campaign's sending window — a gradual send needs one; choosing Gradually turns it on with weekday office hours if it was off.
Sending is paced at a steady rate through the window rather than all at the start: a limit of 480 across a nine-to-five window means roughly one every minute. A send that starts partway through the window continues at that rate for the rest of the day; it does not catch up on the hours it missed. The Delivery step estimates how many sending days the campaign needs and when the last batch lands.
It combines with Schedule — the fan-out runs at the scheduled time, and gradual release starts from there — but not with an A/B test, whose test cohort has to go out at once.
While a gradual send is running, the campaign page shows its pace and progress and offers Pause sending. A paused campaign releases nothing more until you Resume sending; what was already queued still goes out. The rate and the window can be changed while the campaign is sending, and take effect within a minute. Gradual sending and its window cannot be switched off mid-send — pause it, or let it finish.
Typical uses: keeping replies at a pace your team can answer, and warming up a new sending domain instead of sending its first large campaign in one burst.
Via the API
sendWindow on a campaign carries the window (null for any time; omit it on create to take the workspace default), and pacing the per-day limit (null switches gradual sending off).
{
"sendWindow": {
"days": [1, 2, 3, 4, 5],
"start": "09:00",
"end": "17:00",
"timezone": "Europe/Amsterdam"
},
"pacing": { "perDay": 250 }
}localTime on a campaign switches on local-time delivery (null switches it off):
{ "localTime": { "time": "09:00", "fallbackTimezone": "Europe/Amsterdam" } }GET /campaign/:id/release-schedule lists a local-time campaign's due instants with total and released per instant.
days are 0–6 with Sunday as 0. POST /campaign/:id/send answers with effectiveSendAt — the instant the campaign goes out when it was queued for later — and shiftedBySendWindow: true when that instant is the window's next opening rather than what was asked for. POST /campaign/:id/pause and POST /campaign/:id/resume control a running gradual send. The workspace default is sendWindow on GET/PUT /public/workspace.