What is a bot?
A bot is a way to define automated triggers and actions with no code to do things like automate email notifications, data updates, and data hand-offs in your table. Bots are owned at a table level and are created separately for each table.
Each bot is comprised of three parts:
- A bot trigger (when the bot should run)
- [optional] Bot conditions (which rows should it run on)
- A bot action (what should it do)
1. Bot triggers
The bot trigger defines a particular event or time to "run" the bot and have it check its conditions and take action.
For example, you may want a bot to do something when someone has changed a particular column in your table, or when a new row has been added, or on a recurring time-basis. Current available triggers:
|Column value change||Bot will run whenever the value of any of the selected columns change in a row.|
|Time-based||Bot will run regularly on a daily or weekly schedule.|
|Row added||Bot will run whenever a row is added to the table. This includes rows added via forms or as a result from another bot action.|
|Row removed||Bot will run whenever a row is removed from a table. This also includes rows removed via another bot action.|
|Comment added||Bot will run whenever a comment is added to a new or existing thread for a row.|
2. Bot conditions
Bot conditions define special criteria for which rows the bot should run on. You can use conditions to create specialized rules.
For example, you may want a bot to only send an email notification to you IF a row has the "Urgent" column is marked as "Yes". You can add multiple conditions which check the values in the columns in the row.
Combining a date-based condition is very effective for some types of weekly reminder bots, like: "Every Monday at 8AM, IF there are any rows with the Due Date coming up in the next 7 days, then send an email reminder of upcoming deadlines."
3. Bot actions
The bot action defines what specific action to take on the row or rows that meet the conditions.
You can do all sorts of powerful things like send templated email notifications, or update information in the row, or even add rows to other tables.
For example, if we're tracking job applicants in a table, we can set up a bot so that when someone updates the "Status" of an applicant to "Hired", it will automatically copy over the applicant information into the "Employee Onboarding" table for processing.
Current available actions:
|Multi-row actions (runs an action for all matching rows)|
Customize and send an email summary of all the rows that matched the conditions. Great for weekly email reminders for "upcoming tasks".
NOTE: This action is currently only available if you use a time-based trigger. At this time, you cannot use variables for summary emails.
|Single-row actions (runs the action each time for each matching row)|
Customize and send an email. You can adjust email recipients to come from data in your table (a person or text type column).
You can also use a special syntax in your email templates to pull in information from the table row directly into the email using variables.
|Add row||Add a new row to a table. You can map values from the table row to the new row in the target table, using similar special syntax for email templates (see above). You will need to have at least edit permission to the target table, and it will set up a corresponding table-to-table permission (learn more). If the target table has a bot with a trigger set on "Row added", it will be triggered by this action.|
|Update row||Update column values for the row. Similarly, you can map values and variables to the columns using the same special syntax for email templates.|
|Delete row||Deletes the current row. The row can still be found in the table history of deleted rows and restored if needed, but you cannot use the "undo" keyboard or button shortcuts to undo this action. If another bot has a trigger set on "Row removed", it will be triggered by this action.|
|Send to webhook||Sends data from the row to an external 3rd party app via a webhook. This webhook action allows you to do things like: when a new row is added, send a Chat or Slack notification alerting the channel about the new addition.|
|Execute Apps Script||Executes an Apps Script function to run custom logic and connect with other Google and third-party apps. This can allow you to do things like: generate a Google Doc invoice, or load-balance tasks across the team, or send calendar invites. Learn more in the help center article.|
How do I add a bot to my table?
You can access Bots through the app menu item labeled “Bots” in the app toolbar. From there, you can see a list of your bots and edit/disable them or create a new one. Note: bots are created and owned by each table separately.