Google Workspace kit · Google Sheets · Gmail
Sheets Mail Merge Kit
Write your email as a Gmail draft, add {{First name}} style fields and if/else blocks, and send one personal copy per row of a Google Sheet from your own account. Preview, per-row attachments and CC, send windows in each recipient's time zone, reply and bounce detection, follow-ups to people who did not reply, A/B tests and a personal PDF per row. One payment, no subscription.

Buy on Gumroad €15, one payment. No subscription.
For people who need to email a list of people who expect to hear from them: customers, members, students, parents, volunteers, event guests and clients. Booking confirmations, reminders, invoices, personal codes, renewal notices, invitations.
How it works. Paste one script into your sheet (Extensions > Apps Script) and a Mail Merge menu appears. Write the email as a normal Gmail draft with fields like {{First name}}. Formatting, links, pasted images and attachments go out in every message. Or start from one of six starter templates.
Write once, personal for each row
- Fields with fallbacks ({{First name|there}}) and conditional blocks: {{#if Plan = Pro}}...{{else}}...{{/if}}.
- Per row: CC and BCC, Google Drive files attached, a different Gmail draft, a send time.
- Personal PDF per row made from a Google Doc (invoices, letters, vouchers), attached automatically.
- Preview sidebar that shows each email as it will go out, and a test send to yourself.
Send at the right moment - Send now, schedule, or set a send window (for example Mon-Fri, 09:00 to 17:00) in each recipient's own time zone, with an optional pause between emails. - Resumes by itself at Google's daily limit and after Apps Script's 6-minute limit, without sending a row twice. - Send to new Google Form responses automatically, or make a Gmail draft per row to review instead of sending.
After sending - Each email's Gmail thread is kept: replies are marked, bounces are marked and unsubscribed. - Follow-ups and sequences in the same thread to people who did not reply, after the number of days you choose. - A/B test two or more versions, each a Gmail draft, and compare replies and clicks per variant. - Optional click counts with signed links, an unsubscribe link with a confirm button, and a status per row: SENT, SKIPPED with the reason, BOUNCED, WAITING or ERROR. - A daily automatic run for replies, bounces and follow-ups.
Google's sending limits apply. Through Apps Script, Google lets a free Gmail account email about 100 recipients a day and a Google Workspace account about 1,500 a day; CC and BCC addresses count too. The kit does not get around these limits: it pauses and continues when your quota is back.
Honest limits. No open tracking. Click counts are off by default, and mail security scanners can add clicks no person made. Replies sent as a new email with a new subject are not seen. Send windows are checked every 30 minutes. No outside SMTP for sending beyond Gmail's limits.
Not for cold email. This kit is for people who asked to hear from you. Unsolicited bulk mail from your Gmail breaks Google's rules, can get your account suspended and, in the EU, usually needs consent.
No third party. The script runs in your own Google account. Your list and your emails never pass through our servers or anyone else's.
Use it in as many of your own spreadsheets as you like.
Test status
Uses only Google services (Sheets and Gmail).
Questions
Ask on the support page. You get a reply from a real person.