Skip to main content
A trigger has a source and an event. This page lists every source and its events at a glance. For integration sources, the source you write is the connection slug (for example github_acme), not the provider name — see Integrations. Setup and payloads live on each integration page.

Sources at a glance

Sourcesource valueEventsSetup
Manualmanual (literal)fireNone — Triggers
GitHubconnection slug, e.g. github_acmepush and other repository eventsGitHub
Sentryconnection slug, e.g. sentry_acmeissue.created, issue.resolved, issue.assigned, issue.archived, issue.unresolvedSentry
Custom webhookconnection slug you choosereceivedCustom webhook
Cron🚧 Coming soon — cron (literal)tickTriggers
Linear🚧 Coming soonLinear
Slack🚧 Coming soonSlack
GitLab🔜 Roadmap

manual

The built-in on-demand source. Use manual to start a workflow from the dashboard or API without an external integration. At most one manual trigger per workflow.
triggers:
  on_demand:
    source: manual
    event: fire

Integration sources

For GitHub, Sentry, and custom webhooks, the source is the connection slug created when you connect the integration. A single workspace can hold several connections of the same provider, disambiguated by slug.
triggers:
  on_push:
    source: github_acme
    event: push
See the Integrations section for setup, the full event list per source, and payload details.

filter (not enforced)

The filter field accepts a CEL expression intended to narrow which events fire a trigger — for example event.ref == "refs/heads/main" on a GitHub push. Today filter is parsed and stored but not evaluated: the trigger fires on every matching (source, event) pair regardless of the expression. Authoring a filter is safe and takes effect once evaluation is enabled — no schema change will be required.