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.

EventWhen it fires
openedOpened, reopened, or marked ready for review
pushedAny head advance, including opening
mergedMerged
closedClosed without merging
review_submittedA review is submitted
commentedA 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: false

Repository 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 *, and default
  • 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.

On this page

Schedule a demo