Automations
Automations let you build workflows that run automatically when certain events occur. Each automation consists of a trigger (what starts it) and one or more actions (what it does), with optional branching for conditional logic.
Creating an Automation

- Open a base and navigate to the Automations tab in the top bar
- Click "New Automation"
- Name your automation and configure a trigger
- Add one or more actions
- Toggle the automation on when ready

Triggers
A trigger defines when the automation runs. Available trigger types:
Record Created
Fires whenever a new record is created in the selected table. You can optionally add filter conditions to only trigger for records matching specific criteria.
Example: When a new record is created in the Deals table where Stage = "Closed Won"
Record Updated
Fires when a record in the selected table is modified. You can specify which fields to watch — the automation only triggers when one of those fields changes.
Example: When the Status field is updated on any record in the Tasks table
Record Deleted
Fires when a record is removed from the selected table.
Webhook
Fires when an HTTP request is received at a unique webhook URL. See the Webhooks guide for detailed setup.
Scheduled (Cron)
Runs on a defined schedule using cron syntax. Useful for periodic reports, cleanup tasks, or batch processing.
Examples:
0 9 * * 1— every Monday at 9:00 AM0 */6 * * *— every 6 hours0 0 1 * *— first day of every month at midnight
Button Click
Fires when a user clicks a button in the table toolbar or record detail view. This is useful for on-demand actions that a team member triggers manually.
Actions
Actions define what the automation does. You can chain multiple actions — each action can use data from the trigger and from previous actions.
Send Email
Send an email via your configured SMTP connection. Supports HTML templates with placeholder syntax. See Email and SMS for SMTP setup.
Fields:
- To — recipient email (supports
{{record.Email}}syntax) - Subject — email subject line
- Body — HTML or plain text body with template placeholders
Send SMS
Send an SMS message via sms.to integration. Supports Unicode for non-Latin scripts.
Fields:
- To — phone number in international format (e.g.,
+37060000000) - Message — text content with template placeholders
Create Record
Creates a new record in any table within the same base (or across bases). Map fields using static values or template syntax.
Update Record
Updates an existing record. Select which record to update (the triggering record, a linked record, or find by criteria) and set the new field values.
Delete Record
Deletes a record by ID. Use with caution — deleted records cannot be recovered.
Google Docs (Create Copy with Replacements)
Creates a copy of a Google Docs template and replaces placeholders with record data. See Google Docs Integration.
HTTP Request
Makes an HTTP request to any external URL. Useful for integrating with third-party APIs.
Fields:
- Method — GET, POST, PUT, PATCH, DELETE
- URL — the endpoint
- Headers — custom headers (e.g.,
Authorization: Bearer {{token}}) - Body — JSON payload with template placeholders
Branching (If/Else Router)
You can add conditional branches to your automation flow. A router step evaluates conditions and sends execution down different paths.
Setting up a branch:
- Add a Router step after your trigger (or after any action)
- Define conditions using the same filter syntax as views
- Each branch can have its own chain of actions
Condition operators:
equals,does not equalcontains,does not containis empty,is not emptygreater than,less thanis before,is after(for dates)
Example: Lead routing
Trigger: Record Created in "Leads" table
└─ Router:
├─ If Country = "Lithuania" → Send Email (Lithuanian template)
├─ If Country = "Germany" → Send Email (German template)
└─ Else → Send Email (English template)
Template Syntax in Actions
All text fields in actions support template placeholders:
{{record.FieldName}}— inserts the value of a field from the triggering record{{record.FieldName|transform}}— applies a transform to the value
See the Template Syntax guide for the full list of transforms and conditional blocks.
Testing and Debugging

- Use the Test button on any automation to run it with a sample record
- Check the Run History tab to see past executions, their status, and any error messages
- Failed runs show the exact step that failed and the error details
- You can re-run a failed automation from the history view
Best Practices
- Start simple — get one trigger and one action working before adding complexity
- Use filters on triggers — avoid running automations on every single record change
- Test with real data — the test button uses actual records, so use a test table if needed
- Name your automations clearly — e.g., "Send welcome email on new client signup"
- Monitor run history — check periodically for failures, especially after changing table schemas