Triggers
The trigger is the first block of every automation (the START block). It defines when the automation runs. Select one of three modes at the top of the trigger panel: Record event, Schedule, or On demand.
Open any automation in Automation from the top navigation, then select the trigger block to configure it. Until its required fields are set, the block shows a needs config badge.
Record event
Runs when a record is created, updated, or deleted in a collection.
| Field | Required | Description |
|---|---|---|
| Event | Yes | The database operation that fires the trigger: Created, Updated, or Deleted. |
| Execution Phase | Yes | Before or After the database operation (see below). |
| Table | Yes | The collection whose records fire the trigger. |
| Alias | Yes | A reference name for the trigger record, used downstream as {{alias.field}}. |
Execution phase
- Before — Runs before the record is saved. Use it to validate or transform data, or to prevent the operation.
- After — Runs after the record is saved. The record exists with its final values.
Use Before for validation and transforms; use After for notifications and integrations.
Auth table (optional)
Access data about the authenticated user who performed the operation.
| Field | Description |
|---|---|
| Auth Table | The auth collection to read the acting user from. Defaults to No auth table. |
| Auth Alias | A reference name for the user record (for example, authUser). |
Filter conditions (optional)
Add conditions so the trigger fires only for matching records. Click Add condition to add a row, and remove a row with its ×. Each row is a field, an operator, and (for most operators) a value. All rows are combined with AND — the trigger fires only when every condition is met.
Operators:
| Operator | Notes |
|---|---|
| Has changed | Fires only when the field's value changes — pair it with the Updated event. Takes no value. |
| Equals / Not equal to | Match or exclude a value. |
| Is any of / Is none of | Match against any of several values. |
| Is empty / Is not empty | Take no value. |
The value input matches the field type — a choice field shows a dropdown, for example. Insert a {{alias.field}} token with the + picker.
Schedule
Runs on a recurring interval or once at a fixed time. Useful for maintenance jobs and time-based reports.
| Field | Required | Description |
|---|---|---|
| Interval | Yes | How often to run: Minutes, Hours, Days, Weeks, Months, or One time. |
| Every | Yes | The interval count (for example, 1 with Hours runs every hour). |
| Start date | Yes | The date of the first run. |
| Start time | Yes | The time of the first run. The time picker uses 5-minute steps. |
Schedule triggers have no trigger record or alias — no {{alias.field}} data is available from the trigger itself. Use a Record block to query the data you need.
On demand
Runs when called from another automation, a cron job, or a queue. It is not tied to a record or schedule.
| Field | Description |
|---|---|
| Async | Turn on to run without blocking the caller. |
| Input Parameters | The arguments the automation accepts. Click Add parameter to add one. |
Input parameters
Each parameter has:
| Field | Description |
|---|---|
| Name | The parameter name. Must be camelCase (for example, applicationId). |
| Type | The value type: Void, Boolean, String, Number, Object, or Array. |
| Array | Turn on Multiple values to accept a list of this type. |
| Object Source | Shown when Type is Object. Defines the shape from a Collection or a JSON Object. |
| Default Value | Optional value used when the caller omits the parameter. |
Response type
Every trigger mode ends with a Response Type that defines what the automation returns: Void (default), Boolean, String, Number, Object, or Array. For Object or Array, pick an Object Source — a Collection or a JSON Object — to define the shape.
Examples
Trigger on new approved users
Record event: Created — Table: Users (alias: user)
Filter: status Equals "approved"
Action: Send Email → To: {{user.email}}
Nightly cleanup
Schedule: Every 1 Days at 02:00
Record: Find All from Sessions (alias: sessions) where expiresAt < now
Action: Mutation (Delete) Sessions where id in {{sessions.ids}}
Related
- Conditions — Add logic after the trigger
- Records — Query additional data
- Actions overview — Set up actions
- MCP — Adding tools — Expose on-demand automations to AI via MCP