Triggers
Triggers define when and how a workflow executes.
HTTP trigger
Start workflows via HTTP requests:
trigger: http: path: /api/users # URL path method: POST # GET | POST | PUT | DELETE auth: type: bearer # none | basic | bearer | api_key validate: body: # JSON Schema validation type: object required: ["email"]Access trigger data:
{{ trigger.body }} # Request body{{ trigger.query }} # Query parameters{{ trigger.headers }} # Headers{{ trigger.params }} # URL path paramsSchedule trigger
Cron-based execution:
trigger: schedule: "0 9 * * MON" # Every Monday at 9 AMCron syntax:
* * * * *│ │ │ │ └─── Day of week (0-7, 0=Sunday)│ │ │ └───── Month (1-12)│ │ └─────── Day of month (1-31)│ └───────── Hour (0-23)└─────────── Minute (0-59)Common patterns:
| Expression | Meaning |
|---|---|
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour |
0 0 * * * | Daily at midnight |
0 9 * * MON | Weekly on Monday |
Webhook trigger
Receive external webhooks:
trigger: webhook: provider: github secret: "${WEBHOOK_SECRET}" events: - push - pull_requestQueue trigger
Process messages from queues:
trigger: queue: type: kafka brokers: - localhost:9092 topic: events group: r8r-consumersManual trigger
Start via CLI or API:
trigger: manual: {}r8r trigger my-workflow --data '{"key": "value"}'Multiple triggers
A workflow can have multiple triggers:
triggers: - http: path: /api/users - schedule: "0 9 * * *" - webhook: provider: stripe