Free Sheets Alerts

How to send an email when a cell changes in Google Sheets (free)

Google Sheets has a built-in Tools → Notification settings → Edit notifications, and for some jobs it’s enough. But it only emails you, about any change, in Google’s wording. It can’t say “email the requester when their request is approved” or “email the buyer when stock drops below 5”.

This guide sets up those alerts with Sheets Alerts, a free, MIT-licensed Apps Script.

Step 1: Add the script

  1. Open your sheet and go to Extensions → Apps Script.
  2. Replace the contents of Code.gs with this Code.gs.

Step 2: Write your alerts

At the top of the script is an ALERTS list. Each alert says: on this tab, when this column changes in this way, email these people this message.

const ALERTS = [
  { tab: 'Requests', column: 'D', when: 'equals:Approved', to: 'E',
    subject: 'Your request "{{Item}}" was approved',
    message: 'Hi {{Name}},\n\nYour request for {{Item}} was approved.\n\nSee the sheet: {{Link}}' },
];
Condition Emails when the cell…
any changes at all
equals:Approved becomes “Approved” (any capitalization)
contains:urgent starts containing “urgent”
checked is ticked
above:100 / below:5 goes above 100 / below 5
blank is emptied

Alerts fire when the condition becomes true. Changing an Approved request’s other columns, or re-typing “Approved”, doesn’t send it again.

Click Save.

Step 3: Turn it on

Reload the sheet, then 🔔 Alerts → Turn On. Approve Google’s prompt (“Google hasn’t verified this app” → Advanced → Go to (your project name) → Allow). It’s your own script, and emails go out from your Gmail.

Test it: change a cell so the condition becomes true, and check the inbox.

Recipes

// Low stock: email purchasing when quantity (column C) drops below 5
{ tab: 'Stock', column: 'C', when: 'below:5', to: 'purchasing@example.com',
  subject: 'Low stock: {{Product}}', message: '{{Product}} is down to {{New Value}}. {{Link}}' },

// New urgent ticket: email the team when Priority (column B) is set to Urgent
{ tab: 'Tickets', column: 'B', when: 'equals:Urgent', to: 'team@example.com',
  subject: 'Urgent: {{Title}}', message: '{{Editor}} marked "{{Title}}" urgent. {{Link}}' },

// Ticked "Notify client" checkbox in column H: email the client in column F
{ tab: 'Projects', column: 'H', when: 'checked', to: 'F',
  subject: 'Update on {{Project}}', message: 'Hi {{Client}},\n\n{{Latest update}}\n\nThanks!' },

FAQ

Who is the email from? From your Gmail account, whoever edited the sheet. It counts against Google’s daily sending limit for scripts (about 100 recipients a day on a free account).

Does it work when other people edit? Yes, for everyone who can edit the sheet. Edits by people outside your Google Workspace organization show a blank {{Editor}}, because Google keeps their address private.

Does it fire for Google Form responses or formulas? No, only for cells people edit by hand, one cell at a time.

How do I stop it? 🔔 Alerts → Turn Off.


Get the script on GitHub · More free Google Sheets scripts