How to Send Emails to Only Specific Rows of a Google Sheet with Mail Merge

Published in: Mail Merge for Gmail

The Mail Merge spreadsheet contains a mandatory column called Mail Merge Status that indicates the sending/scheduling status of merge for the recipient of that particular row.

For instance, the mail merge status column of value “Mail Sent” indicates that the email has already been sent to the recipient in that row. If you run Mail Merge again, the row will be skipped and the email will not go out to recipients mentioned in that row.


Rows #4 and #5 will not be included in Mail Merge since the Mail Status column for these rows was manually set to SKIP

Mail Merge status column can have 5 values:

  1. Email Sent - The messages has been sent and this row will not be included in future merge until you clear the cell value.
  2. Email Scheduled - The message is queued for future delivery. The status will auto change to Email Sent after the scheduled message is delivered.
  3. Draft Created - If you are using Mail Merge to create drafts in Gmail, this status indicates that the draft has been created in Gmail for that recipient.
  4. Quota Over - This indicates that you have run out of your daily email sending limit, new emails won’t be sent but you can still schedule messages.
  5. Error Message - If merge encountered an error, maybe the email address was not valid, the status column will show the full error message.

How to Skip Sending Mails to Specific Rows

Let’s say you have a Google Spreadsheet with a dozen entries but you would only like to include, say, 5 rows in Mail Merge and skip the other rows.

You can easily do this by manually setting the Mail Merge Status column as SKIP for rows that you would not like to be included in the merge.

Also, rows with status as “Email Sent” will also not included in the merges.

Use Google Sheets Filters to Hide Rows

Mail Merge for Gmail will only send emails to rows that are visible (not hidden) in your Google Sheet. If you are using Filters inside Google Sheets to hide rows that don’t meet a certain criteria, the emails will not be sent to the hidden rows.

Say you have a Google Sheet with hundreds of rows and the column titles are Name, Country, Age and Email Address. You would only like to send emails to rows where the Country is United States and Age > 18 years.

All you have to do is create a filter inside Google Spreadsheet with the specified criteria and all the unmatched rows will be hidden. Mail merge will automatically skip the rows hidden by the Google Sheets filter.

Step 1: Select the Data Range, go to Data and Choose Filter.


Step 2: Click the Dropdown next to the column name and specify the criteria.


You can either Filter by Values (show rows that have United States as value) or Filter by Contain (show rows where the age > 18).

Google Sheets will now display rows that match your filter criteria and when you run Mail Merge, it will only email visible rows provided the corresponding Mail Merge Status column is blank.

Published in: Mail Merge for Gmail

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch