Gmail doesn't have a built-in mail merge feature, but you can do it in three ways

Gmail itself has no mail merge button. However, you can send personalized emails to a list of people by using Google Sheets with a free add-on, by exporting your contacts and using a desktop mail merge tool, or by setting up a simple filter-and-send workflow if your list is small. The Sheets method is fastest for most people and works entirely within Google's ecosystem.

Mail merge means sending the same email template to many recipients, but with each person's name, company, or other details filled in automatically. It saves time when you're reaching out to dozens of people at once — job candidates, event attendees, or clients — because you write one email and the system personalizes it for each recipient from a spreadsheet.

Key Takeaways

  • The easiest method uses Google Sheets with the free "Mail Merge for Gmail" add-on, which pulls names and details from a spreadsheet and fills them into your email template.
  • You need a Google Sheet with one column per piece of information (name, email, company) and an email draft in Gmail with placeholders like {{FirstName}} that the add-on replaces.
  • The add-on sends emails from your Gmail account at a rate of about 50 per hour to avoid triggering Gmail's spam filters.
  • If you have fewer than 20 people to email, using Gmail's BCC field with a filter is simpler than setting up a mail merge.

Setting up mail merge with Google Sheets and the Mail Merge add-on

Start by creating a Google Sheet with your recipient list. The first row should be column headers: put "Email" in the first column, then add columns for any details you want to personalize — "FirstName", "LastName", "Company", "JobTitle", or anything else. Each row below the headers is one recipient, with their email address in the first column and their details in the columns that follow.

Next, open Gmail and draft the email you want to send. Write it as a template, using double curly brackets around any field you want personalized — for example, "Hi {{FirstName}}" or "I saw your work at {{Company}}". Save this draft but do not send it. The add-on will use this draft as the starting point for all your personalized emails.

Now go to Google Sheets and click the "Extensions" menu. Select "Add-ons" and then "Get add-ons". Search for "Mail Merge for Gmail" (made by Google) and install it. Once installed, go back to Extensions, select Mail Merge for Gmail, and click "Start mail merge". The add-on will ask you to choose the Gmail draft you want to use and which sheet contains your recipient list. Select them, review the preview to make sure the personalization is working, and then click "Send".

How the add-on fills in your template and sends emails

The Mail Merge add-on matches the column headers in your sheet to the placeholders in your email. If your sheet has a column called "FirstName" and your email says "Hi {{FirstName}}", the add-on replaces {{FirstName}} with the value from that row's FirstName column. This happens for every row in your sheet, creating one personalized email per recipient.

The add-on sends emails at a throttled rate — roughly 50 per hour — to keep Gmail from flagging the batch as spam. If you're sending to 500 people, the process takes about 10 hours. You can close your browser while it runs; the add-on continues in the background. Check your Gmail "Sent" folder to see which emails have gone out.

One important detail: the add-on sends from your Gmail account, so recipients see your email address as the sender. If you use a Gmail alias (like support@yourcompany.com forwarded to your personal Gmail), the emails will come from your personal address unless you change your Gmail sending address in Settings first.

Using BCC and filters for small lists under 20 people

If you only have a handful of people to email, mail merge is overkill. Instead, use Gmail's BCC field to send one email to multiple recipients at once, then use filters to personalize the subject line or body for each person individually.

Write your email as normal and put all recipient addresses in the BCC field (not To or CC). This way, each recipient sees only their own address, not the full list. Send the email once. Then, for each recipient who needs a personalized touch, reply to their address with a follow-up that includes their name or details. This takes longer than mail merge but requires no setup and no add-ons.

Exporting contacts and using desktop mail merge tools

If you prefer not to use Google Sheets or the add-on, you can export your Gmail contacts and use a desktop mail merge tool like Microsoft Word or LibreOffice Writer. Export your contacts from Gmail by going to Google Contacts, selecting the contacts you want, clicking the three-dot menu, and choosing "Export". Save the file as a CSV (comma-separated values) file.

Open your mail merge tool, create a new mail merge document, and connect it to your CSV file. Set up your email template with merge fields (the exact syntax depends on your tool), and then generate and send the emails. This method works well if you already use Word or LibreOffice, but it requires more steps than the Google Sheets add-on and the emails don't send from Gmail — they send from your mail merge tool, which may affect deliverability.

Common mistakes and how to avoid them

The most frequent error is misspelling column headers or placeholder names. If your sheet has a column called "Company" but your email template says "{{company}}" (lowercase), the add-on won't match them and will leave {{company}} in the email as-is. Column names and placeholders are case-sensitive, so double-check that they match exactly.

Another mistake is including the header row in your send list. Make sure the add-on knows which row contains your column names (usually row 1) and which rows contain actual recipient data. If you accidentally send to your header row, you'll send an email to "Email" or "FirstName" as if it were a real address, which will bounce.

A third issue is forgetting to save your Gmail draft before starting the merge. The add-on pulls from your saved drafts, so if you haven't saved the template, it won't appear in the add-on's list of available emails.

Checking Gmail's sending limits and avoiding the spam folder

Gmail allows you to send up to 500 emails per day from a personal account and up to 10,000 per day from a Google Workspace account. The Mail Merge add-on respects these limits and will pause if you approach them. If you need to send more than 500 emails, split your list into batches and run the merge on different days.

To reduce the chance that your merged emails land in recipients' spam folders, use a clear subject line, avoid spam trigger words (like "free", "act now", or "limited time"), and make sure your Gmail account has a recovery email and phone number on file. Gmail's reputation system looks at account age and verification status, so older, verified accounts have better deliverability.

If you're sending to a large list of people who don't know you, some emails may still end up in spam regardless of what you do. This is normal and not a sign that something is wrong with your merge setup.

Frequently Asked Questions

Can I schedule a mail merge to send at a specific time?

The Mail Merge for Gmail add-on sends immediately when you click "Send". If you need to schedule the merge for later, you can create your sheet and draft now, then run the merge at the time you want emails to go out. Gmail's native scheduled send feature works on individual emails, not merged batches.

What if I want to attach a different file to each email?

The basic Mail Merge add-on attaches the same file to all emails. If each recipient needs a different attachment (like a personalized PDF), you'll need to use a more advanced tool like Zapier or a custom script. For most use cases, one attachment for everyone is sufficient.

Can I use mail merge with Gmail labels or filters?

The add-on sends emails normally, so they follow your existing Gmail rules and filters. If you have a filter that auto-labels outgoing emails, those labels will apply to your merged emails too. You can also manually label the draft before merging, and the label will carry over to the sent emails.

Does the recipient see that this is a mail merge email?

No. To the recipient, it looks like a regular email from you. They see only their personalized version, not the template or the fact that you sent it to many people. The email comes from your Gmail address and appears in their inbox like any other message.

What happens if someone's email address is wrong or missing?

The add-on will skip rows where the Email column is empty or invalid. If an email address is misspelled, the add-on will still try to send to it, and the email will bounce. Check your list for typos before running the merge, or review the preview the add-on shows before you click "Send".