Triggers
Run automations on schedules or matching events.
An automation accepts one trigger. Omit trigger to run it only through the dashboard or API.
Schedules
trigger:
type: cron
schedule: "0 9 * * 1-5"Runs at 09:00 UTC on weekdays. Schedules also accept EventBridge rate(...), cron(...), and at(...) expressions.
trigger:
type: cron
schedule: "rate(6 hours)"Each scheduled run starts a new one-shot session.
Pull requests
trigger:
type: react
pull_request:
on: [pushed]
repositories: [api-repo]
base: [main]
draft: false
paths: ["src/**", "tests/**"]Runs when a non-draft pull request targeting main advances and changes a matching path. pushed also includes the initial head when a pull request opens.
| Event | When it fires |
|---|---|
opened | Opened, reopened, or marked ready for review |
pushed | Any head advance, including opening |
merged | Merged |
closed | Closed without merging |
review_submitted | A review is submitted |
commented | A comment is added |
Branch pushes
trigger:
type: react
push:
repositories: [api-repo]
branch: [default, "release/*"]
paths: ["package.json", "package-lock.json"]Runs on matching pushes to the default branch or a release/ branch. A push trigger has no on field.
Issues
trigger:
type: react
issue:
on: [opened]
repositories: [api-repo]
labels: [bug]Runs when a new issue has a matching label.
Repositories and authors
trigger:
type: react
pull_request:
on: [opened]
repositories:
include: [api-repo, web-repo]
exclude: [archived-repo]
for:
users: true
bots: falseRepository and author filters control which events match. They do not grant access or select sandbox repositories.
- Empty repository inclusion matches every installed repository
- Branch filters accept exact names, prefixes ending in
*, anddefault - Labels match when any configured label is present
- Paths are include-only globs; negated patterns are rejected
- Every matching automation starts independently
Other integrations
The schema also has linear_issue, sentry, and slack_channel surfaces. Their availability follows the connected integration and model capabilities. slack_channel handles channel creation, not messages.
@ellipsis mentions use integration routing files, separate from automation triggers. See GitHub, Slack, and Linear.