Triggers
Triggers are the events that start your automations. Every flow must have exactly one trigger.
Schedule Trigger
Run your automation on a recurring schedule.
Options:
- Every X minutes — Run at fixed intervals (1, 5, 15, 30 minutes)
- Every X hours — Run hourly at a specific minute
- Daily — Run once per day at a specific time
- Weekly — Run on specific days of the week
- Monthly — Run on a specific day of the month
- Custom Cron — Full cron expression for advanced scheduling
Example cron expressions:
*/5 * * * * # Every 5 minutes
0 9 * * 1-5 # 9 AM on weekdays
0 0 1 * * # Midnight on the 1st of each month
0 */2 * * * # Every 2 hours
Use cases: Daily reports, periodic data sync, scheduled cleanups, recurring notifications.
Webhook Trigger
Receive HTTP requests at a unique URL to start your flow.
Configuration:
- URL — Auto-generated unique endpoint
- Method — GET, POST, PUT, DELETE, PATCH, or any
- Authentication — None, Basic Auth, Header Auth, or Query Parameter
- Response mode — Respond immediately (202 Accepted) or after workflow completes (with custom body)
Example webhook URL:
https://engine.onflowstack.com/webhook/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Use cases: Form submissions, CI/CD pipelines, third-party app notifications, IoT device events.
App Event Trigger
Start your flow when something happens in a connected app.
Popular app triggers:
| App | Trigger Events |
|---|---|
| Gmail | New Email, New Labeled Email, New Attachment |
| Slack | New Message, New Mention, Reaction Added |
| Google Sheets | New Row, Updated Row |
| GitHub | New PR, New Issue, Push Event |
| Stripe | New Payment, Subscription Created, Invoice Paid |
| HubSpot | New Contact, Deal Stage Changed, Form Submitted |
| Notion | Page Created, Page Updated, Database Item Added |
| Typeform | New Response |
| Calendly | New Booking, Booking Cancelled |
Setup:
- Select the app trigger
- Connect your account (OAuth popup or API key)
- Configure trigger-specific settings (e.g., which inbox, which channel)
- Test the trigger to verify it receives events
Manual Trigger
Run the automation on-demand.
How to trigger manually:
- Click Run on any automation in the dashboard
- Use the Test Flow button inside the builder
- Call the REST API:
POST /api/v1/flow-runswith the flow ID
Use cases: One-time data migrations, on-demand reports, testing and debugging.
Trigger Data
Every trigger provides data to the subsequent actions. This data is accessible using expressions:
// Schedule trigger
{{ trigger.scheduledTime }}
// Webhook trigger
{{ trigger.body }} // POST body
{{ trigger.headers }} // HTTP headers
{{ trigger.query }} // Query parameters
// App trigger (varies by app)
{{ trigger.email.subject }} // Gmail new email
{{ trigger.message.text }} // Slack new message