Skip to content
All articles

How to Mail Merge in Google Sheets: A Step-by-Step Guide

GuidesAugust 21, 202612 min read

Learn how to mail merge in Google Sheets using Gmail, Apps Script, or Mailvern. Personalize emails and send messages based on spreadsheet data and conditions.

How to Mail Merge in Google Sheets: A Step-by-Step Guide

Sending the same email to dozens or hundreds of people one by one is slow, repetitive, and easy to get wrong.

A mail merge lets you keep your recipient information in Google Sheets and use that data to create personalized emails for each recipient.

For example, instead of sending:

Hi there,

you can automatically send:

Hi Sarah,

to one person and:

Hi James,

to another.

You can also use spreadsheet data such as company names, order numbers, payment status, appointment dates, or other custom fields.

In this guide, you'll learn how to mail merge in Google Sheets, the different ways to do it, and how to use Mailvern when you need more control over which rows receive an email.

What Is a Mail Merge in Google Sheets?

A mail merge connects a spreadsheet containing recipient information with an email template.

Your Google Sheet might look like this:

NameEmailCompanyPayment
Sarahsarah@example.comAcmePaid
Jamesjames@example.comBrightCoPending
Emmaemma@example.comNorthstarPaid

Instead of manually creating three emails, a mail merge uses the spreadsheet data to generate personalized messages.

For example:

Subject: Payment reminder for {{Name}}

Email:

Hi {{Name}},

This is a quick reminder that your payment for {{Company}} is currently {{Payment}}.

Thanks,

Your Team

The mail merge replaces the placeholders with the corresponding information from each row.

Google's own mail merge tools support connecting a spreadsheet to Gmail and using spreadsheet columns as merge information.


What Do You Need for a Google Sheets Mail Merge?

Before starting, prepare:

  • A Google account
  • A Google Sheet containing your recipients
  • Email addresses for your recipients
  • The information you want to personalize
  • Gmail or another email-sending method

Your spreadsheet should have clear column headers.

For example:

First NameEmailCompanyOrder ID
Sarahsarah@example.comAcmeORD-1024
Jamesjames@example.comBrightCoORD-1025
Emmaemma@example.comNorthstarORD-1026

Each row represents one recipient.

The column headers become the fields you can use to personalize your emails.


Method 1: Mail Merge With Gmail and Google Sheets

If you have an eligible Google Workspace account, Gmail has its own built-in mail merge functionality.

Google currently supports adding recipients from a spreadsheet and using spreadsheet columns as merge information. Availability depends on the Google Workspace plan.

Step 1: Prepare your Google Sheet

Create a spreadsheet containing your recipient information.

At minimum, you'll generally need an email column and any personalization fields you want to use.

For example:

EmailFirst NameCompany
sarah@example.comSarahAcme
james@example.comJamesBrightCo
emma@example.comEmmaNorthstar

Keep your headers simple and make sure the email addresses are valid.


Step 2: Open Gmail

Open Gmail and create a new email.

In eligible accounts, Gmail provides a Use mail merge option next to the recipient field. Turn on mail merge.


Step 3: Add your Google Sheet

Choose the option to add recipients from a spreadsheet.

Select the Google Sheet containing your recipient information.

Gmail lets you select the spreadsheet columns containing recipient details such as email address, first name, and last name.


Step 4: Add personalization

You can then insert merge tags into your email.

For example:

Hi @firstname,

Gmail replaces the merge tag with the appropriate recipient information when the message is sent.

Your final email can therefore look different for every recipient even though you created only one template.


Step 5: Send the mail merge

Review your message and recipients before sending.

Gmail's current mail merge documentation says standard Gmail accounts have a daily sending limit of 500 outgoing messages, while eligible Workspace accounts have higher limits. Gmail mail merge itself has additional recipient limits.

Always check Google's current limits before planning a large campaign because sending limits can change.


Method 2: Use Google Apps Script

If you want more control, you can build a mail merge directly inside Google Sheets using Google Apps Script.

Google provides an official Gmail + Google Sheets mail merge example.

The official workflow uses a Gmail draft as the email template, reads recipient data from Google Sheets, replaces placeholders with spreadsheet values, and sends the resulting emails through Gmail.

A simplified spreadsheet could look like:

RecipientFirst NameCompanyEmail Sent
sarah@example.comSarahAcme
james@example.comJamesBrightCo
emma@example.comEmmaNorthstar

The script reads each row and uses the data to personalize the email.

Why use Apps Script?

Apps Script is useful when you want to create your own automation.

For example, you could build logic to:

  • Read data from Google Sheets
  • Create personalized emails
  • Send emails through Gmail
  • Record when an email was sent
  • Skip rows that have already been processed
  • Add custom conditions
  • Create your own buttons and menus

Google's official example demonstrates exactly this type of spreadsheet-driven mail merge.

The downside

You need to maintain code.

That means dealing with:

  • Apps Script setup
  • Permissions
  • Triggers
  • Gmail quotas
  • Errors
  • Code maintenance
  • Customization

For someone comfortable with JavaScript, this can be a good option.

For someone who simply wants to send personalized emails from a spreadsheet, a Google Workspace add-on can be considerably easier.


Method 3: Use Mailvern for Google Sheets Mail Merge

If your recipients already live in Google Sheets and you want more than basic personalization, Mailvern is designed specifically for this workflow.

Mailvern — Mail Merge for Google Sheets

Mailvern works inside Google Sheets and lets you create personalized Gmail campaigns from your spreadsheet. It also adds a key capability that basic mail merge doesn't focus on:

conditional sending.

For example, imagine your sheet contains:

CustomerEmailAmountPayment
Sarahsarah@example.com$500Paid
Jamesjames@example.com$750Pending
Emmaemma@example.com$320Paid
Daviddavid@example.com$900Pending

You might want to send a payment reminder only to customers whose payment is pending.

Instead of manually selecting James and David, you can create a condition:

Payment = Pending

Mailvern then sends the personalized email only to matching rows. Its current product positioning is specifically built around conditional mail merge in Google Sheets.


How Mailvern Mail Merge Works

The basic workflow is:

Google Sheet → Email Template → Personalization → Conditions → Send

1. Keep your data in Google Sheets

You don't need to export your spreadsheet to another format.

Your customer, lead, student, employee, or order data can remain in the sheet.

Mailvern's documentation describes the workflow as running campaigns directly from a Google Sheet.

2. Create your email

Use the Mailvern email editor to create your message.

You can personalize the email using information stored in your spreadsheet.

For example:

Hi {{First Name}},

Your order {{Order ID}} is ready for pickup.

The values come from the corresponding row.

3. Add a condition

This is where conditional mail merge becomes useful.

Suppose you have:

Payment

  • Paid
  • Pending

You can configure:

Payment = Pending

Now only the rows matching that condition are selected for sending.

This is particularly useful for:

  • Payment reminders
  • Customer follow-ups
  • Lead follow-ups
  • Order updates
  • Application updates
  • Appointment reminders
  • Employee communications
  • Status-based emails

Mailvern's documentation currently lists conditional sending, personalization, templates, scheduling, tracking, and analytics among its campaign features.

4. Send the campaign

Once your recipients, template, and conditions are ready, send the campaign from your Google Sheet.

Rows that don't match the condition can be skipped rather than receiving an unnecessary email.


Google Sheets Mail Merge vs Apps Script vs Mailvern

Which method should you choose?

MethodBest forCoding requiredConditional sending
Gmail Mail MergeSimple personalized campaignsNoLimited
Apps ScriptCustom automationYesYes, if you build it
MailvernSpreadsheet-based email automationNoYes

Choose Gmail mail merge if:

You need a straightforward way to send personalized messages and your account supports Gmail's mail merge feature.

Choose Apps Script if:

You are comfortable coding and want to build a highly customized workflow.

Choose Mailvern if:

You want to work directly from Google Sheets and need features such as conditional sending, personalization, scheduling, tracking, and campaign management without building the automation yourself.


What Is the Difference Between Mail Merge and Conditional Mail Merge?

This distinction is important.

Traditional mail merge answers:

Who is on my list?

Conditional mail merge answers:

Who on my list should receive this email right now?

Imagine you have 1,000 customers.

A traditional mail merge might send an email to all 1,000 customers.

But your spreadsheet says:

  • 400 customers have paid
  • 250 payments are pending
  • 150 orders are ready
  • 200 customers need follow-up

You don't necessarily want to email everyone.

You want to select recipients based on the information already stored in your spreadsheet.

That's where conditional mail merge becomes useful.

For example:

Payment = Pending

or:

Status = Follow Up

or:

Order Status = Ready

This turns your spreadsheet from a simple recipient list into a decision-making source for your email campaign.


Common Google Sheets Mail Merge Use Cases

Mail merge isn't limited to newsletters.

You can use Google Sheets mail merge for many everyday workflows.

1. Payment reminders

Keep customer payment information in Sheets and send reminders only when:

Payment = Pending

2. Sales follow-ups

Use a status column such as:

Status = Follow Up

and send emails only to those leads.

3. Order updates

Send different emails based on:

  • Processing
  • Shipped
  • Delivered
  • Delayed

4. Appointment reminders

Store appointment dates in Google Sheets and use them to organize reminder campaigns.

5. Student communications

Use spreadsheet fields such as:

  • Student name
  • Course
  • Score
  • Result
  • Submission status

to personalize emails.

6. Employee communication

Create personalized emails using employee information stored in Sheets.

7. Customer onboarding

Send different messages depending on the customer's onboarding status.


Mail Merge Best Practices

Before sending a large campaign, check your spreadsheet carefully.

Keep one recipient per row

Each row should represent one person or recipient.

Use clear column headers

For example:

First Name

Email

Company

Status

Order ID

Clear headers make personalization easier.

Test before sending

Always send a test to yourself before sending a campaign to a large list.

Check:

  • Recipient address
  • Subject
  • Personalization
  • Links
  • Formatting
  • Conditions
  • Missing values

Don't email everyone by default

If your campaign depends on a particular status or condition, use that information to determine who actually needs the message.

Keep your data clean

Remove invalid email addresses, duplicate records, and outdated recipients before sending.

Respect sending limits

Gmail and Google Workspace impose sending limits. These limits vary by account type and product functionality and can change over time, so check Google's current documentation before planning high-volume campaigns.


Frequently Asked Questions

Can I mail merge directly from Google Sheets?

Yes. You can use Gmail's built-in mail merge where available, Google's Apps Script mail merge workflow, or a Google Sheets add-on such as Mailvern.

Google also provides an official Apps Script example for creating a mail merge using Gmail and Google Sheets.

Can I personalize emails using Google Sheets columns?

Yes. Spreadsheet columns can provide information used to personalize each message. Gmail's mail merge supports spreadsheet data as merge information, while Apps Script can also populate templates using spreadsheet values.

Can I send emails only to certain rows in Google Sheets?

Yes, but the exact method depends on the tool you're using.

With custom Apps Script, you can write conditions that determine which rows should receive an email.

With Mailvern, you can create conditions such as:

Payment = Pending

and send the campaign only to matching rows.

Can I mail merge without Apps Script?

Yes.

Gmail provides built-in mail merge for eligible accounts, and Google Workspace add-ons can provide spreadsheet-based mail merge without requiring you to write Apps Script.

What is the easiest way to mail merge from Google Sheets?

For a simple campaign, Gmail's built-in mail merge can be enough.

If your workflow depends on spreadsheet conditions—for example, sending payment reminders only to customers whose payment is pending—a dedicated Google Sheets email automation tool such as Mailvern can be more suitable.

What is conditional mail merge?

Conditional mail merge is a mail merge workflow where spreadsheet conditions determine which recipients receive an email.

Instead of simply sending an email to every row, you can create rules such as:

Status = Approved

Payment = Pending

Score > 80

or other conditions supported by your email automation tool.


Final Thoughts

Google Sheets is already a useful place to store your recipients and the information you want to use in personalized emails.

A basic mail merge takes that data and turns it into personalized messages.

But many real-world workflows require another step:

deciding who should receive the message.

That's where conditional mail merge becomes useful.

If you only need basic personalization, Gmail's built-in mail merge or Google's Apps Script approach may be enough.

If you want to keep your workflow inside Google Sheets while adding conditional sending and campaign automation, Mailvern provides a purpose-built solution.

Try Mailvern for Google Sheets

Your spreadsheet already knows who needs the email. Mail merge simply turns that data into action.

Keep reading

Google Workspace Marketplace

Start sending smarter emails today

Install Mailvern from the Google Workspace Marketplace and run your first conditional campaign in under five minutes.

3-day trial on paid plans · Works with Gmail and Google Workspace