Integrations

Google Sheets Add-on

Message the rows of a Google Sheet on WhatsApp — approved templates with per-row personalisation, free-form text/media, and bulk contact import — without leaving the spreadsheet.

What you can do

  • Pick a phone-number column and message selected rows or all rows.
  • Map spreadsheet columns to template {{1}}, {{2}} … variables — every recipient gets a personalised message.
  • Send free-form text, image, or document messages (media/text within Meta's 24-hour customer-service window).
  • Upload media for template headers or free-form messages.
  • Bulk-import rows as CRM contacts — map columns to contact fields, create or update in one click.

Every send is logged in your dashboard under Integrations → Google Sheets & Excel → Activity and appears in Live Chat and Sent History like any other outbound message.

Prerequisites

  • A MotherBot account with at least one connected WhatsApp number.
  • A plan that includes the Google Sheets & Excel integration.
  • A Google account with edit access to the sheet you want to message from.

Step 1 — Generate your access token

1

Open the integration

In your MotherBot dashboard go to Integrations → Google Sheets & Excel and click Connect.
2

Copy the token

A one-time access token starting with sext_ is shown. Copy it now — it is displayed only once. You can rotate it any time from the same card.

Step 2 — Install the add-on

If you installed from the Google Workspace Marketplace, skip to Step 3. To add it manually to a single sheet:

1

Open a Google Sheet first

Open, or create, a Google Sheet (from Drive: New → Google Sheets). Then, inside that sheet, go to Extensions → Apps Script.

Warning

Do this from inside the sheet — not from script.google.com. A project you create there is a standalone Drive script with no active sheet, so it can't read your rows and the menu never appears. The Apps Script tab opened via Extensions is bound to the sheet (that's what you want).
2

Add the files

In the Apps Script editor, create a script file Code.gs and an HTML file named Sidebar, then paste in the code from each file. Grab the code from Dashboard → Integrations → Google Sheets & Excel → Install (Copy / Download buttons), or directly:
  • Code.gs — https://motherbot.io/google-sheets-addon/Code.gs
  • Sidebar.html — https://motherbot.io/google-sheets-addon/Sidebar.html
Save the project.
3

Reload & authorize

Reload the spreadsheet. A new menu appears at Extensions → MotherBot WhatsApp → Open. On first open, approve the prompt — on the "Google hasn't verified this app" screen click Advanced → Go to (project) → Allow.

Note

You do not need to create an appsscript.json— the default manifest auto-detects the permissions the code needs. Only add one if you're packaging the add-on for the Marketplace.

Troubleshooting

1

"PERMISSION_DENIED — reading from storage"

This is a Google authorization issue, not your token. It's almost always multiple Google accounts signed into the browser. Fixes, in order:
  • Open the sheet in an Incognito window signed into ONE Google account, then try again.
  • Re-authorize: at myaccount.google.com/permissions remove the add-on, reload the sheet, open it again, and Allow.
  • Make sure the script was created from Extensions → Apps Script inside the sheet — not from script.google.com (a standalone Drive script can't read the sheet).
  • Do not paste a custom appsscript.json with a narrow oauthScopes list — delete that block and let scopes auto-detect.
2

The menu never appears

The script must be container-bound (created from within the sheet). If you made it at script.google.com it lives in Drive with no sheet attached — delete it and redo Step 2 from the sheet.

Use it in all your sheets

The steps above add the add-on to one spreadsheet — a container-bound script lives inside that single file, like a macro, so no other sheet can see it. Don't paste the code into every spreadsheet; install it to your account instead:

1

Install it for your whole account

In the Apps Script editor: Deploy → Test deployments → Install. The add-on then appears under Extensions → MotherBot WhatsApp in every spreadsheet on your account, and picks up code changes automatically (no re-pasting).
2

Give it to your team or customers

Publish it to the Google Workspace Marketplace — list it Private (your Workspace domain only, no OAuth verification needed) or Public. Once installed from the Marketplace it appears in every sheet automatically.

Tip

Multiple tabs in one spreadsheet? Fully supported — the add-on always reads the tab you're currently on. Switching tabs re-reads that tab's headers, phone-column list, and selection automatically. Note that All means all rows of the active tab, and each tab needs its header row in row 1.

Warning

Signed into more than one Google account? You'll hit "a server error occurred while reading from storage. Error code PERMISSION_DENIED". The add-on sidebar always runs as your first (default) Google account, but your sheet may be open under another one (/u/1), and Google blocks that mismatch. Fix: open the sheet in an Incognito window signed into only that account, or make it your default (sign out of all Google accounts, then sign in with it first). This is a Google limitation, not a MotherBot one.

Step 3 — Connect

1

Open the sidebar

Go to Extensions → MotherBot WhatsApp → Open.
2

Enter your details

Paste your Server URL (https://motherbot.io) and the sext_ access token, then click Connect. Your organization name and WhatsApp number appear on success.

Tip

The token is stored privately per user in Apps Script — it is never written into the spreadsheet or visible to people you share the sheet with.

Step 4 — Send messages

1

Choose your rows

Select the rows you want to message (or pick All), then choose the phone number column. The add-on auto-detects a column named phone, mobile, or similar.
2

Pick a message type

Choose Template to send an approved template, or Text / Image / Document for a free-form message.
3

Map your columns

For a template, map each {{1}}, {{2}} variable to a column. For free-form, type your message with the same {{1}} placeholders and map them below.
Column:  Name        | City      | Phone
Row 2:   Priya       | Mumbai    | 9812345678

Template body:  Hi {{1}}, your {{2}} order is ready!
{{1}} → Name      {{2}} → City

Priya receives:  Hi Priya, your Mumbai order is ready!
4

Send

Click Send WhatsApp messages. You get a live summary — sent, failed, and skipped counts — with the specific rows that failed.

Warning

Free-form (non-template) messages can only reach contacts who messaged you in the last 24 hours (WhatsApp policy). Rows outside that window are reported as skipped — use an approved template to reach them.

Import rows as contacts

1

Switch to the Import tab

Click Import contacts in the sidebar.
2

Map fields and import

Map columns to contact fields (name, email, city, custom fields, …). The phone column above is used as the key. Existing contacts are updated — blank cells never overwrite existing values, and tags/custom fields merge. Click Import as contacts.

Admin controls

Everything below is controlled from the dashboard card — no re-install needed:

  • Turn individual features on/off (templates, free-form, uploads, bulk send, import).
  • Set a daily send limit and a maximum number of rows per send.
  • Set a default country code for local numbers with no country code.
  • Restrict which WhatsApp numbers the add-on may send from.
  • Limit which template categories (Marketing / Utility / Authentication) are allowed.

Tip

Downgrading to a plan without this integration instantly revokes the token — the add-on stops sending until you reconnect on an eligible plan.