Custom build

WhatsApp and Google Sheets, connected both ways

Leads, orders and survey answers from WhatsApp land as rows in your sheet. Change a status in the sheet and the customer gets a WhatsApp update. We build it with a small Google Apps Script or the Sheets API, so your team keeps working in the spreadsheet they already know.

Last updated 26 October 2026

Leads sheet example
Time26 Oct, 09:14
WhatsApp number+27 82 000 0000
NameThandi M.
Interested in3-bed house, Durbanville, under R3m
StatusNew
Set Status to "Viewing booked" and the customer gets the date on WhatsApp

You can connect WhatsApp to Google Sheets with a custom build, not a plug-in. Euphony writes each WhatsApp lead or order to your sheet through Google Apps Script or the Sheets API, and lets a change in the sheet send the customer a WhatsApp message, on your own WhatsApp account billed directly by Meta.

What the integration does

It works in both directions. Most businesses start with WhatsApp to Sheets, then add the other way once they see the rows arriving.

From WhatsApp into your sheet

  • New enquiries become rows. The chat asks a few questions (name, what they need, area, budget) and writes one tidy row per lead, with the WhatsApp number and time.
  • Orders and bookings are logged. What was ordered, for when, and whether the Paystack or Yoco link was paid.
  • Form answers land in columns. Answers from a WhatsApp Flow, such as a quote request or a survey, go into one column each instead of a wall of chat text.
  • Free text gets sorted. With Claude in the conversation, a rambling message can be tagged ("complaint", "new order", "quote") and the useful details pulled into their own columns.

From your sheet back to WhatsApp

  • Status updates. Change a status cell to "Ready" or "Dispatched" and the customer gets a WhatsApp message.
  • Scheduled reminders. A timer checks the sheet each morning and sends reminders for tomorrow's appointments or overdue balances.
  • Lookups in the chat. A customer asks for a price, a stock level or an opening time, and the answer is read from the sheet while they wait.

How we build it

Our platform has no ready-made Google Sheets connector. What it has is two general tools: it can call any web address from inside a WhatsApp conversation, and it can receive authenticated webhooks that start or continue a conversation. We connect your sheet to those in one of two ways.

Apps Script web appGoogle Sheets API
What it isA short script attached to your sheet, deployed as a web app that accepts a POST requestGoogle's REST API, signed in as a Google service account you share the sheet with. We run these calls through n8n or a small relay that holds the Google sign-in
Writing a rowThe script's doPost function receives the data and appends the rowThe spreadsheets.values.append method adds the row after your existing table
Sheet to WhatsAppAn installable trigger (on edit, on form submit or on a timer) calls our webhookNeeds Apps Script, or a scheduled check that reads the sheet
Good forMost sheets, especially when the sheet should also send messagesWrite-only logging, or when you'd rather not have a script in the sheet

Apps Script doesn't pass request headers to a web app, so we protect the web app URL with a shared secret in the request itself, and the script ignores anything without it. Going the other way, the script calls our webhook with its own key. That key sits in the script, so anyone who can edit the sheet's script can read it. Keep edit access to the sheet small.

Sources: Apps Script web apps · spreadsheets.values.append · Apps Script triggers

Google's limits to plan around

LimitGoogle's figure
Sheets API writes300 a minute per project, 60 a minute per user per project
Apps Script URL fetch calls20,000 a day (consumer account), 100,000 a day (Google Workspace)
Apps Script run time6 minutes per execution
Trigger run time90 minutes a day (consumer), 6 hours a day (Workspace)

These are generous for a business sending hundreds of messages a day. Lookups need to be quick: our platform waits up to 10 seconds for an answer and reads up to 8 KiB of it. So the script returns one price or one status, not the whole sheet.

Sources: Sheets API usage limits · Apps Script quotas

What Meta charges

A sheet doesn't change what WhatsApp costs. Meta charges per delivered message, by category, and bills you directly. We add nothing.

  • Replies while the customer is chatting (inside the 24-hour customer service window) are service messages. Each number gets its first 1,000 a month free, then US$0.0095 each.
  • Messages the sheet starts, like "your order is ready" or tomorrow's reminder, go out as approved templates when the window is closed. A utility template to a South African number costs US$0.0095; a marketing template costs US$0.0379. Since 1 October 2026 a utility template is charged even when the window is open. Either way, Meta requires the customer's opt-in before you message them first.

Source: Pricing on the WhatsApp Business Platform (South African rates from 1 October 2026). See our pricing page for worked examples in rand.

Examples

Six ways to put it to work

Each one is a custom build. The names and numbers in these cards are examples, not client results.

What you need to provide

  1. Your WhatsApp accountYou connect your own WhatsApp Business account through Meta's Embedded Signup. Codeswop is a Meta Tech Provider; the number and the billing stay in your name.
  2. The sheetThe Google Sheet you want to use, with the columns you want filled. Share it with the account we give you, or let us add the Apps Script to it.
  3. The rulesWhich questions to ask, which status changes should send a message, and what each message should say. We draft the templates and submit them to Meta for approval.
  4. Opt-inMeta requires the customer's permission before you send them a message they didn't ask for in the chat, including order updates and reminders. Ask for it when they first give you their number, and say what kinds of messages they'll get. See Meta's opt-in rules.

Template approval is up to Meta, not us. We submit the templates early in the build so review runs alongside it.

When to move off Sheets

A spreadsheet is a fine place to start, and we'll say so when it stops being one. Signs you've outgrown it:

  • Several people edit the same rows at once, and statuses get overwritten.
  • You need a history per customer, not one row per enquiry. That's a CRM job: see HubSpot, Zoho or Salesforce.
  • The sheet holds ID numbers, medical or financial details. Anyone with edit access sees every row, so that data belongs in a system with proper access control.
  • You already run your automations in n8n. Then we can send WhatsApp events to n8n by webhook and let it write the sheet.
What we don't offer

There's no self-serve "connect Google Sheets" button on our platform. Each integration is built and maintained by our engineers. If you only need to send a broadcast to a list in a sheet, you don't need an integration: export it as a CSV and import the contacts. Broadcasts only go to contacts who have opted in.

Questions

WhatsApp and Google Sheets FAQ

Is there a ready-made WhatsApp Google Sheets connector on Euphony?

No. We don't have a plug-in Sheets connector. Our engineers build each integration through a small Google Apps Script web app in your sheet, or through the Google Sheets API, and wire it to your WhatsApp conversations.

Can a change in my Google Sheet send a WhatsApp message?

Yes. An Apps Script trigger in your sheet can call our platform when a row changes, for example when the status column becomes Ready. Our platform then sends the customer a WhatsApp message. If the customer hasn't messaged you in the last 24 hours, it must be an approved template, which Meta charges by category.

What does Meta charge for WhatsApp messages sent from a Google Sheet?

The same as any other WhatsApp message. From 1 October 2026, a utility template to a South African number costs US$0.0095 and a marketing template costs US$0.0379. Replies inside the 24-hour customer service window are service messages, with the first 1,000 per number each month free and US$0.0095 after that. Meta bills you directly and we add nothing. See Meta's pricing page.

How many rows can the integration write?

Google sets the limits. The Sheets API allows 300 write requests a minute per project and 60 per user per project. Apps Script allows 20,000 URL fetch calls a day on a consumer Google account and 100,000 on Google Workspace. That's plenty for most small and medium businesses. If you outgrow it, a database or CRM is the better home for the data.

Is Google Sheets safe for customer data?

It depends on who can open the sheet. Anyone with edit access sees every phone number and message logged in it. Keep the sheet shared with the people who need it, log only the fields you use, and keep sensitive data such as ID numbers or medical details in a proper system instead. You remain responsible for the data under POPIA.

Let your sheet talk to your customers

Show us the spreadsheet you run the business from. We'll show you which rows WhatsApp can fill, and which changes should send a message.