---
title: "Google Sheets + OmniChannels.ai: send messages from a spreadsheet"
description: "Send SMS and WhatsApp messages to rows in Google Sheets with Apps Script or an automation tool calling the OmniChannels.ai API, and log statuses back."
canonical: "https://omnichannels.ai/integrations/google-sheets/"
language: "en"
updated: "2026-10-10"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
---

# Google Sheets + OmniChannels.ai: send messages from a spreadsheet

Canonical: https://omnichannels.ai/integrations/google-sheets/
Language: en
Publisher: OmniChannels.ai by BroadNet Technologies

**In short:** Google Sheets connects to OmniChannels.ai through Apps Script, whose UrlFetchApp service can call our REST API with your Bearer token, or through the Sheets steps in n8n, Make or Zapier. You can send SMS or WhatsApp messages to rows and log message IDs and delivery statuses back. An AI assistant connected to both Sheets and our MCP server can do the same on request.

Connect via API & webhooks · Connect via MCP

## What you can do

### Send to a list in a sheet

A script or automation reads name and number columns and sends each row a personalised SMS, marking the row as sent.

### Log message IDs and statuses

Store the message ID returned for each send, then let an automation write DELIVERED or FAILED into the same row when our webhook reports it.

### New row, new message

When a form response or new row arrives, an automation tool sends an approved WhatsApp template or an SMS confirmation.

### Ask an AI assistant to work the sheet

With the assistant connected to Google Sheets through its own connector and to our MCP server, it can read the list and send after you approve.

> Try asking: "Read the Riyadh branch tab of my customer sheet and send the Arabic appointment_reminder template to everyone booked for tomorrow."

### Delivery report summary

An assistant connected to our MCP server reads delivery reports and you paste or write the summary into the sheet.

> Try asking: "Check the delivery reports for this morning's SMS to the numbers in column B and tell me which ones failed."

## How it connects

Apps Script, built into Google Sheets, can call any HTTPS API with UrlFetchApp, setting the Authorization: Bearer header and a JSON payload. That is enough for single SMS through https://api.broadnet.me/sms/sendSms. Bulk and most other channel sends, including WhatsApp, use multipart/form-data, which needs more script code or an automation tool. Keep the token in Script Properties rather than in a cell, and remember Apps Script's own quotas.

Without code, n8n, Make and Zapier all have Google Sheets steps: a new or updated row starts a flow that makes an HTTP request to our API, and our account webhook can feed statuses back into the sheet. Our MCP server does not read your spreadsheet, so for AI-assistant use the assistant must also be connected to Google Sheets through its own connector.

- Apps Script: UrlFetchApp with a Bearer header and JSON body
- No-code: Google Sheets steps in n8n, Make or Zapier plus an HTTP request
- Statuses back to the sheet: our webhook into an automation tool
- AI assistants: connect them to Sheets and to our MCP server

## Set it up

1. **Request API access:** Request test access and receive an API token. Test sends go only to your own verified numbers. (Guide: https://omnichannels.ai/developers/authentication/)
2. **Lay out the sheet:** Use one row per recipient with columns for number in international format, message or template variables, status and message ID. Include only people who opted in.
3. **Choose script or automation:** Write an Apps Script function that calls sendSms with UrlFetchApp, or build a flow in n8n, Make or Zapier that reads rows and makes the HTTP request. (Guide: https://omnichannels.ai/developers/sms/)
4. **Write statuses back:** Ask our team to point your account webhook at an automation that finds the row by message ID and updates its status. (Guide: https://omnichannels.ai/developers/webhooks/)
5. **Test with your own number:** Put your verified number in one row, run the send, and check the status column fills in.

## Example workflow

Google Sheets (Rows with numbers, names and message variables) → Apps Script or automation (UrlFetchApp, n8n, Make or Zapier makes the request) → OmniChannels.ai API (Sends each message and returns a message ID) → Recipient's phone (SMS or WhatsApp message delivered) → Status back to the sheet (Our webhook, via automation, updates the row)

## Questions

### Is there an official OmniChannels.ai add-on for Google Sheets?

No. You use Apps Script's UrlFetchApp, the Google Sheets steps in an automation tool, or an AI assistant connected to Sheets through its own connector, together with our API or MCP server.

### Can Apps Script send WhatsApp messages?

Single SMS is a simple JSON request. WhatsApp and most other channel sends use multipart/form-data, which takes more script code; an automation tool can be simpler.

### Can an AI assistant read my sheet through your MCP server?

No. Our MCP server only sends messages and reads templates and delivery reports. The assistant needs its own Google Sheets connection to read the list.

### How large a list should I send from a sheet?

Sheets suits small and medium lists. Apps Script and automation tools have their own quotas and run limits, so for large campaigns use our bulk endpoints or the campaigns product instead.

## Developer guides

- https://omnichannels.ai/developers/sms/
- https://omnichannels.ai/developers/authentication/
- https://omnichannels.ai/developers/webhooks/
- https://omnichannels.ai/developers/mcp/

## Vendor documentation

- [Class UrlFetchApp — Apps Script reference](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app)

## Related integrations

- https://omnichannels.ai/integrations/n8n/
- https://omnichannels.ai/integrations/make/
- https://omnichannels.ai/integrations/zapier/
- https://omnichannels.ai/integrations/airtable/

Google Sheets is a trademark of its owner. OmniChannels.ai is not affiliated with or endorsed by Google Sheets; this page describes a connection built with Google Sheets's own MCP, HTTP or webhook features.

Updated: 2026-10-10