Skip to main content
A trigger is what starts a run. Most triggers start a workflow: you add them to the workflow’s definition, and they fire on their own once the workflow is published. Apps can also start agent runs directly from their code.

Example requests

  • “Run the weekly-report workflow every Monday at 8am Eastern.”
  • “Start the triage workflow whenever someone posts a top-level message in #support.”
  • “Kick off the onboarding workflow when a Stripe checkout session completes.”
  • “Give our backend a URL it can call to start the refund review workflow.”
  • “When the dashboard loads, have the inbox agent summarize today’s unread email.”

Ways to start a run

A workflow can have any number of triggers, of any mix of types. Each trigger has an id, a type, and an optional label:

Triggers only fire when published

Saving a workflow never turns its triggers on. Publish is what makes them live: schedules start firing, connector event subscriptions are set up, and webhook URLs start accepting calls. A trigger in a saved but unpublished version is inert. This also means you can add a trigger and keep testing with Run now, which runs the latest saved version, before anything fires on its own.
To pause a live workflow, remove its trigger (or comment it out in the JSONC), save, and publish.

What a triggered run uses

Triggered runs always run the published version and always call deployed apps. They run as the person who last published the workflow, so agents and app calls use that person’s access. Each run appears in the workflow’s run history, labeled with the trigger that started it.

Next steps

Schedules

Run a workflow on a cron schedule.

Connector events

Start a workflow from Slack, Stripe, GitHub, and more.

Webhooks

Start a workflow with an authenticated HTTP call.

App triggers

Start agent runs from your deployed apps.