---
title: "WhatsApp from Google Sheets: Send Messages (No Code or API)"
description: "Send WhatsApp messages from Google Sheets with Make or a short API script: sheet layout, safe sending speeds, privacy and Cloud API template rules."
image: https://haber.chat/hubfs/blog-featured-images/whatsapp-google-sheets.jpeg
---

[Skip to content](https://haber.chat/blog/whatsapp-google-sheets#main-content)

[![haber-chat-high-resolution-logo - Copy-1](https://haber.chat/hs-fs/hubfs/haber-chat-high-resolution-logo%20-%20Copy-1.png?width=120&height=117&name=haber-chat-high-resolution-logo%20-%20Copy-1.png "haber-chat-high-resolution-logo - Copy-1")](https://haber.chat/)

[launch your Free Trial](https://haber.chat/signup-gateway)

- [Pricing](https://haber.chat/pricing)
- [Quick start](https://haber.chat/quick-start)
- [Help Center](https://app.haber.chat/help)
- [Reviews and badges](https://haber.chat/blog/whatsapp-google-sheets#reviews)

Open main navigation

Close main navigation

- [Pricing](https://haber.chat/pricing)
- [Quick start](https://haber.chat/quick-start)
- [Help Center](https://app.haber.chat/help)
- [Reviews and badges](https://haber.chat/blog/whatsapp-google-sheets#reviews)

[Follow us on YouTube](https://www.youtube.com/channel/UCzYcDckdCetQtXFxNZ33qNQ) [Follow us on LinkedIn](https://www.linkedin.com/company/haberchat/)

 Nov 12, 2026, 10:00:00 AM

# How to Send WhatsApp Messages From Google Sheets

![Picture of HaberChat Team](https://haber.chat/hs-fs/hubfs/haber-chat-high-resolution-logo%20-%20Copy-1.png?width=50&name=haber-chat-high-resolution-logo%20-%20Copy-1.png) [HaberChat Team](https://haber.chat/blog/author/haberchat-team)

Share: [facebook-f icon](http://www.facebook.com/share.php?u=https://haber.chat/blog/whatsapp-google-sheets) [linkedin-in icon](http://www.linkedin.com/shareArticle?mini=true&url=https://haber.chat/blog/whatsapp-google-sheets) [Twitter icon](https://twitter.com/intent/tweet?url=https://haber.chat/blog/whatsapp-google-sheets) [pinterest-p icon](http://pinterest.com/pin/create/link/?url=https://haber.chat/blog/whatsapp-google-sheets) [envelope icon](mailto:?body=https://haber.chat/blog/whatsapp-google-sheets)

You can send WhatsApp messages from Google Sheets in two ways. The no-code way is an automation tool such as Make: a new row in your sheet triggers a WhatsApp message through HaberChat. The code way is a short script that reads the sheet and sends each row through the HaberChat API. Either way, you put one phone number and one message per row, and HaberChat sends them from your own WhatsApp number at a safe pace.

Use this for messages people expect, such as order updates, appointment reminders or replies to sign-ups. Don't use it for cold bulk messaging. HaberChat details were checked on October 15, 2026.

## Set up the sheet first

Both methods read the same simple layout:

| Phone | Message | Status |
| --- | --- | --- |
| +14155550123 | Hi Dana, your order #1042 has shipped. Reply here if you have any questions. | sent |
| +447700900123 | Hi Sam, a reminder of your appointment tomorrow at 10:00. Reply 1 to confirm or 2 to reschedule. |  |

- **Phone numbers in international format**, with the plus sign and country code, and no spaces or leading zeros. This is the most common reason messages fail.
- **One message per row.** Build personal messages with a formula, such as joining a first name and an order number into one cell.
- **A status column**, so you can see what was sent and never send a row twice.

## Option 1: no code, with Make

HaberChat has an app for Make, the automation platform. You install it from the invitation link in our [Make guide](https://app.haber.chat/help/make).

1. **Create a scenario** in Make and add the Google Sheets module that watches for new rows. Pick your spreadsheet and sheet.
2. **Add the HaberChat module** and choose the Send Message action. Connect it with your HaberChat API key.
3. **Map the fields:** the Phone column to the recipient and the Message column to the text.
4. **Add a Google Sheets "update a row" step** to write "sent" in the Status column.
5. **Run it once** with a test row that has your own number, then turn the scenario on.

From then on, every new row becomes a WhatsApp message. This suits rows that arrive one by one, such as form submissions, new orders or bookings. Our guide uses Google Forms as the trigger, and it works the same way. n8n and Zapier can do the same job if your team already uses them.

## Option 2: a short script and the API

If you'd rather run a list in one go, a script can read the sheet and send each row. Our help center has ready-made [Google Sheets examples](https://app.haber.chat/help/send-google-sheets) in Python, Node.js and PHP. The flow is:

1. Create an API key in your HaberChat dashboard.
2. Give the script access to the sheet's rows.
3. For each row, the script calls HaberChat's send-message endpoint with the phone and message.
4. HaberChat adds each message to your number's queue and delivers it in the background.

**A privacy warning.** The simplest examples read the sheet through Google's "Publish to the web" option as a CSV link. Anyone with that link can open the data. If the sheet holds customer details, use a private connection instead, such as the Google Sheets API with a service account, or the Make option above. Unpublish the sheet when you're done.

The same send endpoint also takes media. You can send a PDF invoice or an image from a public file link in another column.

## How fast messages go out

HaberChat doesn't send a whole list in one burst. Messages wait in your number's queue and go out at your plan's speed: up to 15 messages a minute on Professional, 60 on Business and 150 on Enterprise. You can also set a slower speed in your number's settings.

On a QR connection, slower is safer. For long lists, our tutorials recommend two or three messages a minute. A burst of first messages to people who never contacted you is what makes WhatsApp stop a number from starting new chats, so read [how to avoid getting your number banned](https://haber.chat/blog/avoid-whatsapp-ban) before you run a big list.

## If your number is on the Cloud API

The official API has one extra rule. Outside the 24-hour window after a customer's last message, you can only send pre-approved templates, not free text. Meta charges per delivered message, including replies inside the window since October 1, 2026. Our guide to [WhatsApp API pricing](https://haber.chat/blog/whatsapp-api-pricing) explains the categories.

## A simpler option for one-off lists: campaigns

If you just need to send one message to a list, you may not need Sheets automation at all. HaberChat campaigns let you send one message to a list of contacts from the dashboard. Professional includes 10 campaigns of up to 500 recipients, Business 20 of up to 1,000, and Enterprise 30 of up to 2,000. The same consent rules apply.

## Tips that save trouble

- Send only to people who gave you their number for this purpose, and say who you are in the first line.
- Test with two or three rows, including your own number, before running the whole sheet.
- Track delivery with webhooks or in the dashboard, and write failures back to the sheet.
- Let people reply. The messages come from your normal number, so answers land in your team inbox like any chat.
- If the sheet is fed by your CRM, see [WhatsApp + HubSpot](https://haber.chat/blog/hubspot-whatsapp-integration) for the ways to connect them.

## Frequently asked questions

### Can I send WhatsApp messages from Google Sheets without code?

Yes. In Make, a Google Sheets new-row trigger plus HaberChat's Send Message action sends a WhatsApp message for each new row.

### How many messages per minute can I send from a sheet?

Up to your plan's speed: 15 a minute on Professional, 60 on Business and 150 on Enterprise. For long lists on a QR connection, two or three a minute is safer.

### Do I need the WhatsApp Business API to send from Google Sheets?

No. A number connected by QR code works. On the Cloud API, messages outside the 24-hour window must be approved templates.

### Is it safe to publish my sheet to the web for this?

Only if it holds nothing private, because anyone with the link can open it. For customer data, use a private connection such as Make or the Google Sheets API.

## Try HaberChat free for 7 days

No credit card needed. Connect your number, create an API key and send your first message from a sheet. [**Start your free trial**](https://haber.chat/signup-gateway) or [compare plans](https://haber.chat/pricing).

---

# Please review us

- [![Capterra](https://haber.chat/hubfs/Capterra_idklDhE-0H_1.svg)](https://www.capterra.com/p/10021255/Haber-Chat/)
- [![GetApp](https://haber.chat/hs-fs/hubfs/getapp-logo-freelogovectors.net_-400x74.png?width=400&height=74&name=getapp-logo-freelogovectors.net_-400x74.png)](https://www.getapp.com/customer-service-support-software/a/haber-chat/)
- [![Trustpilot](https://haber.chat/hubfs/trustpilot-1.svg)](https://www.trustpilot.com/review/haber.chat)
- [![SourceForge](https://haber.chat/hubfs/SourceForge_idm9sDiPJq_1.svg)](https://sourceforge.net/software/product/Haber-Chat/)
- [![Slashdot](https://haber.chat/hubfs/slashdot-wordmark-1%20(1).svg)](https://slashdot.org/software/p/Haber-Chat/?pk_campaign=badge&pk_source=vendor)
- [![G2](https://haber.chat/hubfs/G2_idHMZFC-AU_1.svg)](https://www.g2.com/products/haberchat/reviews)
- [![Google my business reviews](https://haber.chat/hs-fs/hubfs/6293833130fb025780ee2967.png?width=800&height=450&name=6293833130fb025780ee2967.png)](https://g.page/r/CROTBwVmm03HEAI/review)
- [![Product Hunt](https://haber.chat/hs-fs/hubfs/Product%20Hunt.png?width=3085&height=556&name=Product%20Hunt.png)](https://www.producthunt.com/posts/haber-chat)
- [![Clutch](https://haber.chat/hs-fs/hubfs/clutch-co-vector-logo.png?width=900&height=500&name=clutch-co-vector-logo.png)](https://review.clutch.co/review?provider_id=ba7679d6-8470-47c0-8401-dc0c8fdda76d)

---

# Security scanned by

- [![Norton Site Seal](https://haber.chat/hs-fs/hubfs/Imported%20sitepage%20images/nortonsiteseal_exlg.png?width=259&height=139&name=nortonsiteseal_exlg.png)](https://safeweb.norton.com/report?url=haber.chat)
- [![Google Safe Browsing](https://haber.chat/hs-fs/hubfs/Google%20Safe%20Browsing.webp?width=585&height=210&name=Google%20Safe%20Browsing.webp)](https://transparencyreport.google.com/safe-browsing/search?url=haber.chat&hl=en)
- [![SSL Trust](https://haber.chat/hubfs/ssltrust-logo.svg)](https://www.ssltrust.com.au/security-report?domain=haber.chat)
- [![WOT](https://haber.chat/hs-fs/hubfs/WOT.png?width=292&height=128&name=WOT.png)](https://www.mywot.com/scorecard/haber.chat?wot_badge=1_white)
- [![Immuniweb](https://haber.chat/hubfs/logo-immuniweb.svg)](https://www.immuniweb.com/websec/haber.chat/1kTKMjXf/)
- [![SiteLock](https://haber.chat/hubfs/sitelock%20logo.svg)](https://www.sitelock.com/free-website-scan/?domain=haber.chat)
- [![Sucuri](https://haber.chat/hubfs/Sucuri.svg)](https://sitecheck.sucuri.net/results/haber.chat)
- [![Experte.com](https://haber.chat/hubfs/experte-com-logo.avif)](https://www.experte.com/security-check?d=haber.chat)
- [![Kaspersky](https://haber.chat/hs-fs/hubfs/web-logo-kaspersky.png?width=595&height=148&name=web-logo-kaspersky.png)](https://opentip.kaspersky.com/haber.chat/)

---

- [Home](https://haber.chat)
- [Terms and conditions](https://haber.chat/terms)
- [Privacy policy](https://haber.chat/privacy)
- [Help center](https://app.haber.chat/help)
- [Blog](https://haber.chat/blog)

Copyright © 2024, Haber.chat

Disclaimer: HaberChat is an independent platform and is not affiliated with, endorsed by, or an official solution for Meta Platforms, Inc., WhatsApp LLC, or any of their related companies.

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "HaberChat Team",
    "url" : "https://haber.chat/blog/author/haberchat-team"
  },
  "dateModified" : "2026-11-12T08:00:02.024Z",
  "datePublished" : "2026-11-12T08:00:00.000Z",
  "headline" : "WhatsApp from Google Sheets: Send Messages (No Code or API)",
  "image" : [ "https://haber.chat/hubfs/blog-featured-images/whatsapp-google-sheets.jpeg" ],
  "mainEntityOfPage" : {
    "@id" : "https://haber.chat/blog/whatsapp-google-sheets",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://haber.chat/hubfs/haber-chat-high-resolution-logo-cropped.png"
    }
  }
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "FAQPage",
  "mainEntity" : [ {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Yes. In Make, a Google Sheets new-row trigger plus HaberChat's Send Message action sends a WhatsApp message for each new row."
    },
    "name" : "Can I send WhatsApp messages from Google Sheets without code?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Up to your plan's speed: 15 a minute on Professional, 60 on Business and 150 on Enterprise. For long lists on a QR connection, two or three a minute is safer."
    },
    "name" : "How many messages per minute can I send from a sheet?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "No. A number connected by QR code works. On the Cloud API, messages outside the 24-hour window must be approved templates."
    },
    "name" : "Do I need the WhatsApp Business API to send from Google Sheets?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Only if it holds nothing private, because anyone with the link can open it. For customer data, use a private connection such as Make or the Google Sheets API."
    },
    "name" : "Is it safe to publish my sheet to the web for this?"
  } ]
}
```