Disclosure: WhatssAI is built by the same team that publishes this site. We say so before the comparison, not after.
Key takeaways
- Format phone numbers in E.164 (country code, no spaces) or messages will fail silently—the most common setup mistake.
- Make’s free tier covers about 500 messages per month; self-hosted n8n is unlimited but requires a server.
- WhatsApp’s Business API starts at 1,000 conversations per day and scales to 100,000 based on your compliance history.
- Use a Status column in your sheet to track sent messages and avoid duplicates when re-running the automation.
- Third-party gateways like 360dialog or Twilio are required—consumer WhatsApp accounts cannot be automated under any circumstances.
You can send WhatsApp messages to a Google Sheets contact list using Make, n8n, or the WhatsApp Business API connected to your spreadsheet. Make’s free tier handles up to 500 messages per month with a visual interface; n8n self-hosted is unlimited but requires server setup; the official API scales to thousands of messages per day but needs a Facebook Business Manager account and takes several days to approve.
The hard part is formatting phone numbers in E.164 (country code, no spaces) and picking a tool that fits your volume without burning your budget on per-message fees or hitting rate limits that queue half your sends.
5 requirements before you start
- A Google Sheets spreadsheet with at least two columns: phone numbers and message content or variables
- Phone numbers in E.164 format: country code, no spaces, no parentheses (example: +14155552671 for a US number, +33612345678 for France)
- A WhatsApp Business account or access to the WhatsApp Business API (the consumer app cannot be automated under WhatsApp’s terms)
- An automation platform account: n8n (self-hosted or cloud), Make (formerly Integromat), or a third-party gateway like Twilio or 360dialog
- About 30 minutes for initial setup, less for subsequent campaigns
Build your Google Sheets template
Open a new Google Sheet. Create these columns in row 1:
| Column | Purpose | Example |
|---|---|---|
| A: Phone | Full international number | +14155552671 |
| B: Name | First name for personalization | Jordan |
| C: Variable_1 | Order number, appointment time, or custom field | ORD-8821 |
| D: Message | Template with placeholders | Hi {{Name}}, your order {{Variable_1}} ships tomorrow. |
| E: Status | Sent / Failed / Pending (updated by automation) | Pending |
Fill rows 2 onward with your contacts. The Phone column must start with a plus sign and the country code. No dashes, dots, or spaces—WhatsApp’s API rejects them. If you have US numbers stored as (415) 555-2671, use Find and Replace to strip the formatting, then prepend +1.
The Message column can use double curly braces as placeholders: {{Name}}, {{Variable_1}}. Your automation tool will swap these with the values from columns B and C before sending.
3 automation tools compared by volume and budget
Three paths exist, each with a trade-off:
n8n (self-hosted free, cloud $20/month as of September 2026)
Best for: 100–5,000 messages per month, technical users comfortable with a node-based workflow editor.
Pros: One-time setup, unlimited executions on the self-hosted version, integrates with Google Sheets and WhatsApp Business API or third-party gateways like Twilio.
Cons: Self-hosting requires you to maintain a VPS or local Docker instance, handle security patches, and monitor uptime—expect at least an hour per month on server admin. The cloud version removes that burden but caps you at 5,000 workflow executions per month on the $20 tier, which runs out fast if you poll your sheet every five minutes. WhatsApp Business API access demands a Facebook Business Manager setup that can take three to five business days for Meta to verify, and if your business name or documentation has any inconsistency, you’ll get rejected and have to reapply.
Make (formerly Integromat, free tier: 1,000 operations/month as of September 2026)
Best for: 10–1,000 messages per month, non-coders who want a visual interface.
Pros: Drag-and-drop modules for Google Sheets and WhatsApp, built-in error handling, no server to manage.
Cons: The free tier’s 1,000 operations disappear in 500 messages because each row read plus each message sent counts as two operations, so you hit the limit mid-month if you’re doing any kind of regular campaign. The $9/month Core plan gives you 10,000 operations, but that still caps you at 5,000 messages—fine for a small business, painful if you’re scaling. Make also requires WhatsApp Business API access or a third-party gateway, and some gateways (like Twilio) charge per message on top of Make’s fee, so your costs stack. Error logs are good, but Make doesn’t retry failed sends automatically; you have to manually reprocess rows or build a separate error-handling route.
WhatsApp Business API + Zapier or direct webhooks
Best for: 5,000+ messages per month, businesses with developer support or budget for a managed solution.
Pros: Official API means higher rate limits (Meta’s documentation states new numbers start at 1,000 conversations per day, scaling to 100,000 after compliance checks), message templates approved by Meta for transactional use, and delivery receipts that confirm whether a message reached the recipient or failed due to an invalid number.
Cons: Meta’s per-conversation pricing varies by country—check their current Business API pricing page for your region, as rates change quarterly. You need an approved Business Solution Provider account, which requires a registered business, a Facebook Business Manager with a payment method on file, and a phone number that isn’t already linked to a personal WhatsApp account. Setup takes three to seven days for verification. Zapier adds another $20/month minimum for 750 tasks, and each message counts as a task, so you’re paying Meta plus Zapier. If a message template gets rejected by Meta’s review team (common if your wording sounds promotional), you’re blocked from sending until you rewrite and resubmit, which adds another 24–48 hours.
If you send fewer than 500 messages a month and want it running today, Make + a third-party WhatsApp gateway like 360dialog is the fastest path. For volume, the official API is unavoidable, but budget for both the per-conversation fees and the time cost of Meta’s approval process.
Step-by-step: Connect Google Sheets to WhatsApp using Make
This walkthrough uses Make because the free tier covers most small-business use cases and the interface is beginner-friendly.
Step 1: Create a new scenario in Make
Log into make.com and click Create a new scenario in the top right. You’ll see a blank canvas with a plus icon in the center.
Step 2: Add the Google Sheets module
Click the plus icon, search for Google Sheets, and select Search Rows (if you want to filter by status) or Watch Rows (if you want to trigger on new additions). For a one-time bulk send, choose Search Rows.
Click Add, then click Create a connection. A Google OAuth window will open—sign in with the account that owns your spreadsheet and grant permissions. Back in Make, select your spreadsheet from the dropdown, then pick the sheet name (usually “Sheet1”). Under Filter, set Status equals Pending so you only process unsent rows.
If this screen looks different: Older Make accounts may show “Watch Rows” as “New Row.” The logic is the same—choose the trigger that matches whether you’re reacting to new data or processing a batch.
Step 3: Add the WhatsApp module
Click the plus icon after the Google Sheets module, search for WhatsApp, and select Send a Message. You’ll need to connect a WhatsApp Business account or a third-party gateway. Make supports several: Twilio, 360dialog, MessageBird. Each requires an API key from their dashboard.
For this example, we’ll use 360dialog (offers a free sandbox for testing as of September 2026—verify current availability on their site). Go to 360dialog.com, sign up, and copy your API key from the dashboard. Paste it into Make’s connection dialog.
In the Send a Message module, map the fields:
- To: Click inside the box and select
1. Phonefrom the Google Sheets dropdown (the number from column A) - Message: Click inside, select
4. Message, then use the replace function to swap placeholders. In the formula bar, type:replace(replace(4. Message; "{{Name}}"; 2. Name); "{{Variable_1}}"; 3. Variable_1)
This nested replace swaps {{Name}} with the value from column B and {{Variable_1}} with column C.
Step 4: Update the Status column
Add another module after the WhatsApp send: Google Sheets > Update a Row. Map the Row ID to the row number from step 2, and set Status (column E) to Sent. This prevents duplicate sends if you re-run the scenario.
Step 5: Turn on the scenario
Click Run once at the bottom to test. Make will process one row. Check your WhatsApp to confirm the message arrived with the correct name and variable. If it worked, toggle the switch in the bottom-left corner to ON. Set the schedule to run every 15 minutes (or manually trigger it when you add new rows).
Verification: How to confirm it worked
Open your Google Sheet. The Status column should now read Sent for processed rows. Check the recipient’s WhatsApp—messages appear from the number you connected (your Business number or the gateway’s test number). If you used a sandbox, the recipient must have opted in by sending a keyword first; production API accounts skip this step.
In Make, click History in the left sidebar. Each successful run shows a green checkmark and the number of operations consumed. A failed run displays a red X—click it to see the error message.
Three failure modes and the fix for each
1. “Invalid phone number” error
Cause: The number in column A is missing the country code, has spaces, or includes letters.
Fix: In Google Sheets, select column A, go to Format > Number > Plain text, then manually prepend +1 (or the correct country code) to each number. Use =CONCATENATE("+1", A2) in a helper column if you have hundreds of rows, then copy and paste values back into column A.
2. Message sends but placeholders appear as literal text
Cause: The replace formula in step 3 is missing or incorrect.
Fix: Go back to the WhatsApp module in Make, click inside the Message field, and verify the formula matches exactly: replace(replace(4. Message; "{{Name}}"; 2. Name); "{{Variable_1}}"; 3. Variable_1). The column numbers (2, 3, 4) must match your sheet’s layout.
3. Scenario runs but no messages send
Cause: The Google Sheets filter returned zero rows (all statuses are already Sent, or the filter condition is wrong).
Fix: Change a few rows in column E back to Pending, then run the scenario again. If it still fails, remove the filter temporarily in the Google Sheets module to confirm Make can read the sheet at all.
Scaling beyond 1,000 messages
Make’s free tier gives you 1,000 operations per month as of September 2026 (check their pricing page for current limits). Each scenario run consumes one operation per row read plus one per message sent, so 500 messages = 1,000 operations. Beyond that, you’ll hit the limit mid-month.
Options:
- Upgrade to Make’s Core plan (check make.com/en/pricing for current rates—it was $9/month for 10,000 operations in early 2026) if you send 2,000–5,000 messages monthly.
- Switch to n8n self-hosted (free, unlimited executions) if you have a $5/month VPS or can run Docker locally. Setup is more technical but costs nothing after the initial configuration.
- Use a dedicated WhatsApp automation platform if you need higher volume or want to avoid cobbling together multiple services. [VERIFY: current pricing and feature limits for WhatssAI, ManyChat, or similar platforms as of September 2026]
5 frequently asked questions
Can you automate WhatsApp messages from Google Sheets for free?
Yes, using Make’s free tier (1,000 operations per month as of September 2026) or self-hosted n8n (unlimited but requires server setup). You’ll also need a free WhatsApp Business API sandbox from a provider like 360dialog for testing. Production sending at scale requires a paid API account or gateway service.
What tools connect Google Sheets to WhatsApp?
Make, n8n, Zapier, and Pabbly Connect all offer Google Sheets and WhatsApp integrations. Each requires a WhatsApp Business API connection or a third-party gateway like Twilio, 360dialog, or MessageBird. Direct integrations with the consumer WhatsApp app do not exist due to WhatsApp’s terms of service—only the Business API supports automation.
Is automating WhatsApp messages from spreadsheets against WhatsApp’s terms?
Using the official WhatsApp Business API to send messages is allowed and encouraged by Meta. Scraping phone numbers from public sources or sending unsolicited marketing messages violates the terms and can result in a ban. Recipients must have opted in, and you must provide a clear way to opt out. Personal WhatsApp accounts cannot be automated at all.
Do I need coding skills to send WhatsApp messages from Google Sheets?
No. Platforms like Make and Zapier use visual interfaces where you drag modules and map fields with dropdowns. The only “code” is a simple replace formula to swap placeholders, and most tools provide templates you can copy. Self-hosted n8n requires basic command-line knowledge to install but no programming once it’s running.
How many WhatsApp messages can I send from Google Sheets per day?
The WhatsApp Business API imposes rate limits based on your phone number’s quality rating and messaging tier. According to Meta’s Business API documentation (as of September 2026), a new number starts at 1,000 conversations per 24 hours. After seven days of compliance, it increases to 10,000, then 100,000. Each conversation (a 24-hour window with a recipient) can contain multiple messages. Exceeding the limit queues messages or triggers errors depending on your gateway’s configuration.
Photo by Kindel Media on Pexels