Integrations
Google Sheets integration
Send a WhatsApp message automatically when a row is added to a Google Sheet, or when a row changes. Each row becomes one message, personalised with values from its columns. No automation tool is needed: triggers run inside Wbiztool.
Before you start#
- A paid plan. Every paid plan includes Google Sheets triggers: Lite 1, Standard 3, Advanced 5 and Enterprise 10 (see Pricing). Once your Google account is connected, the Google Sheets page shows how many triggers you've used out of your limit. If your plan has no triggers, Connect Google Account shows an upgrade prompt; contact support if you're unsure which plan you need.
- A connected WhatsApp number on WhatsApp settings.
- You must be an owner or editor of the workspace. Only the owner can disconnect the Google account.
- A Google Sheet whose first row contains column headers, such as
Name,PhoneandOrder.
Connect your Google account#
Go to wbiztool.com/google-sheets/ and click Connect Google Account. The page isn't listed in the dashboard menu, so use this link. Sign in with Google and allow access. Wbiztool asks for read-only access to your spreadsheets, and access to the files you pick, so it can see when they change.
One Google account can be connected per workspace. Disconnect (owner only) removes the connection and stops all of its triggers.
Create a trigger#
Select resources
Choose the WhatsApp Number to send from, click Select Sheet to pick your Google Sheet from Google Drive, then choose the Worksheet (tab). Each worksheet can have one trigger.
Choose the trigger event
- New Spreadsheet Row: sends a message for each row added after you create the trigger.
- New or Updated Spreadsheet Row: also sends again when a row that was already processed changes.
Configure the trigger
Give it a Trigger Name and choose the Phone Number Column. Turn on Enable Scheduling if you want messages sent at a date and time taken from the row. See Scheduling.
Write the message
Choose the Message Type and write the Message Template, using
{{Column Name}}to insert values from the row. The Message Preview shows the result.Save and test
Save the trigger. Use Test on the trigger to preview the message built from the last row of the sheet, and optionally send it. The test message starts with
[TEST], and it needs the phone header to match the column name exactly.
Rows already in the sheet when you create a New Spreadsheet Row trigger are skipped. Only rows added afterwards are sent.
Message templates#
Write column headers inside double braces, exactly as they appear in the header row, with no spaces inside the braces:
Hi {{Name}}, your order {{Order ID}} is ready for pickup.
With a row where Name is Aman and Order ID is 4821, the message is:
Hi Aman, your order 4821 is ready for pickup.
Headers are case-sensitive: {{name}} doesn't match a column called Name.
Message types#
| Message Type | What to fill in |
|---|---|
| Text | The Message Template. |
| Image with Text | A Media URL Template with the public image URL, and the template as the caption. The URL can include columns, such as https://example.com/products/{{SKU}}.jpg. |
| Document with Text | A Media URL Template with the public file URL, and the template as the caption. The file name is taken from the end of the URL and keeps its extension for the file types listed on Send message, such as .pdf, .docx, .csv or .zip. A URL without an extension, or with another one, arrives with .pdf added to the name. |
Phone numbers#
- Write numbers in the Phone number column with their country code, such as
919876543210or+91 98765 43210. A number without it, such as98765 43210or09876543210, gets the country code of the number under Send from (with Any connected number, your first connected number). When that number's country isn't known, the country set under Country for numbers without a country code in Settings → Workspace is used. A number starting with0is skipped when no country is known, or when it isn't a valid number of that country. - Spaces, dashes, brackets, dots,
+and a leading00are removed. The phone is read as the sheet shows it. When what the sheet shows hides the number, such as919,876,543,210or9.19877E+11, the number stored in the cell is used instead. If a cell shows9.19877E+11and also holds that rounded value (for example, from a CSV file saved by Excel), digits are lost and the row is skipped. - Use a phone header whose name isn't part of any other header (for example, avoid
Phonenext toAlternate Phone). Wbiztool uses the last column whose header contains the name you picked. The same applies to the date and time columns. - Rows where the phone isn't 7 to 15 digits long, with its country code, are skipped. Skipped rows don't count as errors on the trigger card, so if messages are missing, check the phone values.
Scheduling#
With Enable Scheduling on, choose:
- Date Column: the date to send. Accepted formats:
YYYY-MM-DD,DD/MM/YYYY,MM/DD/YYYYandDD-MM-YYYY. For dates like03/04/2026that fit both, the month-first reading (MM/DD/YYYY) is used, so preferYYYY-MM-DD. - Time Column (Optional): the time as
HH:MMorHH:MM:SS(24-hour). Without it, the message is scheduled for midnight at the start of that date, so a row dated today with no time is already in the past and is skipped. - Default Timezone: the timezone of the dates and times in your sheet.
Rows whose date and time are already in the past are skipped. Without scheduling, each row is sent as soon as the trigger runs.
How and when triggers run#
Google notifies Wbiztool when the sheet changes, and the trigger then reads columns A to Z of the worksheet and processes the new or changed rows. Messages usually go out shortly after the change is saved.
- Only columns A to Z are read. Keep the phone column and every column you use in templates within them.
- If your plan runs out of messages, processing stops at that row. The remaining rows are sent on a later change to the sheet once you have messages again.
- Pause, resume or delete a trigger from its card. The card shows how many times the trigger ran and how many errors it had.
Troubleshooting#
| Problem | What to check |
|---|---|
| Can't connect or create triggers | You need a paid plan, and you may have reached its trigger limit. |
| Trigger ran but no messages | The phone values are 7 to 15 digits with the country code, numbers starting with 0 have a country to complete them with (see Phone numbers), and the header of the phone column hasn't been renamed since you created the trigger. |
| Placeholder appears in the message | The text inside {{ }} doesn't exactly match a header. |
| Scheduled messages not sent | The date and time are in the future and in the timezone you chose. |
| Old rows were messaged | See the warning about New or Updated Spreadsheet Row above. |
Trigger shows Drive watch setup failed: WbizTool has no access to this sheet…, or never runs | Triggers created before 17 September 2026 never got access to their sheet. Delete the trigger and create it again, choosing the sheet with Select Sheet. |
| Messages go to the wrong number, or dates are read from the wrong column | Wbiztool uses the last column whose header contains the name you picked. Rename headers so none contains another, for example Phone next to Alternate Phone. |
| Messages queued but not sent | Check that your WhatsApp number is connected on WhatsApp settings. |
