Triggers
Triggers automate workflow execution by starting runs on a schedule or in response to external events. Instead of manually clicking "Run" every time, you define a trigger that fires automatically.
Trigger Types
| Type | Description |
|---|---|
| Schedule (Cron) | Fires on a recurring time-based schedule. This is the primary trigger type. |
Schedule triggers are currently the only supported type. Webhook triggers may be added in a future release.
Cron Schedule Triggers
A schedule trigger fires at recurring intervals defined by a cron expression. The platform accepts both raw cron syntax and natural language descriptions.
Natural Language Schedules
You can define schedules in plain English. The platform parses them into standard cron expressions:
| Input | Cron Expression |
|---|---|
every day at 9am | 0 9 * * * |
every weekday at 9am | 0 9 * * 1-5 |
every monday at 8:30am | 30 8 * * 1 |
every hour | 0 * * * * |
every 15 minutes | */15 * * * * |
first day of every month at noon | 0 12 1 * * |
When you provide natural language, the platform stores both the original description (for display) and the canonical cron expression (for scheduling).
Raw Cron Expressions
You can also provide standard 5-field cron expressions directly:
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
| Expression | Meaning |
|---|---|
0 9 * * * | Every day at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
*/30 * * * * | Every 30 minutes |
0 0 1 * * | First day of every month at midnight |
0 8,17 * * * | At 8:00 AM and 5:00 PM daily |
If the input matches a valid cron expression exactly, it is stored without a natural language description.
Timezone Support
Every trigger has a timezone setting that determines when the cron expression fires relative to local time. The default is UTC.
Set the timezone to match the intended audience or business hours. A trigger set to "every weekday at 9am" in America/New_York fires at 9:00 AM Eastern, regardless of UTC offset or daylight saving time changes.
The timezone is validated against the standard IANA timezone database. Invalid timezone values are rejected.
The trigger's display format always shows the timezone alongside the schedule description: "Every weekday at 9am (America/New_York)".
Enabled / Disabled Toggle
Each trigger has an enabled flag that controls whether it actively fires:
- Enabled -- The trigger will fire at its next scheduled time.
- Disabled -- The trigger exists but will not fire. Useful for temporarily pausing a schedule without deleting the configuration.
Disabling a trigger clears the next scheduled fire time. Re-enabling it recalculates the next fire time from the current moment.
Start and End Dates
Triggers support optional start date and end date boundaries:
| Field | Effect |
|---|---|
| Start Date | The trigger will not fire before this date, even if enabled and the cron schedule matches. |
| End Date | The trigger will not fire after this date. The trigger remains enabled but becomes effectively dormant. |
Both fields are optional. If neither is set, the trigger fires indefinitely as long as it is enabled.
User Input Conflict
Workflows can be configured to prompt for a task description before starting ("Prompt for task description" toggle). This creates a conflict with triggers, which fire automatically without user interaction.
If a workflow has this toggle enabled, triggers on that workflow cannot be enabled. The platform shows an error: "Cannot enable trigger: workflow requires user input before starting. Disable 'Prompt for task description' first."
In the Workflow Builder, trigger nodes for workflows with this setting display a warning label indicating the conflict.
Disable "Prompt for task description" on the workflow before enabling any triggers. Automated runs cannot wait for user input.
Fire Now
The Fire Now action manually triggers an immediate workflow run, bypassing the schedule. This is useful for testing a trigger's configuration or forcing an off-schedule execution.
Fire Now respects the trigger's configuration but ignores the timing constraints (cron schedule, start/end dates). The trigger must be associated with the workflow but does not need to be enabled for Fire Now to work.
Tracking and History
Each trigger tracks its firing history:
The trigger card displays:
- Fire count — Total number of times this trigger has fired.
- Last fired — When it most recently fired.
- Next fire — When it will fire next. Updated after each firing and when the configuration changes.
Individual firings are recorded as trigger runs, each linked to the workflow run it created. Each run shows when it fired, whether it succeeded or failed, and a link to the resulting workflow run.
Field Reference
| Field | Required | Default | Description |
|---|---|---|---|
| Name | Yes | -- | Display label for the trigger |
| Schedule | Yes | -- | Cron expression or natural language schedule |
| Timezone | Yes | UTC | When the schedule fires relative to local time |
| Enabled | No | On | Whether the trigger actively fires |
| Start Date | No | -- | Earliest date the trigger can fire |
| End Date | No | -- | Latest date the trigger can fire |
| Input Payload | No | -- | Data passed to the workflow run when triggered |
Triggers in the Workflow Builder
Trigger nodes appear at the top of the workflow graph, connected to the first stage via dashed links. Each node displays:
- A clock icon
- The trigger name
- The schedule or type as a subtitle
- A status dot: green for enabled, gray for disabled
Dragging a "Cron Schedule" card from the sidebar palette onto the canvas creates a new trigger and opens the trigger drawer for configuration.
Clicking a trigger node opens its edit drawer with fields for name, schedule input, timezone, enabled toggle, and start/end dates.