Product guide

Zeto Sheet Automation

Build if-this-then-that style workflows directly in Google Sheets. This guide covers the pillars of Zetomation—triggers, conditions, actions, and dynamic variables—plus real-world recipes you can deploy today.

Core concepts

Every automation rule has three parts: Triggers decide when to run, Conditions filter the data, and Actions define what happens next. You can test rules before publishing and stack multiple actions in one workflow.

Trigger

Pick what activity wakes the automation—edits, new rows, form responses, or timed schedules.

Conditions

Add AND logic to keep noise low. Combine column checks, range switches, and system variables.

Actions

Send alerts, move data, protect rows, or call external systems—all in the order you arrange.

⚡ Triggers (when this happens...)

Triggers determine when the automation engine wakes up. Scope them to a worksheet tab or run them globally across the file.

Specific Row Updated

Runs when any cell within a specific row or set of rows is edited.

  • Single row: 5
  • Range: 1-10 (rows 1 through 10)
  • List: 1, 3, 5 (rows 1, 3, and 5 only)

Specific Column Updated

Runs when any cell within a specific column is edited—ideal for status or priority changes.

  • Single column: A
  • Range: A-C (columns A, B, and C)
  • List: A, D, F

Specific Range Updated

Runs only when an edit occurs within the defined A1 range.

  • Example: A1:C10

On Sheet Updated

Runs on any edit made anywhere in the selected worksheet—useful for audit logs or catch-all workflows.

On New Row Added

Runs when a new row is inserted into the sheet by a user or integration.

Google Form Response Received

Runs immediately after a linked Google Form submits a new response into the sheet.

Form (3rd-party) Response

Runs when external tools such as Zapier, Make, or Typeform push data into the sheet.

Scheduled Time

Runs on an automated cadence regardless of user edits.

  • Frequencies: Hourly, Daily, Weekly, Monthly
  • Choose the exact local time for execution

🔍 Conditions (logic checks)

Conditions act as filters. When you stack multiple conditions they use AND logic, meaning every requirement must pass before actions run.

Column

Checks the value of a specific column in the row that triggered the automation.

Example

Column C equals 'Approved'

Range

Checks the value of a static cell, often used as a master switch.

Example

Settings!B1 equals 'ON'

Variable

Compares dynamic variables like user email or timestamp.

Example

{{UserEmail}} contains '@company.com'

Comparison operators

equals
does not equal
contains
does not contain
starts with
ends with
is empty
is not empty
regex matches
is greater than
is less than

🚀 Actions (then do this...)

Automations can execute multiple actions sequentially. Mix communication tasks with data clean-up and advanced integrations.

📧 Communication

Deliver updates to inboxes and chat tools the moment data changes.

Send Email

  • Configure To, CC, BCC, Subject, and Body fields.
  • Supports HTML templates and dynamic variables such as {{Name}}.
  • Optionally attach the triggering row or sheet as a PDF.

Send SMS

  • Connect Twilio or ClickSend credentials.
  • Map the recipient phone number and message body from row values or fixed text.
  • Use a test number before enabling production notifications.

Slack / Discord / Google Chat / Teams / Telegram

  • Post a message to a channel-specific webhook URL or bot destination.
  • Include row data and dynamic variables for channel context.
  • Use the setup links below to create the destination URL, token, or chat ID.

📝 Data Management

Keep spreadsheets accurate by transforming rows in real time.

Update Row

  • Map column letters to new values, e.g., set column D to “Processed”.

Create Row

  • Insert a new row in a target sheet with full data mapping and placement controls.

Copy Row

  • Duplicate the triggering row to another sheet for archival or reporting.

Delete Row

  • Remove the triggering row when it no longer needs to stay on the sheet.

🎨 Formatting & Organization

Highlight what matters and control sheet visibility.

Format Row

  • Change text or background colors to signal state.

Hide / Protect Row

  • Hide rows from view or lock them so only owners can edit.

Sort Sheet

  • Automatically sort a sheet or range by a selected column (A→Z or Z→A).

🌐 Advanced / Export

Connect Zetomation to external systems and archives.

Call Webhook / HTTP Request

  • Send a JSON payload of row data to external APIs.

Export Row

  • Generate a PDF or HTML snapshot of the row and save it to Google Drive.

Configure channel destinations

For chat, SMS, and webhook actions, first create the destination or API credential in the external platform. Then paste the URL, token, or account details into the matching Zetomation action and test with a sample record.

Send SMS

Choose Twilio or ClickSend in the Service field, add the provider credentials, then map the recipient number and message body.

Required fields

  • Service: Select Twilio or ClickSend from the dropdown.
  • Twilio: Account SID and Auth Token: Open the Twilio Console dashboard and copy the Account SID and Auth Token for the project that owns your sending number.
  • ClickSend: User Name and API Key: Open ClickSend account settings or API credentials, then copy the username and API key for the account that will send SMS.
  • To: Enter the destination phone number, including country code. You can also use dynamic variables such as {{Header:Phone}}.
  • From: Enter your Twilio number, ClickSend sender number, or approved sender ID supported by your provider and country.
  • Message: Write the SMS body. Keep it short, and use variables such as {{TriggerRow}}, {{A}}, or {{Header:Status}} for context.

Slack

Create or open a Slack app, enable Incoming Webhooks, choose the destination channel, copy the webhook URL, and paste it into the Slack action.

Required fields

  • Webhook URL: In Slack, enable Incoming Webhooks for your app, add a new webhook to the target channel, and copy the generated hooks.slack.com URL.
  • Message: Write the channel message. Add variables such as {{TriggerRow}}, {{EditValue}}, {{A}}, or {{Header:Owner}} to include workflow data.

Discord

Create a webhook for the Discord channel, copy the webhook URL, and use it in the Discord action with your message template.

Required fields

  • Webhook URL: In Discord, open the channel settings, go to Integrations > Webhooks, create or select a webhook, and copy its URL.
  • Message: Write the Discord message. Use variables such as {{TriggerRow}}, {{EditValue}}, or {{Header:Status}} to include workflow values.

Google Chat

Register an incoming webhook in the Google Chat space, copy the generated URL, and paste it into the Google Chat action.

Required fields

  • Webhook URL: In the Google Chat space, add or manage webhooks, then copy the URL that starts with https://chat.googleapis.com/v1/spaces/.
  • Message: Write the Chat message. Variables are supported, for example {{A}}, {{Header:Status}}, and {{TriggerRow}}.

Microsoft Teams

Use Teams Workflows or an incoming webhook for the target channel or chat, copy the webhook URL, and configure the Teams action with that URL.

Required fields

  • Webhook URL: Create an incoming webhook or Teams workflow for the destination channel, then copy the generated webhook URL.
  • Message: Write the Teams message. Include variables such as {{TriggerRow}}, {{Header:Priority}}, or {{Sheet1!A1}} for live context.

Telegram

Create a bot with BotFather, save the bot token, send a message to the bot or add it to a group, then use getUpdates to find the chat ID for the Telegram action.

Required fields

  • Bot Token: In Telegram, message BotFather, create a bot with /newbot, and copy the token BotFather returns.
  • Chat ID: Send a test message to the bot or group, call getUpdates with the bot token, and copy the chat.id value. Public channels can also use @channelusername.
  • Message: Write the Telegram message. Variables such as {{A}}, {{Header:Status}}, and {{TriggerRow}} are supported.

Call Webhook

Select the target URL and JSON message body. Use dynamic variables to include form answers, row values, trigger metadata, and formatted status text.

Required fields

  • Webhook URL: Paste the endpoint URL from the destination app or API. For testing, create a temporary URL in Webhook.site and inspect the request payload there.
  • Message: Enter the JSON body or message payload. Include variables such as {{TriggerRow}}, {{EditValue}}, {{Header:Status}}, or {{Sheet1!A1}}.

🧩 Dynamic variables

Use variables in emails, chat messages, webhook payloads, and data mappings to insert live spreadsheet values.

VariableDescription
{{TriggerRow}}Row number where the edit occurred (e.g., 5).
{{TriggerSheet}}Name of the active sheet (e.g., Sales).
{{A}}, {{B}}Values from the triggering row by column letter.
{{Header:Status}}Looks up “Status” in row 1 and returns the value for the current row.
{{UserEmail}}Email address of the user who made the edit.
{{EditValue}}New value typed into the cell.
{{OldValue}}Value of the cell before the edit.
{{Timestamp}}Current date and time in ISO format.
{{Sheet1!A1}}Absolute reference to any cell (Sheet1 cell A1 in this example).

💡 Automation recipes

Jump-start your rollout with proven workflows. Use them as-is or tailor the actions and conditions to match your process.

Email customers as soon as a Google Form response hits the sheet.

Auto-Response Email on Form Submit

  • Trigger: Google Form Response Received
  • Action: Send Email to {{C}} with subject “We received your request!”

Keep active sheets clean by archiving completed work.

Move Completed Tasks to Archive

  • Trigger: Specific Column Updated (e.g., column E)
  • Condition: Column E equals Done
  • Actions: Copy Row to Archive sheet, then Delete Row

Alert sales leadership when a large deal closes.

Slack Notification for High-Value Sales

  • Condition: Column D is greater than 10000 and Status equals Closed Won
  • Action: Slack message “🚨 Big Deal! {{UserEmail}} closed ${{D}} with client {{B}}.”

Keep scheduling sheets chronologically sorted.

Auto-Sort Data by Date

  • Action: Sort Sheet by column A (ascending).

Ping operations when inventory drops below threshold.

Inventory Low Stock Alert

  • Condition: Column D < 10
  • Actions: Send Teams alert and format row red.

Protect rows once accounting approves an invoice.

Lock Approved Invoices

  • Action: Protect Row and apply green formatting.

Deliver a morning summary snapshot.

Daily PDF Report

  • Trigger: Scheduled Time (08:00)
  • Action: Export PDF of sheet.

Capture who edited a lead and when.

CRM Timestamp

  • Action: Update column Z with {{Timestamp}} and column AA with {{UserEmail}}.

Copy new records into a master spreadsheet.

Sync to Master Sheet

  • Action: Create Row in “Master” sheet with mapped values.

Keep rejected applications accessible but hidden from view.

Hide Rejected Rows

  • Action: Hide Row.

Next steps

Combine these building blocks to orchestrate end-to-end operations. Need help implementing an idea?Contact our support team.