Trigger Sources and Events Reference
Every Shipfox trigger source and its events at a glance: manual fire, Cron schedules, GitHub, Sentry, and custom webhooks.
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
integration connection slug (for example github_acme), not the provider name. See
Integrations. Setup and payloads live on each
integration page.
Sources at a glance
| Source | source value | Events | Setup |
|---|---|---|---|
| Manual | manual (literal) | fire | Run manually |
| Cron | cron (literal) | tick | Schedule workflows |
| GitHub | integration connection slug, e.g. github_acme | push and other repository events | GitHub |
| Sentry | integration connection slug, e.g. sentry_acme | issue.created, issue.resolved, issue.assigned, issue.archived, issue.unresolved | Sentry |
| Custom webhook | integration connection slug you choose | received | Custom webhook |
| Linear | 🚧 Coming soon | Not available | Linear |
| Slack | 🚧 Coming soon | Not available | Slack |
| GitLab | 🔜 Roadmap | Not available | Not available |
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.
This trigger fragment belongs under an existing workflow's triggers map:
triggers:
on_demand:
source: manual
event: firecron
The built-in schedule source. A Cron trigger uses the literal source cron,
the event tick, and a config block with a five-field schedule. The optional
time zone is an Internet Assigned Numbers Authority (IANA) time zone. It
defaults to UTC.
This trigger fragment belongs under an existing workflow's triggers map:
triggers:
nightly:
source: cron
event: tick
config:
schedule: "0 2 * * *"
timezone: "Europe/Paris"Cron and manual triggers do not receive an outside event payload. They cannot
define a filter. See Schedule workflows
for a complete workflow.
Integration sources
For GitHub, Sentry, and custom webhooks, the source is the integration connection slug
created when you connect the integration. A single workspace can hold several
integration connections of the same provider, disambiguated by slug.
This trigger fragment belongs under an existing workflow's triggers map:
triggers:
on_push:
source: github_acme
event: pushSee the Integrations section for setup, the full event list per source, and payload details.
event.ref on a push is the full Git ref (for example refs/heads/main),
exactly as the provider sends it, not the bare branch name.
filter
The filter field accepts a CEL expression that narrows which integration
events fire a trigger. It is evaluated when the event arrives, before any run is created. In
scope: event (the payload) and trigger (source and event). A false
result skips the event. An expression error fails closed: the trigger does
not fire.
This trigger fragment belongs under an existing workflow's triggers map:
triggers:
on_main_push:
source: github_acme
event: push
filter: event.ref == "refs/heads/main"See Expressions for the engine and the exact scope.
Expressions (CEL)
Shipfox evaluates CEL in trigger filters, if conditionals, gates, and job success, and resolves ${{ }} templates in commands, env, prompts, and outputs from staged run context.
Secrets & Variables
Store secrets (write-only, encrypted) and variables (readable config) in your Shipfox workspace, and use them in workflows with ${{ secrets.KEY }} and ${{ vars.KEY }}.