Gmail bulk send with variables: the limits nobody tells you, and how to work around them
You have 87 clients. You need to send each of them a slightly different email — same paragraph structure, different name, different amount, different due date. You want to use Gmail because that's where your reply threads live and clients recognise your address.
Then you hit a wall. Which wall depends on which shortcut you reach for. Here's a map of every wall, roughly in the order you'll trip over them.
The sending limits Google actually enforces
Google publishes these but buries them across three help pages. Consolidated:
- Personal Gmail (@gmail.com): 500 recipients per rolling 24 hours. A recipient counts as one address; a single email to 10 people = 10 recipients.
- Google Workspace Starter / Standard / Plus: 2,000 recipients per rolling 24 hours. External recipients specifically capped at 500/day inside that 2,000.
- Google Workspace Enterprise: same 2,000/day cap. Enterprise doesn't unlock more.
Rolling window matters. This isn't “reset at midnight”. If you send 500 emails at 2pm Tuesday, you're fully capped until 2pm Wednesday. Batching everything into an evening rush is exactly the pattern that trips the throttle.
The failure mode is quiet and confusing. Google's error:
You have reached a limit for sending mail.
Your message was not sent.No indicator in the compose window that you're close to the limit. No warning at 400/500. You're fine, then you're blocked, then you wait.
What Google's built-in Multi-send does
Google shipped “Multi-send” (also called mail merge) into Gmail in 2022. Free for Workspace, opt-in via the compose window's toolbar toggle. Here's what it gives you:
- Per-recipient variables:
@firstname,@lastname,@fullname,@email— Google pulls them from the recipient's Google Contacts entry. - One-click unsubscribe footer auto-added (legal requirement in AU/US/EU for bulk email).
- Deliverability: uses your Gmail infrastructure, so your normal sending reputation applies.
What Multi-send does NOT give you:
- No per-recipient attachments. Every recipient gets the same attachment or none. If you need a personalised PDF per client, this is a dealbreaker.
- No custom variables. Only the four Google controls (name/email). Can't use
{{amount_due}}or{{project_name}}. - No Sent folder entries per recipient. All Multi-send emails collapse into a single “Multi-send” archive — good luck finding a specific thread when a client replies weeks later.
- No delivery tracking. You don't know if row 47 actually went through or bounced.
- Not available on personal Gmail. Workspace only.
Multi-send is fine for a plain newsletter to 20 people. It falls over the moment you want personalised PDFs or a proper Sent folder record.
The workarounds, ranked by scale
Under 20 recipients: just do it manually
Copy-paste the template, personalise inline, hit send. 20 emails = about 15 minutes. Not worth automating.
20–200 recipients, no personalised attachments: Google Multi-send
Workspace users only. Free. Fine for text-only merges. Accept that your Sent folder becomes a black box.
Any volume, need personalised PDFs or Word templates: dedicated tool
Multi-send's missing feature — per-recipient PDF attachments generated from a Word template — is exactly the gap that a tool like NoticeFlow fills. Upload a CSV, upload a Word template with {{variables}}, write the email once. Each recipient gets their own personalised PDF attached to a personalised email, sent from your own Gmail OAuth connection (real Sent folder, real replies back to you).
Others in this category:
- Yet Another Mail Merge (YAMM) — Gmail-native, great UI, no PDF attachment support
- GMass — powerful but complex, oriented toward cold email sequences more than one-off personalised batches
- Mailmeteor — similar to YAMM, no PDF attachment
500+ recipients per day sustained: dedicated ESP
If you regularly need to send over Gmail's daily cap, you've outgrown the “send from Gmail” pattern. You want a dedicated ESP:
- Postmark — best deliverability for transactional/personalised email
- Resend — developer-first, clean API
- Amazon SES — cheapest at scale, worst UI
Downside: emails send from you@yourdomain.com (your custom domain), notyou@gmail.com. Your Sent folder no longer sees them. This is fine at scale but a jarring shift if you're used to Gmail-native workflow.
Some tools (including NoticeFlow) offer a middle ground: they can send via their own transactional infrastructure but set Reply-To: you@gmail.com so replies still land in your inbox. You lose the Sent folder record but preserve the reply thread.
Comparison at a glance
Workflow Recipients/day PDF attach Sent folder
-------------------------- ---------------- ------------ ------------
Manual copy-paste 20 yes yes
Google Multi-send 1,500 no grouped
Mail-merge tool (via Gmail) up to Gmail cap yes yes
Dedicated ESP unlimited yes noThe decision, simplified
- Fewer than 20 recipients, occasionally — stay manual
- Under Gmail's cap, no attachments — Multi-send if you're on Workspace, Mailmeteor / YAMM if not
- Under Gmail's cap, need per-recipient PDFs — NoticeFlow, GMass, or similar
- Above Gmail's cap regularly — dedicated ESP; accept the Sent-folder tradeoff
One test worth running: check what your actual sending volume looks like across a full month, not just your busiest day. Most professionals overshoot on the tool because they over-estimate their peak. Real peak is usually 50–200 per batch, monthly or quarterly.