A blast is one message per recipient, rendered from a layout and addressed to a contact group. There is no scheduling, no pause and no undo: pressing Confirm hands the whole thing to a queue, and the next surface you see is a row in a report. That makes the shape of the composer worth learning before you use it rather than after.
Where the composer is
The composer is the New Email tab of the Email Marketing screen at /emails. That screen has four tabs — New Email, All Contacts, Groups and Sent Emails — and is reachable only by typing the URL: it is not in the tab rail, and it stays alive until a redesigned tab replaces it. Legacy URLs that still work lists it and its siblings.
Two of the other three tabs are documented elsewhere, because their content belongs to Engage rather than to email: browsing and importing contacts is contacts and importing contacts, and the Groups tab is contact groups and audiences. The fourth, Sent Emails, is the second half of this page.
Composing
The four fields
- Email Name — defaults to
Email Blastplus a timestamp. Recipients never see it; it is the label this send carries in Sent Emails forever, so replace the default with something you will recognize in six months. - Recipient Group — the contact group to send to. The dropdown lists groups and nothing else, and is disabled outright when the workspace has none. Pick one and the Recipient Preview appears on the right, listing the resolved members with pagination so you can page through the actual audience rather than trusting a count.
- Email Template — the email layout supplying the subject and the HTML body. Also disabled when there are none.
- Page (optional) — a published page to feature. It populates the layout’s
pagevariable, so it does something only if the layout uses it; leave it empty and a layout that referencespagerenders that block empty.
Send a test to yourself
Send a test to yourself is available as soon as a layout is selected, on every plan including Free. It mails the layout to your own account address — not to anyone in the Recipient Group, and not to any address you can type. The test is classified transactional, so it is outside both the plan gate and the monthly meter.
Sending
Send opens a confirmation dialog titled Send Email, reading “Send an email to the all opted-in users in the group.” Confirm and the request goes out. Below Starter there is no Send button at all — an upgrade banner sits in its place, reading “Upgrade to Starter to send marketing email to your opted-in contacts. You can still compose and test-send to yourself.”
What happens next runs in two halves. The first half is synchronous and answers you in the dialog:
- Access and entitlement checks. You need
contact:write, and the workspace needs the marketing-email feature. Below Starter this returns402withreason: "feature_gated". - Resolve the group. Members are read through the contact visibility cap, so contacts locked above your plan’s quota are never candidates.
- Drop do-not-contact. Anyone flagged do-not-contact is removed here.
- Refuse an empty audience. If nothing survives step 3, the request fails with
400 No opted in users in groupand no batch is created. - Check the monthly allotment. If this send would push the month past the quota, it is refused whole — see below.
- Queue the batch and return
201. Nothing has been sent yet.
The second half runs off the queue, and this is where a blast can go quiet:
- A second tier and allotment check. Queue lag or a concurrent blast can land an event that is no longer within quota, so both gates are re-evaluated.
- Filter to opted-in and not-hard-bounced. The consent pass that the Recipient Preview does not apply.
- Create the batch and its recipient rows, then fan out at 100 recipients per queue message.
- Render and send each message individually, stamping the sent time on the recipient’s row.
sequenceDiagram autonumber participant C as Composer participant A as POST /api/email participant Q as Email queue participant B as Batch handler participant S as Send handler participant R as Recipient C->>A: name · group · layout · page A--)C: 402 feature_gated — below Starter A->>A: Resolve group (visibility-capped)<br/>drop do-not-contact A--)C: 400 No opted in users in group A->>A: Monthly allotment check A--)C: 402 quota_exceeded — quota · used · currentTier A->>Q: create-email-batch A--)C: 201 accepted Q->>B: create-email-batch B->>B: Re-check tier and allotment B--xB: Dropped and logged — you are never told B->>B: Keep opted-in, not hard-bounced<br/>create the batch and its rows B->>Q: send-email × N, 100 per message Q->>S: send-email S->>S: Render · rewrite links · unsubscribe check S->>R: Deliver S->>S: Stamp the sent time
The three dashed returns are the failures you see; the crossed self-message is the one you do not.
| Stage | Condition | What you see | Where |
|---|---|---|---|
| Feature gate | Workspace is below Starter | 402 with reason: "feature_gated", feature, requiredTier, currentTier | The composer, before anything is queued |
| Empty audience | No opted-in contacts survive the group | 400 No opted in users in group | The composer |
| Allotment | This send would pass the monthly quota | 402 with reason: "quota_exceeded", quota, used, currentTier | The composer |
| Queue-side re-check | Tier or quota changed after acceptance | Nothing. The event is dropped and logged | Nowhere in the CMS |
| Per-recipient guard | Recipient hard-bounced | That recipient is skipped | Nowhere — their row keeps no sent time |
| Per-recipient guard | Recipient opted out after fan-out | That recipient’s send throws | Nowhere |
| Per-recipient guard | Row already has a sent time | The re-send throws | Nowhere — Leed has no resend |
Every 402 on this page carries the same body shape as every other gate in Leed; when a feature is gated decodes it field by field.
Your monthly allotment
| Plan | Marketing emails per month | What happens at the limit |
|---|---|---|
| Free | 0 | The feature gate fires first — there is no Send button to press |
| Starter | 5,000 | The next blast that would cross the line is refused whole |
| Growth | 50,000 | The same |
| Enterprise | Unlimited | No allotment check runs |
Those are the launch defaults. A workspace’s stored quota is the real value and an administrator may have a different one; usage and limits shows yours, alongside the contacts limit and analytics retention — the only three quotas in Leed.
How it is counted
The window is the current UTC calendar month. It resets at midnight UTC on the first, not on your billing date and not in your timezone.
Only marketing rows count. A row is charged from the moment its batch is accepted, not from the moment it is delivered: usage is rows sent this month plus rows reserved by batches created this month and not yet sent. That is what stops two blasts fired seconds apart from both passing a check against a stale sent-only count and overshooting between them.
Transactional email never counts — not a form response email, not a test send, not a sign-in code. How email works in Leed lists which is which.
What happens at the limit
The whole batch is refused before anything is queued. Leed never half-sends a blast: if a 900-recipient send would take you from 4,500 to 5,400 on a 5,000 allotment, all 900 are refused, not 500 of them. The 402 tells you the quota, how much you have used and your current tier, so the arithmetic is visible rather than guessed.
While a workspace sits at or over its marketing allotment, Leed emails every active administrator once a day, and suppresses the notice for seven days after each one so a long overage does not become a daily nag. A Free workspace never receives it — a zero allotment with a feature gate in front of it has nothing to exhaust.
The only remedies are waiting for the month to roll over or moving up a plan; there is no way to buy a top-up. Changing plans and downgrades covers what happens to an in-flight month when you switch.
Sent Emails
The Sent Emails tab is the report. Each row is one blast, with four engagement columns that each show a count and, beneath it, that count as a percentage of recipients. A metric of zero shows a dash instead of 0.0%.
| Column | What it counts | Per recipient or per event | When the number is written |
|---|---|---|---|
| Name | The Email Name you typed | — | At batch creation |
| Date | When the batch was created | — | At batch creation |
| Contact Group | The group the send was addressed to, linked | — | At batch creation |
| Page | The page from the Page field, linked | — | At batch creation |
| Recipients | Rows created at fan-out | Per recipient | At fan-out, after opt-out and bounce filtering |
| Opens | Recipients who opened at least once | Per recipient | On the first tracking-pixel hit |
| Clicks | Recipients who clicked at least once | Per recipient | On the first tracked-link click |
| Bounces | Recipients whose delivery failed | Per recipient | When the bounce report arrives |
| Unsubscribes | Recipients who opted out from this send | Per recipient | On the unsubscribe click |
Four things this table does not say, all of which get misread:
- It shows only blasts. The list is filtered to sends composed here. Form response emails, and any future campaign send, are excluded by batch type — so a form that has mailed ten thousand people leaves no row.
- The metrics are flags, not counts. Each is a boolean on the recipient’s row, so the columns count recipients who did the thing at least once. A contact who opens your email six times adds one to Opens, and Opens can never exceed Recipients.
- Recipients is post-filter. It counts the rows created at fan-out, after opted-out and hard-bounced contacts were removed. It will often be smaller than the number the Recipient Preview showed while you were composing, and both numbers are correct — the funnel is drawn out on contact groups and audiences.
- There is no drill-down. You cannot click a row to see who opened. One contact’s full email history — every send they received, opened and clicked — is on their record in contacts; that panel needs the reader-identity entitlement, which is Starter and up.
Where the Opens and Clicks numbers physically come from, and what they can and cannot tell you — image blocking, privacy proxies, and what a forwarded email does to attribution — is on tracked links and open tracking. The Unsubscribes column is explained by unsubscribes and opt-outs, and the Bounces column is only meaningful once you know the three classes of bounce and which one permanently retires an address.
What you cannot do yet
Stated plainly, so you do not go looking:
- Schedule a blast for later. Confirm sends now. Publish-time scheduling exists in Leed, but it is a page feature — you can schedule the page a blast points at, not the blast.
- Pause or cancel a send in flight. Once the batch is queued there is no stop.
- Resend to non-openers. Each recipient gets one row per batch and a row that has been sent refuses a second send, so a follow-up means a new group and a new blast.
- A/B test a subject line. One blast, one layout, one subject. Two variants means two groups and two sends, compared by hand in Sent Emails.
If you need email as one channel among several in a coordinated push, the planning side of that lives in campaigns and deliverables — which coordinates the work but does not send — and the measurement side in journeys, funnels and attribution.