How to Send WhatsApp Messages from Excel or Google Sheets
Message the rows of a spreadsheet on WhatsApp: personalise every message from the columns, give each row its own attachment, and import rows as CRM contacts.
Your customer list is already in a spreadsheet. The usual way to message it is to export a CSV, upload it somewhere, map the columns again and hope nothing shifted. Most teams give up and paste messages one at a time.
There is a better way: send WhatsApp messages from the spreadsheet itself. This guide covers how to message the rows of a Google Sheet or an Excel workbook, personalise every message from the columns, and import those rows as CRM contacts.
What you can do from a spreadsheet
- Pick the phone-number column and message selected rows or every row.
- Map columns to template variables, so
{{1}}becomes each row's own name and{{2}}their own order number. - Personalise the header too: a text header's variable maps to a column, and an image, video or document header can take its file from a column, so every recipient gets their own invoice or picture.
- Map a link button to a column, so each recipient's button opens their own URL, such as their tracking page.
- Send free-form text, image or document messages to people who messaged you in the last 24 hours.
- Bulk-import rows as CRM contacts, mapping columns to contact fields.
Every send is logged in your dashboard, in Live Chat and in Sent History, exactly like any other message.
Google Sheets or Excel?
| Google Sheets add-on | Excel add-in | |
|---|---|---|
| Where it runs | Sheets in the browser | Excel on Windows, Mac and the web |
| Install | Apps Script, from inside the sheet | Upload a manifest file once |
| Roll out to a team | Install to your account from the Apps Script editor | A Microsoft 365 admin can deploy it to everyone |
Both do the same job. Use whichever your team already works in.
Before you start
- A MotherBot account with a connected WhatsApp Business number.
- A plan that includes the Google Sheets and Excel integration.
- An approved WhatsApp template, if you're messaging people who haven't written to you in the last 24 hours.
How to send WhatsApp messages from Google Sheets
- Generate an access token. In the dashboard, open Integrations โ Google Sheets & Excel and click Connect. Copy the
sext_token shown. It is displayed only once, and you can rotate it any time from the same card. - Install the add-on. Open your sheet, go to Extensions โ Apps Script, and create the two files shown on the integration card,
Code.gsandSidebar.html, pasting in the code from each. Save.
Do this from inside the sheet. A script created at script.google.com has no sheet attached, so it can't read your rows and the menu never appears.
- Open the add-on. Reload the spreadsheet, then choose Extensions โ MotherBot WhatsApp โ Open. On the "Google hasn't verified this app" screen, choose Advanced โ Go to (project) โ Allow.
- Connect. Paste your
sext_token in the sidebar and click Connect. - Select rows and map columns. Select rows (or pick All), choose the phone-number column, pick a template, and map each variable to a column.
- Send. You get a live summary of sent, failed and skipped rows.
To use the add-on in every spreadsheet rather than one, open the Apps Script editor and choose Deploy โ Test deployments โ Install.
How to send WhatsApp messages from Excel
- Generate the same `sext_` access token from Integrations โ Google Sheets & Excel.
- Install the add-in. Download
manifest.xmlfrom the integration card. In Excel on the desktop go to Home โ Add-ins โ More Add-ins โ My Add-ins โ Upload My Add-in; in Excel on the web, Insert โ Office Add-ins โ Upload My Add-in. Pick the file. - Open the task pane. A MotherBot โ WhatsApp button appears on the Home ribbon.
- Connect, map and send, exactly as in Sheets.
The task pane is hosted by MotherBot, so the same manifest works for everyone. You're identified by your token, not by the file, which makes it safe to share with your team. A Microsoft 365 admin can push it to everyone under Integrated apps โ Upload custom apps.
A worked example
Your sheet:
| Name | City | Phone | Invoice PDF |
|---|---|---|---|
| Amit | Delhi | 9898989898 | https://cdn.you.com/inv/amit.pdf |
| Priya | Mumbai | 9812345678 | https://cdn.you.com/inv/priya.pdf |
Template body: Hi {{1}}, your {{2}} order is ready! with a document header.
Map {{1}} to Name, {{2}} to City, and the header to From a column โ Invoice PDF. Amit gets his invoice with his own message, Priya gets hers. One click, two personalised messages.
The rules worth knowing
- Free-form messages only reach people who messaged you in the last 24 hours. Rows outside that window are reported as skipped. To reach everyone else, use an approved template.
- Template messages are charged per message by Meta. Marketing costs the most, utility much less. Current rates are on the WhatsApp pricing page.
- Numbers need a country code. Store them in full international form to avoid failed rows.
- Ask permission before bulk sending. Messaging people who never opted in gets your number reported and its quality rating cut, which limits how many messages you can send. See number health.
Spreadsheet or broadcast?
The spreadsheet add-on suits a one-off list that already lives in a sheet, such as a partner's lead list or this month's invoices. For repeatable sends to your own contacts, a broadcast is better: it handles segments, scheduling, opt-outs and per-message reporting. Both send through the same WhatsApp number.
Frequently asked questions
Can I send WhatsApp messages directly from Excel?
Yes. The MotherBot Excel add-in adds a task pane to Excel on Windows, Mac and the web. Pick the phone-number column, map the other columns to template variables, and message selected rows or all of them.
Can I send WhatsApp messages from Google Sheets without code?
Yes. You paste two files into Apps Script once during setup, then everything happens in a sidebar. No coding is involved.
Can each row get its own attachment?
Yes. Put a file link in a column and set the template's image, video or document header to From a column. Each recipient receives their own file, such as their invoice.
Why were some rows skipped?
Free-form messages can only be sent to people who messaged you in the last 24 hours, so rows outside that window are skipped. Rows with an invalid or missing number are also reported.
Can I import spreadsheet rows as contacts?
Yes. The same sidebar bulk-imports rows as CRM contacts, mapping columns to contact fields, creating or updating in one step.
Is there a limit on how many rows I can message?
Sending limits come from WhatsApp, not the spreadsheet. Meta sets a messaging limit per number based on quality and verification, and it rises as you send good-quality messages.
Get started
See the Google Sheets and Excel integration, or the setup docs for Google Sheets and Excel.
Tags