Send WhatsApp from Google Sheets
Send personalized WhatsApp Business messages directly from a Google Sheet using Apps Script and the Zaptilo API. Perfect for Indian SMBs, ops teams, and marketing teams who keep contact lists in spreadsheets and want to send order updates, reminders, or campaign messages without buying an expensive bulk SMS panel.
Why Zaptilo + Google Sheets in India?
- No new tool needed — use the spreadsheet your team already uses
- Pay-as-you-go INR pricing — from ₹0.04/message at volume
- Send personalized template messages to thousands of contacts
- India-based support, GST invoice for Indian businesses
Step 1: Set up your Google Sheet
Create a sheet with these columns:
- A — Customer name
- B — Mobile number (10 digits, India)
- C — Order ID (or any dynamic value)
- D — Status (left blank initially — the script fills in
sentorfailed)
Step 2: Add the Apps Script
Open Extensions → Apps Script and paste:
function sendWhatsAppFromSheet() {
const TOKEN = 'YOUR_ZAPTILO_API_TOKEN';
const sheet = SpreadsheetApp.getActiveSheet();
const rows = sheet.getDataRange().getValues();
const header = rows.shift(); // first row is header
rows.forEach((row, i) => {
const name = row[0];
const phone = '91' + String(row[1]).replace(/\D/g, '').slice(-10);
const orderId = row[2];
const status = row[3]; // sent / pending / etc.
if (status === 'sent') return; // skip already sent
const payload = {
phone: phone,
template: {
name: 'order_confirmation',
language: { code: 'en' },
components: [{
type: 'body',
parameters: [
{ type: 'text', text: name },
{ type: 'text', text: orderId }
]
}]
}
};
const response = UrlFetchApp.fetch('https://web.zaptilo.ai/api/send/template', {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + TOKEN },
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
// Mark as sent in column D (4th column, index 3)
sheet.getRange(i + 2, 4).setValue(response.getResponseCode() === 200 ? 'sent' : 'failed');
});
}Step 3: Add a custom menu
Add an onOpen trigger so the action shows up in your Sheet's menu bar:
// Add a custom menu in Google Sheets
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Zaptilo WhatsApp')
.addItem('Send WhatsApp to all rows', 'sendWhatsAppFromSheet')
.addToUi();
}Reload the sheet — you'll see a new Zaptilo WhatsApp menu.
Use cases for Indian businesses
Bulk customer outreach
Personalized WhatsApp to every row in your customer list.
Event invites
Send event reminders to a list of registered attendees.
Daily reports
Trigger via time-driven trigger to send daily status updates.
Lead nurture
Re-engage cold leads stored in a spreadsheet.
Class/student reminders
EdTech tutors send class reminders from the student list.
Payment dues
Accountants send pending dues reminders from a sheet.
Frequently asked questions
How do I send WhatsApp messages from Google Sheets?
Open Extensions → Apps Script in your sheet, paste a function that loops through rows and uses UrlFetchApp.fetch to POST to the Zaptilo WhatsApp API. Add an onOpen trigger so the action shows up in a custom menu in the sheet.
Can I send personalized bulk WhatsApp from a Google Sheet?
Yes. Each row of the sheet becomes a personalized message — the script reads the recipient's name, phone, and dynamic values column by column and sends with the chosen template.
Does the script update the sheet to show which messages were sent?
Yes. The example script writes 'sent' or 'failed' back into a status column after each row, so you can re-run the script and skip already-sent rows safely.
What is the cost of bulk WhatsApp from Google Sheets in India?
Zaptilo charges from ₹0.04 per message at volume in INR with GST invoice. There is no monthly subscription, no per-row fee, no setup fee — making it the cheapest way to send bulk WhatsApp from a spreadsheet for Indian businesses.
Send WhatsApp from your spreadsheet
Free signup. INR pricing. GST invoice. No subscription.
Get Started Free