Tool Handshake

How to Get Google Sheets Alerts on WhatsApp (Free Method With Apps Script)

Get Google Sheets alerts on WhatsApp for free: an Apps Script trigger plus the WhatsApp Cloud API. Steps, code, limits and costs as of October 2026.

By Archit Tamrakar · · 8 min read

Google Sheets cannot message WhatsApp on its own, but a short Apps Script plus Meta's WhatsApp Cloud API can. The script watches for a cell change and sends you a message. It costs nothing in Apps Script, and non-template WhatsApp messages are free inside a 24-hour window.

Quick answer: Use an Apps Script installable edit trigger that calls the WhatsApp Cloud API. Free? Yes for small use (template messages outside the 24-hour window are billed). Time: about 30 minutes.

What do you need before you start?

You need four things, all free to create:

  • A Google account and a Google Sheet with a column you want to watch (for example a Status column).
  • A Facebook account or managed Meta account, registered as a developer.
  • A phone with WhatsApp to receive the alerts.
  • Permission from every person who will get alerts. Meta requires opt-in before a business messages anyone.

Can Google Sheets send alerts to WhatsApp without code?

Not natively. Google's own feature, Conditional notifications, sends email, not WhatsApp. Google's help page says it is "only available to certain work or school accounts". It also does not support group addresses or non-Google recipients such as Outlook and Yahoo.

For WhatsApp you have two options: write a small script (Method 1) or use an automation tool (Method 2).

How do you get Google Sheets alerts on WhatsApp? (Method 1: Apps Script, free)

This method sends a WhatsApp message when a cell in your Status column changes to a value you choose. It has three parts: a Meta app, a script, and a trigger.

Part A: Set up the WhatsApp Cloud API

  1. Go to the Meta App Dashboard and click Create App.
  2. Enter an app name and your email.
  3. Select Connect with customers through WhatsApp and click Next.
  4. Select or create a business portfolio, then click Create app.
  5. On the Quickstart screen, click Start using the API. This opens the API Setup page.
  6. Pick a WhatsApp Business account from the dropdown, or click Create a WhatsApp Business account.
  7. Click Generate access token.
  8. Choose a From number, enter your own WhatsApp number as To, and click Send message.
  9. On your phone, reply to the message you receive. Meta says this opens a 24-hour customer service window, which lets the script send free-form text.
  10. Copy the phone number ID and the WhatsApp Business account ID shown on the page.

The token from step 7 is temporary. Meta says it "expires quickly and is not suitable for development purposes". For a lasting setup, make a permanent token:

  1. Open Business Settings and click System users.
  2. Click Add+ and create a system user.
  3. Select the user and click Assign Assets.
  4. Select your app, toggle Manage app under Full control, and do the same for your WhatsApp account with Manage WhatsApp Business accounts.
  5. Click Assign assets, then Generate token.
  6. Add the permissions business_management, whatsapp_business_messaging and whatsapp_business_management.
  7. Copy the token and store it somewhere private.

Part B: Add the script to your Sheet

  1. Open your Google Sheet.
  2. Click Extensions > Apps Script.
  3. Delete the sample code and paste the script below.
  4. In the left sidebar, click Project Settings.
  5. Under Script Properties, click Add script property. Add three properties: WA_TOKEN (your access token), WA_PHONE_NUMBER_ID (the phone number ID) and WA_TO (your number with plus sign and country code, for example +16505551234).
  6. Click Save script properties.

Google's properties guide describes this menu path. Script properties are shared by all users of the script, so do not share the script with people who should not see the token.

// Sends a WhatsApp text message when a watched cell changes to a chosen value.
// Setup: add WA_TOKEN, WA_PHONE_NUMBER_ID and WA_TO in Project Settings > Script Properties.

const SHEET_NAME = 'Sheet1';     // the tab to watch
const WATCH_COLUMN = 3;          // column C = 3
const TRIGGER_VALUE = 'Urgent';  // send an alert when the cell becomes this
const API_VERSION = 'v25.0';

function sendWhatsAppAlert(e) {
  const range = e.range;
  const sheet = range.getSheet();
  if (sheet.getName() !== SHEET_NAME) return;
  if (range.getColumn() !== WATCH_COLUMN) return;
  if (e.value !== TRIGGER_VALUE) return;  // e.value exists only for single-cell edits

  const row = range.getRow();
  const item = sheet.getRange(row, 1).getValue();  // column A = item name
  const body = 'Sheet alert: "' + item + '" (row ' + row + ') is now ' + e.value + '.';

  const props = PropertiesService.getScriptProperties();
  const url = 'https://graph.facebook.com/' + API_VERSION + '/' +
    props.getProperty('WA_PHONE_NUMBER_ID') + '/messages';

  const payload = {
    messaging_product: 'whatsapp',
    recipient_type: 'individual',
    to: props.getProperty('WA_TO'),
    type: 'text',
    text: { body: body }
  };

  const response = UrlFetchApp.fetch(url, {
    method: 'post',
    contentType: 'application/json',
    headers: { Authorization: 'Bearer ' + props.getProperty('WA_TOKEN') },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  });

  console.log(response.getResponseCode() + ' ' + response.getContentText());
}

Change SHEET_NAME, WATCH_COLUMN and TRIGGER_VALUE to match your sheet. The e.range and e.value fields come from the Sheets edit event object. Google notes value is only available when the edited range is a single cell.

Part C: Create the trigger

You must use an installable trigger, not a function named onEdit. Google says simple triggers "can't access services that require authorization", and sending a web request needs authorization.

  1. In the Apps Script editor, click Triggers (the alarm clock icon) in the left sidebar.
  2. Click Add Trigger at the bottom right.
  3. Choose sendWhatsAppAlert as the function to run.
  4. Set the event source to the spreadsheet and the event type to edit. Verify this step: the dropdown labels may differ from this wording.
  5. Click Save and approve the permission prompt.
  6. Change a cell in your watched column to your trigger value. A WhatsApp message should arrive within seconds.

The steps follow Google's installable triggers guide. If nothing arrives, click Executions in the sidebar and read the logged response.

Method 2: How do you do it with Zapier or Make?

Both tools connect a Sheets row to a WhatsApp message without code. They still use Meta's WhatsApp Business account behind the scenes, so the setup in Part A applies.

  • Zapier: its Sheets and WhatsApp Business page lists the Google Sheets triggers New Spreadsheet Row and Updated Spreadsheet Row. WhatsApp Business actions include Send Freeform Message and Send Template Message. Zapier states freeform messages can only be sent within 24 hours of the recipient's last message.
  • Make: its WhatsApp Business Cloud app has Send a Message and Send a Template Message modules. Make says new users get a free account.

The general flow is: pick a Google Sheets trigger, add a WhatsApp send action, map the cells into the message, then turn the scenario on. Exact screens differ by tool and plan, so follow each tool's own setup prompts.

What if you need alerts outside the 24-hour window?

Use an approved template. Meta says template messages are the only type that can be sent outside a customer service window. A template must have the status APPROVED first, and Meta says review can take up to 24 hours.

Create the template in your WhatsApp Business account. Verify this step: the exact menu names in WhatsApp Manager may differ from what you see. Then replace the payload in the script with the format Meta documents for template messages:

const payload = {
  messaging_product: 'whatsapp',
  recipient_type: 'individual',
  to: props.getProperty('WA_TO'),
  type: 'template',
  template: {
    name: 'sheet_alert',           // your approved template name
    language: { code: 'en_US' },
    components: [
      { type: 'body',
        parameters: [ { type: 'text', text: body } ] }
    ]
  }
};

The template body must contain one placeholder for the body value. Template names use lowercase letters, numbers and underscores.

Which method should you choose?

MethodCostDifficultyLimitsBest for
Apps Script + Cloud APIScript free; templates billed per delivered messageMedium (paste code)Apps Script quotas; 24-hour window for free textOne sheet, full control
ZapierCheck Zapier's current plansEasyTask limits set by plan; same Meta rulesNon-coders already on Zapier
MakeFree account for new users; check plan limitsEasy to mediumOperation limits set by plan; same Meta rulesMulti-step flows
Conditional notifications (email only)FreeEasyCertain work or school accounts; no WhatsAppEmail alerts to Google users

What's free and what costs money?

As of 12 October 2026, Meta's pricing page says:

  • Meta charges per message since 1 July 2025, and only when a template message is delivered.
  • All non-template messages are free. They can only be sent inside an open customer service window.
  • Utility templates delivered inside an open customer service window are free.
  • Templates fall into Marketing, Utility and Authentication. The rate depends on the category and the recipient's country calling code.
  • The current rate cards are effective 1 July 2026. Meta can change prices only on the first day of January, April, July or October.

Check your country's rate on that page's rate cards. On the Google side, the Apps Script quotas page lists 20,000 URL Fetch calls per day for consumer accounts and 100,000 for Workspace accounts. Google says quotas can change without notice.

What can go wrong, and how do you fix it?

ProblemLikely causeFix
Nothing arrives and the log shows an errorMessage sent outside the 24-hour windowReply to the test message to reopen it, or switch to an approved template
Authentication error in the logTemporary token expiredCreate the permanent system user token from Part A
Message goes to the wrong numberPhone number missing the plus signWrite numbers as +, country code, number. Meta says that without the plus sign your own business number's country code is prepended
Script never runsYou used onEdit instead of an installable triggerCreate the trigger under Triggers > Add Trigger
Script ignores pasted rangese.value only exists for single-cell editsEdit one cell at a time, or read the range with e.range.getValues()
Template send failsTemplate not yet APPROVEDWait for review (up to 24 hours per Meta) and check its status

Meta also says a successful API response only means the request was accepted, not that the message was delivered. Delivery status arrives through webhooks.

Is this allowed?

Yes, when you use Meta's official WhatsApp Business Platform. Do not use unofficial tools that automate a personal WhatsApp account, because that breaks WhatsApp's rules and risks a ban.

Meta's opt-in policy has three requirements: state clearly that a person is opting in, name the business, and comply with applicable law. Honor opt-out requests. Meta says it rate limits businesses whose message quality is low for a sustained period. Only message people who agreed to hear from you, even when the alert is internal.

Last checked: 12 October 2026.

Frequently asked questions

Can Google Sheets send WhatsApp messages by itself?

No. Google Sheets has no built-in WhatsApp feature. Its own Conditional notifications feature sends email only, and only on certain work or school accounts. To reach WhatsApp you need a script or an automation tool that calls the WhatsApp Business Platform, which Meta provides as the Cloud API.

Is it free to send Google Sheets alerts to WhatsApp?

Often yes for small use. Per Meta's pricing page, non-template messages are free, but they can only be sent inside a 24-hour customer service window. Template messages are billed per delivered message, with the rate set by category and country. Apps Script itself costs nothing on a regular Google account.

Why does my WhatsApp alert not arrive?

The most common causes are a message sent outside the 24-hour window without a template, a phone number missing its plus sign and country code, an expired temporary token, or a template that is not yet approved. Check the response body in the Apps Script Executions log.

Do I need the person's permission to message them?

Yes. Meta's policy says businesses must get opt-in before messaging people on WhatsApp. The opt-in must say the person agrees to receive messages and must name the business. Alerts to your own number still need that number to be set up as a recipient.

Can I use Zapier or Make instead of code?

Yes. Zapier lists WhatsApp Business actions including Send Template Message, and Make has Send a Message and Send a Template Message modules. Both can start from a new or updated Google Sheets row. The same Meta rules on windows, templates and opt-in still apply.

How many alerts can Apps Script send per day?

Google's quotas page lists 20,000 URL Fetch calls per day for consumer accounts and 100,000 for Google Workspace accounts, as of the page update on 3 September 2026. Google says quotas can change without notice.

Sources

  1. Use conditional notifications, Google Docs Editors Help (2026-10-12)
  2. WhatsApp Cloud API Get Started, Meta for Developers (2026-10-12)
  3. Service messages (send messages), Meta for Developers (2026-10-12)
  4. Templates overview, Meta for Developers (2026-10-12)
  5. Pricing on the WhatsApp Business Platform, Meta for Developers (2026-10-12)
  6. Getting opt-in, Meta for Developers (2026-10-12)
  7. Quotas for Google Services, Google for Developers (2026-09-03)
  8. Properties Service guide, Google for Developers (2026-09-03)
  9. Simple triggers, Google for Developers (2026-09-03)
  10. Installable triggers, Google for Developers (2026-09-03)
  11. Event objects, Google for Developers (2026-09-03)
  12. Class UrlFetchApp, Google for Developers (2026-05-15)
  13. Google Sheets WhatsApp Business integrations, Zapier (2026-10-12)
  14. WhatsApp Business Cloud integrations, Make (2026-10-12)