Triggers
Triggers define when and how workflows execute. Configure triggers at the workflow level to determine the events that cause a workflow to run.
Fields
trigger (optional)
The trigger configuration object that defines when the workflow executes.
Type: Trigger object
Default: None (workflow runs only when manually triggered)
Trigger types
Schedule triggers
Schedule triggers run workflows at specific times using cron expressions.
schedule field
A list of schedule objects, each containing a cron expression.
Type: List of schedule objects
Example:
trigger:
schedule:
- cron: "0 0 * * *" # Daily model retraining
- cron: "0 */6 * * *" # Data refresh every 6 hours
Cron expression format
Cron expressions use the standard 5-field format:
┌───────────── minute (0-59)
│ ┌───────── ──── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday to Saturday)
│ │ │ │ │
* * * * *
All cron expressions are evaluated in UTC timezone.
Special characters:
| Character | Description | Example |
|---|---|---|
* | Any value | * * * * * (every minute) |
, | Value list separator | 1,3,5 (1, 3, and 5) |
- | Range of values | 1-5 (1 through 5) |
/ | Step values | */15 (every 15 units) |
Common cron patterns
| Pattern | Description |
|---|---|
0 0 * * * | Daily at midnight UTC |
0 */6 * * * | Every 6 hours |
0 9 * * 1-5 | Weekdays at 9 AM UTC |
0 0 1 * * | First day of every month |
*/15 * * * * | Every 15 minutes |
0 0 * * 0 | Every Sunday at midnight |
30 2 * * * | Daily at 2:30 AM UTC |
Schedule inputs
Schedules can provide input values for workflows that define inputs.
Field: inputs (optional map of string to string)
Example:
inputs:
dataset:
type: string
required: true
trigger:
schedule:
- cron: "0 0 * * *"
inputs:
dataset: full-training-set
- cron: "0 12 * * *"
inputs:
dataset: validation-set
Each schedule can provide different input values, allowing the same workflow to run with different parameters at different times.
Concurrent execution: Each schedule triggers independently. If multiple schedules fire at the same time, they run as separate concurrent workflow executions.
For more details on defining and using inputs, see Inputs.
Callable workflows
To make a workflow callable by other workflows, set trigger.callable: true. For details, see Reusable workflows.
Example:
trigger:
callable: true
Complete example
id: data-pipeline
name: Data Processing Pipeline
inputs:
dataset:
type: string
required: true
description: Dataset to process
full_refresh:
type: bool
default: false
description: Whether to do a full refresh
trigger:
schedule:
# Daily full refresh at midnight
- cron: "0 0 * * *"
inputs:
dataset: production
full_refresh: "true"
# Hourly incremental updates
- cron: "0 * * * *"
inputs:
dataset: production
full_refresh: "false"
jobs:
process:
steps:
- name: Process data
env:
DATASET: ${{ .inputs.dataset }}
FULL_REFRESH: ${{ .inputs.full_refresh }}
run: python process.py --dataset $DATASET --full-refresh $FULL_REFRESH
- Submit and view feedback for this page
- Send feedback about H2O Orchestrator | Docs to cloud-feedback@h2o.ai