Mail merge
How to Mail Merge in Gmail: The Complete Guide
A mail merge sends one personalized email to everyone on a list, each from your own Gmail address. Here's how it works, your options in Gmail, a step-by-step walkthrough from Google Sheets, and the limits and mistakes to watch for.
Updated 6 min read

A mail merge sends the same email to a list of people, with each copy filled in with that person’s details. You keep the list in a spreadsheet, write the email once with placeholders like {{First Name}}, and every recipient gets their own individual email from your Gmail address.
Gmail can do a basic version on some Google Workspace plans. For everything else, you need a script or an add-on. This guide covers how mail merge works, which option fits, and how to send your first one from Google Sheets.
How a mail merge works
Every mail merge has three parts: a list, a template and a send.
The list is a Google Sheet with one row per person and one column per detail. Row 1 holds the column names.
| First Name | Session | |
|---|---|---|
| Alex | alex@example.com | Monday |
| Priya | priya@example.com | Tuesday |
The template is the email, with merge tags where each person’s details go. A merge tag is a column name inside double curly braces.
Subject: Your spot for {{Session}}
Hi {{First Name}},
You're booked for the {{Session}} workshop at 10 AM.Reply to this email if you need to switch days.When you send, each row becomes its own email. Alex gets “Hi Alex,” Priya gets “Hi Priya,” and neither can see the other’s address. That last part is the big difference from pasting everyone into BCC: each person gets a normal one-to-one email, which reads better and looks less like bulk mail to spam filters.
Your options for mail merge in Gmail
Gmail’s built-in mail merge. On certain paid Google Workspace plans, Gmail’s compose window can personalize an email for each recipient and pull the details from a linked Google Sheet. It’s free if your plan includes it. It isn’t available on personal Gmail accounts, it caps mail merge at 1,500 recipients a day, and it can’t be scheduled.
Google Apps Script. If you’re comfortable with code, a script can loop over the rows in a sheet, fill in the text and send each email with GmailApp. You’ll also be writing the parts that make it safe to run: skipping rows already sent, handling errors and staying under Gmail’s limits.
A mail merge add-on. Add-ons such as BetterMerge work on any Gmail or Workspace account. You write the email in the add-on, pick the sheet, and it sends and tracks each email for you. Most have a free plan with a daily cap. Our free plan comparison lines up the limits of the main ones, and the comparison pages go tool by tool.
How to send a mail merge from Google Sheets
Here’s the full flow in BetterMerge. It works the same in the Google Sheets add-on and the web app, and the free plan covers every step. The beginner tutorial has more detail on each screen.
1. Prepare your list
Create a Google Sheet with the column names in row 1. You need a column of email addresses; everything else is up to you.

A few things save trouble later. Put one address per cell. Avoid periods in column names, because a tag like {{Sr. No.}} sends as blank text. Only visible rows are sent, so you can hide or filter rows to leave people out.
2. Create a campaign and choose the sheet
Open BetterMerge from Extensions in Google Sheets, or sign in at the web app. Click New campaign, then Create regular campaign.
On the Recipients tab, pick your sheet, the tab with your list and the column that holds the email addresses.

3. Write the email with merge tags
On the Template tab, write the subject and body. Type merge tags such as {{First Name}} or insert them from the Merge tags menu. The name inside the braces must match the column header exactly, including capital letters and spaces.

Merge tags also work in the preview text, the short line many inboxes show after the subject.
4. Preview every row and send a test
The Preview tab shows the email exactly as each person will get it. Step through a few rows, especially any with empty cells, then send a test to yourself.

Open the test in your inbox and check the greeting, the links and how it looks on your phone.
5. Choose tracking and delivery, then launch
On the Delivery tab, turn on open and click tracking if you want to see who engaged. Both are on every plan. Track unsubscribes adds an unsubscribe link and records opt-outs.
From the Lite plan, you can schedule the campaign for later. From Plus, delivery automation sets a daily cap, sending days and hours, and a delay between emails.
The Summary tab checks the sender, recipients, template and merge tags before you click Start campaign.
6. Follow the results
The campaign report shows how many emails were sent and delivered, and the unique opens, clicks and unsubscribes. Your sheet gets a status column for the campaign, so you can see SENT, OPENED or CLICKED next to each row.

From the Lite plan, you can send a follow-up only to the people who opened, or didn’t open, the first email, using tracking status filters.
Gmail sending limits
Gmail limits how many people you can email a day, and every mail merge tool works within those limits because the emails go out through your account.
- A personal Gmail account can send to about 500 recipients a day.
- Google Workspace accounts can send to about 2,000 a day. Gmail’s built-in mail merge has its own cap of 1,500.
- New accounts start lower and build up. Sending a big batch from a brand-new account is a quick way to get blocked.
BetterMerge’s free plan sends up to 50 emails a day. See email quotas for how the limits work and pricing for each plan’s daily quota.
Mistakes that hurt a mail merge
Sending to a list that didn’t ask for it
Bought or scraped lists bring bounces and spam complaints, and both count against your account. Email people who know you.
Merge tags that don’t match the sheet
{{first name}} won’t find a column called First Name. Preview a few rows before every send.
Empty cells
If a row has no first name, “Hi {{First Name}},” turns into “Hi ,”. Fill the gaps, or write the greeting so it reads well without the name.
Skipping the test email
The preview shows the content. The test shows how it looks in a real inbox, which is where broken links and odd formatting show up.
No way to opt out
Give people an easy way to stop hearing from you. An unsubscribe link costs you a few readers and saves you a lot of spam reports.
Ignoring bounces
Remove addresses that bounce. On the Pro plan, email verification checks addresses before sending and bounce tracking flags the ones that fail. Our deliverability guide covers the rest.
What people use mail merge for
- Event invitations and reminders, with the date, time and place for each person.
- Sales outreach and follow-ups, where each email mentions the prospect’s company.
- Updates to customers or members, addressed by name instead of “Dear customer.”
- Class or course emails from a teacher’s roster.
- Renewal and payment reminders with each client’s own amount and due date.
FAQ
Can I do a mail merge in Gmail without an add-on?
Yes, on certain paid Google Workspace plans, which include Gmail’s built-in mail merge. On a personal Gmail account, you need an add-on or a Google Apps Script.
How many emails can I send with mail merge in Gmail?
Your Gmail account’s daily limit applies: about 500 recipients a day on personal Gmail and about 2,000 on Google Workspace. Each mail merge tool’s own plan limit applies on top of that.
Can I attach a file to a mail merge?
Yes. In BetterMerge, a file added to the template goes to every recipient, on the Lite plan and above. See add attachments.
Will my mail merge emails go to spam?
They’re less likely to than one big BCC email, because each recipient gets an individual message from your address. Content and list quality still matter most. Check your email with our free spam checker before you send.
Can I schedule a mail merge in Gmail?
Gmail’s built-in mail merge can’t be scheduled. BetterMerge can schedule a campaign for a date and time on the Lite plan and above. For one-off emails, see how to schedule emails in Gmail.


