How to Send an Email Based on a Cell Value in Google Sheets
GuidesAugust 8, 202614 min read
Learn how to send an email based on a cell value in Google Sheets, including condition-based emails, status changes, reminders, and automated notifications. See the no-code way with Mailvern.
How to Send an Email Based on a Cell Value in Google Sheets
If you keep customer, order, payment, lead, student, or project data in Google Sheets, you may eventually want the spreadsheet to do more than store information.
You may want it to send an email when something happens.
For example:
- Send a payment reminder when
Payment Status = Pending - Email a customer when
Order Status = Shipped - Notify a manager when
Approval = Required - Send a follow-up when
Lead Status = Follow Up - Email an employee when
Task Status = Completed - Send a reminder when a date in a row becomes due
This is commonly searched as "send email based on cell value Google Sheets", "send email when cell value changes", or "Google Sheets email automation."
There are several ways to do it. Google Sheets now has built-in conditional notifications for some accounts, and Apps Script can create more customized automations. But if what you really want is personalized email automation based on spreadsheet conditions, Mailvern provides a simpler workflow without requiring you to build and maintain a script.
What does "send email based on cell value" mean?
The basic idea is simple:
Cell value
↓
Check a condition
↓
Condition is true?
↓
Send email
Imagine a spreadsheet like this:
| Name | Payment Status | |
|---|---|---|
| Aisha | aisha@example.com | Paid |
| Rahul | rahul@example.com | Pending |
| Sara | sara@example.com | Paid |
| Omar | omar@example.com | Pending |
You could create a rule:
Payment Status = Pending
The goal is then:
Rahul → Send payment reminder
Omar → Send payment reminder
Aisha → Skip
Sara → Skip
This is different from a traditional mail merge where every recipient in the list receives the email.
The spreadsheet becomes the decision-making layer.
3 ways to send email from Google Sheets based on a condition
There are three main approaches you are likely to encounter.
1. Google Sheets conditional notifications
Google Sheets has a built-in Conditional notifications feature that can send email notifications when selected cell values change and specified criteria are met. Google says you can choose a column or custom range, add conditions, and specify individual Gmail or Google Workspace recipients. citeturn0search0
2. Google Apps Script
Apps Script lets you write your own automation that reads spreadsheet values and sends email through code.
This provides much more control, but you have to create, test, maintain, and troubleshoot the script.
3. Mailvern
Mailvern is designed for spreadsheet-driven email automation.
Instead of writing a script, you can use your Google Sheet as the source of recipient and business data, create a personalized email, and define the condition that determines which rows should receive it.
For many business workflows, this is the simplest option.
Method 1: Use Google Sheets conditional notifications
If you only need a notification when a cell changes, Google's built-in feature may be enough.
Google currently allows eligible work or school accounts to create conditional notification rules in Google Sheets. You can choose a column or custom range, add conditions such as a value changing to Completed, and choose email recipients. citeturn0search0
Example: notify someone when a task is completed
Suppose your sheet contains:
| Task | Owner | Status |
|---|---|---|
| Design homepage | Ali | In Progress |
| Write article | Sara | In Progress |
| Test website | John | Completed |
You could create a conditional notification for the Status column.
The condition could be:
Status changes to Completed
When the condition is met, the selected recipient receives a notification.
How to set it up
In Google Sheets:
- Open your spreadsheet.
- Go to Tools → Conditional notifications.
- Click Add rule.
- Select the column or range to monitor.
- Add the condition.
- Select the email recipient.
- Save the rule.
Google's documentation also notes that the feature can use a column containing email addresses as the recipient source. citeturn0search0
When this method is useful
Use conditional notifications when you mainly need:
"Tell someone when this spreadsheet value changes."
For example:
Status → Completed
↓
Notify manager
It is a convenient built-in solution.
But there are limitations
Conditional notifications are not the same thing as a full mail merge campaign.
Google currently states that conditional notifications are available only to certain work or school accounts, and they do not support group email addresses or non-Google recipients such as Outlook and Yahoo. citeturn0search0
Google also notes that notifications may not be immediate and that multiple changes can sometimes be consolidated into one email. citeturn0search0
So if your requirement is more like:
"Find every row where Payment Status is Pending, personalize an email for each person, send it through Gmail, and keep track of which rows were processed."
you need something beyond a simple spreadsheet notification.
Method 2: Send an email from Google Sheets with Apps Script
Apps Script is the flexible approach.
You can write a script that:
- Opens the spreadsheet.
- Reads the rows.
- Checks a cell value.
- Finds the recipient's email.
- Builds an email.
- Sends the message.
- Updates the row.
Conceptually, the logic looks like this:
if (paymentStatus === "Pending") {
sendEmail(email, name);
}
A slightly more complete workflow might look like:
Read row
↓
Is Payment Status "Pending"?
↓
Yes ─────────→ Send email
↓
No
↓
Skip row
This is powerful because you can customize almost anything.
But there is a trade-off.
You now have to maintain the automation yourself.
That means dealing with things such as:
- Apps Script permissions
- triggers
- Gmail sending limits
- errors
- duplicate sends
- tracking which rows were already processed
- template management
- changes to spreadsheet columns
- debugging when the automation stops working
For someone comfortable with Apps Script, that may be perfectly reasonable.
For someone who simply wants to automate email from a Google Sheet, it can be more work than necessary.
Method 3: Send conditional emails with Mailvern
If your goal is not just a notification but personalized email automation from Google Sheets, this is where Mailvern fits.
The workflow is:
Google Sheet
↓
Choose your email template
↓
Set a condition
↓
Mailvern finds matching rows
↓
Personalize each email
↓
Send through Gmail
↓
Track sending status
You don't need to write an Apps Script just to express a rule such as:
Payment Status = Pending
Example: Send an email when Payment Status is Pending
Let's use the same spreadsheet:
| Name | Payment Status | |
|---|---|---|
| Aisha | aisha@example.com | Paid |
| Rahul | rahul@example.com | Pending |
| Sara | sara@example.com | Paid |
| Omar | omar@example.com | Pending |
Create a message such as:
Subject: Payment reminder
Hi {{Name}},
Our records show that your payment is still pending.
Please complete your payment at your earliest convenience.
Regards,
Accounts Team
Then define the condition:
Payment Status = Pending
Mailvern evaluates the spreadsheet and sends the personalized email only to the matching rows.
The result is:
Aisha → Skip
Rahul → Send
Sara → Skip
Omar → Send
This is conditional mail merge: your spreadsheet determines who receives the email.
How to send an email when a Google Sheets cell value changes
This is slightly different from checking the current value of every row.
Suppose you have:
| Customer | Status | |
|---|---|---|
| Aisha | aisha@example.com | New |
| Rahul | rahul@example.com | Approved |
| Sara | sara@example.com | Pending |
You may want:
When Status changes to Approved
↓
Send approval email
Google Sheets' conditional notifications are specifically designed for this type of change-based notification. citeturn0search0
If you need a personalized mail merge campaign based on the resulting spreadsheet state, however, a row-based email workflow is usually more useful.
For example:
Status = Approved
AND
Email is not blank
AND
Email Sent is not Yes
Then send the message and record that the row was processed.
This distinction is important:
Change-based automation
Something changed
↓
Notify someone
Condition-based mail merge
Find rows matching a condition
↓
Personalize
↓
Send email
↓
Track the result
They solve related but different problems.
Can you send an email when a Google Sheets condition is met?
Yes.
This is one of the most useful spreadsheet automation patterns.
For example:
Payment = Pending
could trigger a payment reminder.
Or:
Order Status = Shipped
could trigger a shipping notification.
Or:
Approval = Required
could trigger an internal approval request.
Or:
Follow Up = Yes
could trigger a sales follow-up.
The condition can be based on the information already stored in your spreadsheet.
How to send email based on multiple cell values
Real workflows often need more than one condition.
Suppose you have:
| Name | Payment | Account Status | |
|---|---|---|---|
| Aisha | aisha@example.com | Pending | Active |
| Rahul | rahul@example.com | Pending | Cancelled |
| Sara | sara@example.com | Paid | Active |
You might want to send the reminder only when:
Payment = Pending
AND
Account Status = Active
That means:
Aisha → Send
Rahul → Skip
Sara → Skip
This is much safer than simply searching for every row containing Pending.
Multiple conditions let your spreadsheet describe the exact state that deserves an email.
What if the cell is blank?
A common problem is:
"How do I send an email only when a cell contains a value?"
For example:
| Name | Payment Status | |
|---|---|---|
| Aisha | aisha@example.com | Pending |
| Rahul | rahul@example.com | |
| Sara | sara@example.com | Paid |
If the rule is:
Payment Status = Pending
the blank row does not qualify.
You can also use an additional condition such as:
Email is not blank
This prevents your automation from trying to send to incomplete records.
For larger workflows, keeping explicit conditions is usually clearer than putting complex logic inside the email template.
Can Google Sheets send email reminders based on a date?
Date-based automation is another common use case.
For example:
| Customer | Due Date | |
|---|---|---|
| Aisha | aisha@example.com | 2026-08-10 |
| Rahul | rahul@example.com | 2026-08-20 |
| Sara | sara@example.com | 2026-09-01 |
You might want to send:
Payment reminder
when Due Date is approaching
This is different from simply sending an email when someone edits a cell.
A date can become due because time passed, not because someone changed the spreadsheet.
That distinction matters.
Google's conditional notification documentation notes that volatile functions such as TODAY() can cause notification behavior that does not work as expected when the spreadsheet is closed. citeturn0search0
For recurring reminders and scheduled email workflows, you generally want an automation system that can evaluate the data according to a schedule rather than waiting for a manual cell change.
This is another use case where Mailvern's scheduling and automation features can be useful.
Google Sheets notification vs. email automation vs. mail merge
These terms can sound interchangeable, but they aren't.
| What you want | Best fit |
|---|---|
| Know when someone edits the spreadsheet | Google Sheets notifications |
| Notify someone when a value changes | Conditional notifications |
| Write custom spreadsheet automation | Apps Script |
| Send personalized emails to matching rows | Conditional mail merge |
| Send recurring spreadsheet-driven campaigns | Email automation |
| Track which recipients were sent an email | Mail merge/automation tool |
The key question is:
Do you want a notification about the spreadsheet, or do you want the spreadsheet to determine who receives a personalized email?
If it is the second one, you're looking for conditional email automation.
Why use Mailvern instead of writing Apps Script?
Apps Script gives you control, but control also means maintenance.
With Mailvern, the workflow is designed around the problem you're trying to solve:
Spreadsheet → condition → personalized email → Gmail
You can create the email using the built-in editor, use spreadsheet values for personalization, define sending conditions, and keep sending status associated with your spreadsheet workflow.
This is particularly useful for people who know Google Sheets well but don't want to become an Apps Script developer just to send conditional emails.
Practical Google Sheets email automation examples
1. Payment reminders
Payment Status = Pending
→ Send a payment reminder.
2. Order notifications
Order Status = Shipped
→ Send the customer a shipping email.
3. Application approvals
Application Status = Approved
→ Send an approval message.
4. Lead follow-ups
Lead Status = Follow Up
→ Send a personalized follow-up email.
5. Task notifications
Task Status = Completed
→ Notify the relevant person.
6. Renewal reminders
Renewal Status = Due
→ Send a renewal reminder.
7. Student notifications
Result = Published
→ Send the student's result notification.
The pattern is always the same:
Spreadsheet data
↓
Condition
↓
Matching row
↓
Personalized email
How to get started with Mailvern
If your data already lives in Google Sheets, you can start without moving it into a separate email platform.
Step 1: Install Mailvern
Install Mailvern from the Google Workspace Marketplace.
Step 2: Open your spreadsheet
Use the spreadsheet containing your recipients and the information that determines who should receive the email.
Step 3: Create your email
Use Mailvern's editor to create your message and personalize it with spreadsheet fields.
For example:
Hi {{Name}},
Your order {{Order ID}} has been shipped.
Thanks,
Your Team
Step 4: Define your condition
For example:
Order Status = Shipped
Or:
Payment = Pending
AND
Account Status = Active
Step 5: Send
Mailvern evaluates the rows and sends the email to the recipients who match the conditions.
Your spreadsheet remains the source of truth.
Frequently asked questions
Can Google Sheets automatically send an email based on a cell value?
Yes. Google Sheets provides conditional notifications for eligible work or school accounts, and Apps Script can create custom email automations. citeturn0search0
For personalized, row-based conditional mail merge, Mailvern provides another option.
How do I send an email when a cell value changes in Google Sheets?
You can use Google Sheets' Tools → Conditional notifications feature if it is available for your account. You can create a rule based on a cell or column changing and specify recipients. citeturn0search0
How do I send an email based on a cell value in Google Sheets without coding?
For simple change notifications, Google Sheets may provide the built-in conditional notification feature.
For personalized emails sent to rows that match spreadsheet conditions, Mailvern lets you create the workflow without writing Apps Script.
Can I send emails based on multiple conditions?
Yes. A condition can be based on more than one spreadsheet field.
For example:
Payment = Pending
AND
Status = Active
This lets you target a more precise group of recipients.
Can I send an email if a cell is not blank?
Yes. You can make the email rule dependent on a field containing a value and combine it with other conditions.
For example:
Email is not blank
AND
Payment Status = Pending
Can Google Sheets send email reminders based on dates?
Date-based reminders are possible, but they are different from a notification that fires when someone edits a cell. If your reminder depends on time passing, use a scheduled automation rather than relying only on a cell-change trigger.
Can I send personalized emails from Google Sheets?
Yes. A mail merge workflow can use spreadsheet fields such as name, order number, amount, due date, or status to personalize each message.
Mailvern is designed specifically for this Google Sheets → Gmail workflow.
The easiest way to think about Google Sheets email automation
You don't need to think of your spreadsheet as just a table of recipients.
It can describe the current state of your business.
For example:
Payment = Pending
Status = Active
Follow Up = Yes
Your email automation then asks:
Does this row match the condition?
If yes:
Personalize → Send
If no:
Skip
That is the core of condition-based email automation.
And if your goal is to send personalized Gmail messages to the right rows without building the entire automation yourself, Mailvern turns that workflow into a Google Sheets mail merge you can actually manage from your spreadsheet.
