Concepts
Triggers
A trigger is attached to one automation. When it fires, it starts one run, or applies the automation's concurrency policy if a run is already active. Triggers do not fan out across automations: if two automations want the same source event, each declares its own trigger.
Kinds
| Kind | Fires on |
|---|---|
schedule | A cron expression or interval, evaluated in the project's timezone. |
event | A durable source event like github.issues.opened or table.row.inserted. |
webhook | An inbound HTTP request to an automation-specific receive URL. |
Picking the right kind
If a third party already emits the event you care about, such as
Slack, GitHub, Linear, Jira, Gmail, or email, use an event trigger.
Mobius's integrations do the verification, deduplication, and replay.
If the third party is one Mobius does not integrate with yet, use a
webhook trigger. You get a receive URL and the external system POSTs
to it directly.
If nothing external fires the event and you just need cadence, use a
schedule trigger.
You can attach multiple triggers to one automation. A nightly cleanup
with both a schedule trigger and a manual HTTP trigger is a common
shape.
Source events
Source events are the events event triggers and wait_for_event
steps match against. They are emitted by integrations, tables, agent
sessions, HTTP triggers, artifacts, interactions, signals, and run
lifecycle changes.
Provider events use provider.resource.verb. Mobius-native events use
domain.object.verb. Wildcards match a subtree, such as
github.pull_request.*.
github.pull_request.opened
github.issues.opened
github.check_run.completed
github.push
slack.event
slack.interactivity
slack.command
linear.issue.created
linear.issue.updated
linear.comment.created
gmail.message.received
jira.issue.created
email.received
http_trigger.received
table.row.inserted
table.row.updated
table.row.deleted
session.message.created
artifact.created
interaction.resolved
run.completed
run.failed
run.cancelled
signal.deploy_completeThe canonical list is project-aware because integrations can add or remove provider events:
mobius catalog list-eventsSee Source events for the envelope shape, catalog fields, and matching rules.
Configuration reads like English
Triggers carry filter config, and the UI renders it in natural language wherever possible. A Slack message trigger reads as:
Any Message from Anyone in #opsA GitHub issue trigger reads as:
Issue Opened in deepnoodle-ai/api with label bugThe underlying config is JSON, but the human-readable rendering is what you see in the automation editor and CLI output.
Concurrency and triggers
The trigger does not decide what happens when it fires while a run is
in flight; the automation's concurrency policy does. A burst of
GitHub events does not have to mean a burst of overlapping runs. Pick
queue to serialize, forbid to drop, or replace to keep only the
latest. See Automations
for the full set.
Schedule triggers
- kind: schedule
config:
cron: "0 9 * * MON-FRI"
timezone: "America/New_York"Schedule internals flow through Mobius's durable source-event pipeline, but authors do not subscribe to an internal schedule event. Declare the schedule trigger and the runtime wires it up.
Inbound vs. outbound webhooks
Webhook triggers are the inbound direction: external systems POST to Mobius, a run starts. The outbound direction, where Mobius POSTs your service when a run finishes, is a different surface; see Webhooks.
Related
- Automations own triggers.
- Runs are created when a trigger fires.
- Source events covers event catalog and envelope details.
- Integrations provide many provider events.
- Webhooks covers outbound delivery.