Guide · Updated October 2026

Send WhatsApp Messages from Google Sheets

Your customer list is already in a Google Sheet. Here are three ways to send them WhatsApp messages from it — from a free formula to reminders that go out on their own — with the good and bad side of each.

By Rajesh Kumar, Google Sheets & Apps Script developer

The 3 ways in short

MethodCostSends on its own?Best for
WhatsApp links (formula)FreeNo — you press Send for each rowA few messages a day
Paid sending service + scriptMonthly feeYes — fully automaticReminders and updates to your customers
WhatsApp's own Business APICharged per message by MetaYes — fully automaticMany messages, with your business name shown

1. Free: WhatsApp links with a formula

A link like wa.me/919876543210 opens a WhatsApp chat with that number. Put the phone number in column B and your message in column C. Then paste this in D2 and drag it down:

=HYPERLINK("https://wa.me/"&B2&"?text="&ENCODEURL(C2), "Send")

Each row gets a Send link. Click it and WhatsApp opens with the message already typed. You still press send yourself, so it is free and safe — but it does not send on its own.

Tip: add the customer's name to the message, for example ="Hi "&A2&", your payment of ₹"&E2&" is due today."

2. Sends on its own: a paid service + Apps Script

Services like Maytapi and Ultramsg connect to your WhatsApp number (the same way WhatsApp Web does). A short Apps Script then reads your Sheet and sends each message on its own — at a set time, or as soon as a new row or form entry comes in.

A short example with Ultramsg:

// Sheet columns: A Name | B Phone (with country code) | C Message | D Status
function sendWhatsApp() {
  const props = PropertiesService.getScriptProperties();
  const instance = props.getProperty('ULTRAMSG_INSTANCE'); // from your provider
  const token = props.getProperty('ULTRAMSG_TOKEN');
  const sheet = SpreadsheetApp.getActiveSheet();
  const rows = sheet.getDataRange().getValues();

  for (let i = 1; i < rows.length; i++) {
    const [name, phone, message, status] = rows[i];
    if (!phone || status) continue; // empty or already sent

    const res = UrlFetchApp.fetch(
      'https://api.ultramsg.com/' + instance + '/messages/chat',
      {
        method: 'post',
        payload: { token: token, to: String(phone), body: message.replace('{name}', name) },
        muteHttpExceptions: true,
      }
    );
    sheet.getRange(i + 1, 4).setValue(res.getResponseCode() === 200 ? 'Sent' : 'Failed');
    Utilities.sleep(3000); // gap between messages
  }
}
  • Keep your Ultramsg ID and password (token) in Project Settings → Script properties, not inside the Sheet.
  • To make it run by itself, add a trigger (Triggers → Add trigger) — every day, every hour, or when a form is filled.
  • Each service works a little differently — check its help page for the exact details.

Know the risk: these services are not made by WhatsApp. For reminders to your own customers they work well. If you send to strangers, WhatsApp can block your number.

3. Safest: WhatsApp's own Business API

WhatsApp (Meta) has its own Business API. It is the safest choice if you send many messages. You prove your business to Meta, get your message formats approved, and pay for each message — the price depends on the country and the type of message. Apps Script can use it from Google Sheets in the same way. It takes longer to set up, but your business name is shown and there is no risk of the connection breaking.

What businesses use it for

  • Payment and fee reminders on the due date
  • Order, dispatch and delivery updates
  • A quick reply when someone fills your Google Form
  • Appointment and booking reminders
  • Sending the PDF bill or receipt as soon as it is made
  • Offers to customers who agreed to get them

Free template and video

Video: WhatsApp bulk message sender in Google Sheets

My WhatsApp Bulk Sender is a ready-made Google Sheet with the script already inside. Make your own copy, follow the video, and send your first messages today.

Make a Free Copy →

Tips to keep your number safe

  • Message only people who gave you their number and want your messages.
  • Use their name and real details — the same message to everyone looks like spam.
  • Wait a few seconds between messages instead of sending hundreds at once.
  • Write numbers with the country code and no + or spaces (919876543210).
  • Keep a Status column so a message is never sent twice.

Frequently asked questions

Can I send WhatsApp messages from Google Sheets for free?

Yes, with WhatsApp links. A formula turns each row into a link that opens WhatsApp with the message already typed — you just press send. If you want messages to go out on their own, you need a paid service, which costs a monthly or per-message fee.

Do the numbers need to be saved in my phone?

No. Both ways work with any WhatsApp number, as long as you write it with the country code (for example 919876543210 for India or 14155550123 for the US).

Will my WhatsApp number get banned?

It can, if you send many messages to people who did not ask for them. Message only customers who gave you their number, use their name, wait a little between messages, and stop if people complain. For a lot of messages, WhatsApp's own Business API is the safest way.

Can it send PDFs, invoices or images?

Yes. These services can send files and photos, so a script can make a PDF bill from your Sheet and send it on WhatsApp in the same step.

Do I need to know coding?

Not for the free way — it is one formula. Sending on its own needs a small Apps Script. You can copy the example on this page, start from my free template, or ask me to set it up for you.

Contact Me

Tell me your work problem

Tell me what work your team does by hand today. I will tell you honestly how it can be made easier. No cost, no pressure.

+91