Learn how to send personalized email messages in bulk using mail merge in Gmail. You can even send rich HTML emails with attachments as well

Let’s say you work for the PR department of a company and you have been asked to invite a couple of journalists for a private briefing with company executives. Or you are having a birthday party at your home and need to invite all your friends over email.

In either of the above scenarios, you would like to send personalized email messages to all the recipients and that’s where a Mail Merge program can come in handy. Now Mail Merge is a built-in feature of Microsoft Outlook and Word but if you are no Office user, no worries as you can also use Gmail and Google Docs to perform mail merge in the browser.

Before we get started, watch this video demo to know what’s in store for you:

Mail Merge with Gmail – Step by Step

Open your Gmail mailbox and compose a new message. This will be just like any other email message except that you need to mark text that will vary in different messages. For instance, the first line of your messages could read Dear First-Name and you need a way to tell Gmail that First-Name is a variable field.

That’s easy. You just need to replace First-Name in the message with $%First-Name% as shown in the following screenshot. Similarly, replace all the variable fields that are either in the body or the subject line of your Gmail message.

Save the draft message in Gmail and then make a copy of this spreadsheet in your Google Docs account. This is where the magic will happen.

Gmail Mail Merge

Open the Mail Merge HD spreadsheet that you just copied and you’ll find some dummy data here to help you get started. You just need to change the column names such that they match the various variable fields that you marked in your Gmail draft message.

You can add (or remove) any number of columns but the one mandatory column that should exist in your spreadsheet is labeled Email Address. Just ensure that the column names in the spreadsheet and the variable fields in the Gmail messages are exactly same and that every Gmail variable to mapped to a column in Google Docs.

You need to have one row of data in Google Docs for every recipient and the values of that row will be used to send a personalized message to that recipient.

Once you’ve filled the rows with the necessary data, go to the Mail Merge menu in Google Docs and hit Start Mail Merge. It may require authorization the first time you run this program so just click Grant Access. Don’t worry, you are just granting access to your Gmail to your own Google Docs account – nobody else will have access to your data.

start mail merge

Start Mail Merge in Google Docs

Now that you have granted access to Google Docs, click “Start Mail Merge” again, choose the Gmail template you earlier created from the dropdown, enter the Sender’s name (this will show in the FROM field of your outgoing messages), tick the BCC option (if you want to get a copy of the outgoing emails) and hit Start Mail Merge. That’ it.

Points to Remember

  • Once the mail merge is complete, a new column “EMAIL_SENT” will be added to every row indicating that the row need not be processed should you run Mail Merge again on the same set of data. If you wish otherwise, just set that EMAIL_SENT value on that row to blank.
  • It’s always a good idea to test your Gmail templates before sending the email blast to dozens of people. For that, just have one or two data rows in your spreadsheet and put your own email addresses in the Email fields to ensure that your outgoing emails will look as expected.
  • Gmail has a daily sending limit and you can send a maximum of 500 messages in a day. Make sure that you don’t exceed that number else Google can temporarily lock your Gmail account.


The first version of Gmail Mail Merge program used HTML Mail as the editor (this one uses Gmail’s built-in editor) and it required just too many steps to attach files and document to the outgoing messages.

Romain Vialard recently shared a vastly improved version of Mail Merge in Google Groups and it is his code that now powers most of the Mail Merge functionality while the new Mail Merge GUI is forked from github so all credit to them for make our lives easier.