Sending is the least interesting part of this system and it is built to stay that way. It exists to deliver approved messages at a human pace, from your own mailboxes, inside hours the recipient would consider normal, and to route what comes back.
The send loop#
Eligibility check
Immediately before send, the message is re-checked: the account is still qualified, the window is still open, no reply has arrived, no suppression applies, the mailbox is healthy. Any failure drops the message rather than delaying it.
Slot selection
The next slot inside the recipient’s send window is chosen, with jitter. Messages are not sent on the minute, in batches, or at an even cadence, because none of those look like a person sending mail.
Mailbox selection
A mailbox is chosen from those assigned to the campaign, weighted by remaining daily capacity and current health. A domain that has already been contacted from one mailbox keeps that mailbox for continuity.
Delivery
Handed to your mailbox over SMTP. Nothing is rewritten on the way out: no tracking pixel, no link wrapping, no injected footer beyond the unsubscribe mechanism the law requires where it applies.
Outcome capture
Delivery result, bounce class, reply and classification are recorded against the account and fed back into the learning loop.
Send windows#
A send window is defined in the recipient’s local time, resolved from the account record, not in yours and not in the browser’s. This matters more than it sounds: a window set in your own timezone will happily deliver at three in the morning to somebody four zones away.
- Default hours
- 08:00 – 17:00 recipient-local
- Default days
- Monday – Friday
- Excluded
- Saturday, Sunday, and recognised public holidays in the account's region
- Jitter
- randomised within the slot, never a fixed cadence
- Timezone source
- account region, falling back to the ICP's default region
Windows can be tightened per ICP — a market where nobody reads mail before nine, a region where Friday afternoon is dead. They cannot be widened past the safety bounds, which exclude nights entirely.
Throttles and caps#
Caps are per mailbox, not per campaign, because reputation is a property of the mailbox and the domain. Several campaigns sharing a mailbox share its capacity.
| Limit | Default | Notes |
|---|---|---|
| New messages per mailbox per day | 50 | Excludes replies and warmup traffic |
| Total sends per mailbox per day | 80 | Including replies to inbound |
| Minimum gap between sends from one mailbox | 90 seconds, jittered | Never a fixed interval |
| Messages per recipient domain per day | 3 | Prevents contacting five people at one company on one morning |
| Concurrent campaigns per mailbox | 3 | Above this, capacity fragments and pacing degrades |
| New mailbox ramp | See deliverability | A new mailbox does not start at its cap |
When capacity runs out, messages wait for the next day’s window rather than being squeezed into the end of today’s. If a campaign is persistently capacity-starved the console says so, and the fix is another mailbox, not a higher cap.
Reply detection and routing#
Replies are read from the connected mailbox, matched to the account and thread, classified, and routed. Classification is the part that matters, because a reply count is a vanity number and a classified reply is an instruction.
| Classification | Sequence | Routed to |
|---|---|---|
| Interested | Stopped | Owner, immediately; deal created if a CRM is connected |
| Not now | Stopped | Held with a revisit date parsed from the reply where stated |
| Wrong person | Stopped | Owner, with the named alternative contact if one was given |
| Not interested | Stopped, account suppressed | Recorded as a negative outcome against the ICP |
| Out of office | Paused until the stated return date | Nobody — the sequence resumes on its own |
| Auto-reply, other | Unchanged | Nobody |
| Bounce | Stopped | Suppression list; see below |
Out-of-office handling is worth a sentence: the return date is parsed where the message states one, and the sequence resumes after it. Treating an out-of-office as a reply stops sequences that should have continued; treating it as nothing sends the follow-up into an empty inbox.
Bounces and suppression#
| Event | Effect on the address | Effect on the domain |
|---|---|---|
| Hard bounce | Suppressed permanently | Counted toward the campaign bounce threshold |
| Soft bounce, first | Retried once after 24h | None |
| Soft bounce, repeated | Suppressed | Counted |
| Spam complaint | Suppressed permanently | Domain suppressed; all campaigns halt for that domain |
| Unsubscribe | Suppressed permanently | Domain-wide suppression is offered and defaults to on |
Suppression is workspace-wide and permanent by default. It survives campaign deletion, list changes and re-qualification: an address that asked not to be contacted stays uncontacted even if the account re-qualifies at A tier six months later.
The learning loop#
Outcomes return to the parts of the system that produced them, and each outcome is charged to a specific component rather than to a general quality score.
- Wrong-person replies are charged to reachability and to the contact model, not to the copy. The message may have been perfect and sent to the wrong desk.
- Not-interested replies are charged to the ICP. A cluster of them from one sector is evidence the shape is wrong.
- Not-now replies with a date become window estimates, and they are the most accurate estimates in the system because a human supplied them.
- Bounces are charged to contact-data quality and surface as a
limited_by: reachabilitypattern in scoring. - Silence is charged to almost nothing. No reply is weak information, and treating it as strong is how systems talk themselves into changes that were noise.
{
"id": "OUT-5512",
"message_id": "MSG-90144",
"account_id": "ACC-19022",
"kind": "reply",
"classification": "not_now",
"revisit_at": "2026-10-01",
"charged_to": ["window_estimate"],
"not_charged_to": ["copy", "icp"],
"recorded_at": "2026-08-06T14:41:02Z"
}Read deliverability next. It covers the settings that decide whether any of this reaches an inbox, including the one default most people want to change and should not.