What you’ll build
A sending domain, one mailbox on it, warm-up running, and a play that sends from that mailbox as new contacts land.Step-by-step
Step 1: Register a domain
- Open Settings → Domains
- Buy a sending domain, or bind one the workspace already owns
- Wait until its status is active — a new registration sits at pending while the registrar provisions it
- Confirm MX and SPF are in place if you are not letting Cargo publish the zone
defineDomain manages from code, and the same mailbox is what defineMailbox declares. The create-mailbox form only lists active domains.
Step 2: Create a mailbox
- Open Send → Mailboxes and click New mailbox
- Pick the domain, a type (Google, shared, or private), and the local part of the address
- Fill in first and last name (the From display name) and an optional signature
- Optionally file it in a mailbox folder
Step 3: Start warm-up
On the mailbox Overview:- The Warm-up card reads “Warm-up is off” until you start it
- Click Start — that both turns on Mailpool’s dummy-mail pool and starts Cargo’s 45-day send ramp
- Pause / resume from the same card; Stop tears the pool down and resets the ramp to 5/day
Step 4: Read send allowance
The Send allowance card is what the pacer actually uses:- Daily limit — the ramp right now (5 → 40 over 45 days)
- Sent — successful deliveries in the last rolling 24 hours
- Left — headroom in that window
sendEmail nodes wait for a send to age out of the window. A send-email span that sits pending for hours is that wait. See Sending.
Step 5: Add a Send email node to a play
- Open (or create) a play on the contacts model
- Add a Send email node from the palette (Sales)
- Pick the mailbox, map To / Subject / Body from the record
- For a reply, set In reply to and References so the thread stays together
- Connect it downstream of whatever enriches or drafts the body
sendEmail action sendEmail() emits in code. Re-deploying a changed CDK play overwrites canvas edits on that play — see Code and UI round-trips.
Step 6: Watch the thread
- Workspace Emails lists every thread across mailboxes
- A mailbox’s Emails tab lists that inbox’s threads
- Open a thread for the outbound copy, then opens, clicks, replies, and unsubscribes as they arrive
Next steps
Overview
Domains, mailbox types, folders, and the API.
Sending
sendEmail(), the warm-up ramp, and per-mailbox pacing.
Build a play
Run sendEmail on each new row of a model.
Workflows
The TypeScript DSL sendEmail() lives in.

