Trigger Chain Scheduling
Trigger Chain Scheduling lets you run your trigger chains automatically at set intervals — every few minutes, every few hours, once a day, or once a week. Instead of manually clicking “Run” every time you want your pipeline to execute, you set up a schedule once and RTILA X handles the rest.
This is the same scheduling system used for project runs (see Task Scheduler), but applied specifically to trigger chains. You can schedule a trigger chain to run independently of any project, on its own timeline.
New in v8.3.2: Trigger Chain Scheduling is a brand-new feature. Previous versions of RTILA X only allowed scheduling project runs. Now you can schedule entire post-processing pipelines to run on their own schedule.

When to Use Trigger Chain Scheduling
Section titled “When to Use Trigger Chain Scheduling”| Use Case | Example |
|---|---|
| Hourly data sync | Run a trigger chain every hour to sync scraped data to a database |
| Daily report generation | Run a chain every morning at 9 AM to generate and email a report |
| Weekly data processing | Run a chain every Monday to process the week’s accumulated data |
| Periodic API polling | Run a chain every 15 minutes to check an external API |
| Scheduled file uploads | Run a chain every 6 hours to upload accumulated files to cloud storage |
How Scheduling Works
Section titled “How Scheduling Works”Here’s the complete lifecycle of a scheduled trigger chain run:
- You create a schedule. You define when the chain should run (e.g., every 30 minutes, daily at 9 AM).
- The cron job checks every minute. RTILA X’s internal scheduler checks every minute whether any schedules are due to run.
- Due schedules are detected. If a schedule’s
next_run_attime has passed and the schedule is enabled, it’s flagged as due. - The chain status is verified. RTILA X checks that the trigger chain has status “active.” Inactive or paused chains are skipped.
- Duplicate runs are prevented. RTILA X checks whether the chain already has a pending or running job. If so, the scheduled run is skipped to prevent duplicates.
- A run record is created. A new trigger chain run record is created with
triggered_by: "scheduler". - The job is queued. A queue record is created and the relay engine picks it up for execution.
- The schedule is updated. The schedule’s
last_run_atis updated to the current time, andnext_run_atis recalculated based on the schedule type. - A notification is sent (if enabled). If the schedule has notifications enabled, you receive a notification when the run starts.
Schedule Types
Section titled “Schedule Types”RTILA X supports four schedule types:
| Schedule Type | Description | Configuration Required |
|---|---|---|
| Every X Minutes | Runs the chain every N minutes | Enter the interval (e.g., 5 for every 5 minutes) |
| Every X Hours | Runs the chain every N hours | Enter the interval (e.g., 6 for every 6 hours) |
| Daily | Runs the chain once per day at a specific time | Set the time (e.g., 09:00 for 9 AM) |
| Weekly | Runs the chain once per week on a specific day at a specific time | Set the day of week and time |
Schedule Type Details
Section titled “Schedule Type Details”Every X Minutes
| Setting | Description | Example |
|---|---|---|
| Interval | Number of minutes between runs | 5 = every 5 minutes |
Example: If you set the interval to 15, the chain runs every 15 minutes: 9:00, 9:15, 9:30, 9:45, and so on.
Every X Hours
| Setting | Description | Example |
|---|---|---|
| Interval | Number of hours between runs | 6 = every 6 hours |
Example: If you set the interval to 6, the chain runs every 6 hours: 12:00 AM, 6:00 AM, 12:00 PM, 6:00 PM.
Daily
| Setting | Description | Example |
|---|---|---|
| Time | The time of day to run (24-hour format) | 09:00 = 9:00 AM |
Example: If you set the time to 09:00, the chain runs every day at 9:00 AM.
Weekly
| Setting | Description | Example |
|---|---|---|
| Day of Week | Which day to run (Sunday = 0, Monday = 1, …, Saturday = 6) | 1 = Monday |
| Time | The time of day to run (24-hour format) | 09:00 = 9:00 AM |
Example: If you set day of week to 1 (Monday) and time to 09:00, the chain runs every Monday at 9:00 AM.
Schedule Fields Reference
Section titled “Schedule Fields Reference”Every trigger chain schedule has the following fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| trigger_chain | Relation | ✅ Yes | — | The trigger chain this schedule belongs to. Automatically set when you create the schedule from a chain. |
| schedule_type | Select | ✅ Yes | — | The type of schedule: minutes, hours, daily, or weekly. |
| interval | Number | If minutes/hours | — | The number of minutes or hours between runs. Only used for minutes and hours schedule types. |
| time | Text | If daily/weekly | — | The time of day to run, in 24-hour format (e.g., 09:00). Only used for daily and weekly schedule types. |
| day_of_week | Number | If weekly | — | The day of the week to run (0 = Sunday, 1 = Monday, …, 6 = Saturday). Only used for weekly schedule type. |
| last_run_at | Date | No | — | The date and time of the last scheduled run. Automatically updated by the system. |
| next_run_at | Date | No | — | The date and time of the next scheduled run. Automatically calculated by the system. |
| notifications | Boolean | No | true | Whether to send notifications when the scheduled run starts and completes. |
| enabled | Boolean | No | true | Whether the schedule is active. If disabled, the chain won’t run on schedule. |
| created | Date | Auto | — | When the schedule was created. Automatically set by the system. |
Viewing Trigger Chain Schedules
Section titled “Viewing Trigger Chain Schedules”Opening the Scheduler Page
Section titled “Opening the Scheduler Page”- Go to Task Scheduler in the sidebar (the calendar icon).
- You’ll see two tabs at the top:
- Project Schedules — Schedules for project runs
- Trigger Chain Schedules — Schedules for trigger chains
- Click the Trigger Chain Schedules tab.

The Trigger Chain Schedules Table
Section titled “The Trigger Chain Schedules Table”The table shows all your trigger chain schedules with the following columns:
| Column | Description |
|---|---|
| Chain Name | The name of the trigger chain this schedule belongs to |
| Frequency | A human-readable description of the schedule (e.g., “Every 5 minutes”, “Daily at 09:00”) |
| Total Runs | The total number of times this chain has been run |
| Last Run Status | The status of the most recent run (completed, failed, etc.) |
| Active | Whether the schedule is currently enabled or disabled |
| Next Scheduled Run | The date and time of the next scheduled run |
| Actions | Buttons for editing, deleting, and toggling the schedule |
Frequency Display Examples
Section titled “Frequency Display Examples”| Schedule Configuration | Displayed As |
|---|---|
| Every 5 minutes | “Every 5 minute(s)” |
| Every 2 hours | “Every 2 hour(s)” |
| Daily at 09:00 | “Daily at 09:00” |
| Weekly on Monday at 09:00 | “Weekly on Monday at 09:00” |
| Weekly on Friday at 17:30 | “Weekly on Friday at 17:30” |
Creating a Trigger Chain Schedule
Section titled “Creating a Trigger Chain Schedule”Method 1: From the Trigger Chains Page
Section titled “Method 1: From the Trigger Chains Page”- Go to Trigger Chains in the sidebar.
- Select the trigger chain you want to schedule.
- Click Schedule in the ribbon toolbar.
- The Trigger Chain Schedule dialog opens.
- Configure the schedule settings.
- Click Save.
Method 2: From the Scheduler Page
Section titled “Method 2: From the Scheduler Page”- Go to Task Scheduler in the sidebar.
- Click the Trigger Chain Schedules tab.
- Click New Trigger Chain Schedule.
- Select the trigger chain from the dropdown.
- Configure the schedule settings.
- Click Save.
Schedule Configuration Dialog
Section titled “Schedule Configuration Dialog”When you create or edit a schedule, you’ll see the following fields:
| Setting | When to Configure | Description |
|---|---|---|
| Trigger Chain | Always | Select which trigger chain to schedule |
| Schedule Type | Always | Choose: Every X Minutes, Every X Hours, Daily, or Weekly |
| Interval | If Minutes or Hours | Enter the number of minutes or hours |
| Time | If Daily or Weekly | Enter the time in 24-hour format (e.g., 09:00) |
| Day of Week | If Weekly | Select the day of the week |
| Send notifications | Always | Toggle notifications on or off |
| Enabled | Always | Toggle the schedule on or off |
Schedule Type: Every X Minutes
Section titled “Schedule Type: Every X Minutes”- Select Every X Minutes as the schedule type.
- Enter the interval in minutes (e.g., 5 for every 5 minutes).
- The chain will run every N minutes starting from when the schedule is created.
Schedule Type: Every X Hours
Section titled “Schedule Type: Every X Hours”- Select Every X Hours as the schedule type.
- Enter the interval in hours (e.g., 6 for every 6 hours).
- The chain will run every N hours starting from when the schedule is created.
Schedule Type: Daily
Section titled “Schedule Type: Daily”- Select Daily as the schedule type.
- Enter the time of day to run (e.g.,
09:00for 9:00 AM). - The chain will run every day at that time.
Schedule Type: Weekly
Section titled “Schedule Type: Weekly”- Select Weekly as the schedule type.
- Select the day of the week from the dropdown.
- Enter the time of day to run (e.g.,
09:00). - The chain will run every week on that day at that time.
Toggling Schedules
Section titled “Toggling Schedules”You can enable or disable a schedule without deleting it. This is useful when you want to temporarily pause a schedule without losing its configuration.
- Go to Task Scheduler → Trigger Chain Schedules tab.
- Find the schedule you want to toggle.
- Click the toggle switch in the Active column.
- The schedule is immediately enabled or disabled.
What Happens When You Disable a Schedule
Section titled “What Happens When You Disable a Schedule”| Aspect | Behavior |
|---|---|
| Schedule configuration | Preserved — all settings are kept |
| Next run | Skipped — the chain won’t run on schedule |
| Last run data | Preserved — you can still see when it last ran |
| Manual runs | Still possible — you can still run the chain manually |
| Re-enabling | Click the toggle again to re-enable |
What Happens When You Enable a Schedule
Section titled “What Happens When You Enable a Schedule”| Aspect | Behavior |
|---|---|
| Next run time | Recalculated based on the schedule type |
| Next run | Will run at the next scheduled time |
| Missed runs | Skipped — runs that were missed while disabled are NOT retroactively executed |
Editing a Schedule
Section titled “Editing a Schedule”- Go to Task Scheduler → Trigger Chain Schedules tab.
- Find the schedule you want to edit.
- Click the edit icon (pencil) in the Actions column.
- The Schedule Configuration dialog opens with the current settings.
- Modify the settings.
- Click Save.
What You Can Edit
Section titled “What You Can Edit”| Setting | Editable? | Notes |
|---|---|---|
| Trigger Chain | ❌ No | The chain assignment is fixed. Create a new schedule for a different chain. |
| Schedule Type | ✅ Yes | You can change from minutes to daily, etc. |
| Interval | ✅ Yes | Change the number of minutes or hours |
| Time | ✅ Yes | Change the time of day |
| Day of Week | ✅ Yes | Change the day of the week |
| Notifications | ✅ Yes | Toggle notifications |
| Enabled | ✅ Yes | Toggle the schedule |
What Happens After Editing
Section titled “What Happens After Editing”When you edit a schedule:
- The
next_run_attime is recalculated based on the new settings. - The change takes effect immediately.
- The next run will happen at the newly calculated time.
Deleting a Schedule
Section titled “Deleting a Schedule”- Go to Task Scheduler → Trigger Chain Schedules tab.
- Find the schedule you want to delete.
- Click the delete icon (trash) in the Actions column.
- A confirmation dialog appears.
- Click Delete to confirm.
What Happens When You Delete a Schedule
Section titled “What Happens When You Delete a Schedule”| Aspect | Behavior |
|---|---|
| Schedule record | Permanently deleted from the database |
| Chain configuration | NOT affected — the trigger chain itself is not deleted |
| Past run history | NOT affected — past runs are preserved |
| Future runs | No more scheduled runs will occur |
| Manual runs | Still possible — you can still run the chain manually |
Warning: Deleting a schedule is permanent. If you just want to temporarily pause a schedule, disable it instead of deleting it.
The Cron Job: How Schedules Are Processed
Section titled “The Cron Job: How Schedules Are Processed”Behind the scenes, RTILA X runs an internal cron job called runDueTriggerChainSchedules that processes due schedules every minute.
How the Cron Job Works
Section titled “How the Cron Job Works”- Runs every minute. The cron job executes once per minute (
* * * * *). - Finds due schedules. It queries the database for all trigger chain schedules where:
next_run_atis less than or equal to the current timeenabledistrue
- For each due schedule, it:
a. Verifies the trigger chain exists and has status
active. b. Checks if the chain already has a pending or running job (to prevent duplicates). c. Creates a new trigger chain run record withtriggered_by: "scheduler". d. Creates a queue record with typetrigger_chain_run. e. Updates the schedule’slast_run_atto the current time. f. Recalculatesnext_run_atbased on the schedule type. g. Sends a notification if notifications are enabled.
Next Run Time Calculation
Section titled “Next Run Time Calculation”When the cron job recalculates next_run_at, it uses the following logic:
| Schedule Type | Calculation |
|---|---|
| Every X Minutes | Current time + X minutes |
| Every X Hours | Current time + X hours |
| Daily | Next occurrence of the specified time. If today’s time has passed, schedules for tomorrow. |
| Weekly | Next occurrence of the specified day and time. If this week’s time has passed, schedules for next week. |
Duplicate Prevention
Section titled “Duplicate Prevention”The cron job prevents duplicate runs by checking for existing pending or running jobs:
- Before creating a new run, it queries the queue for any pending or running jobs for the same trigger chain.
- If a pending or running job exists, the scheduled run is skipped.
- A log message is recorded: “Trigger chain [ID] already has a pending/running job. Skipping schedule.”
This prevents the same chain from being queued multiple times if the cron job runs while a previous run is still in progress.
Notification Behavior
Section titled “Notification Behavior”When a scheduled run starts and notifications are enabled:
| Notification | Title | Message | Type |
|---|---|---|---|
| Run started | “Trigger Chain Schedule Started” | “Trigger chain ‘[Chain Name]’ has started.” | info |
When the run completes:
| Run Status | Notification Title | Message | Type |
|---|---|---|---|
| completed | “Trigger Chain” | “Trigger chain ‘[Chain Name]’ completed successfully.” | success |
| failed | “Trigger Chain” | “Trigger chain ‘[Chain Name]’ failed.” | error |
Important Notes
Section titled “Important Notes”| Note | Description |
|---|---|
| Computer must be on | Scheduled runs only execute when your computer is running RTILA X. If your computer is off or sleeping, the scheduled run is missed. |
| Missed runs are skipped | If a scheduled run is missed (computer was off), it is NOT retroactively executed when the computer turns back on. |
| Chain must be active | Only trigger chains with status “active” will be scheduled. Draft or paused chains are skipped. |
| One schedule per chain | Each trigger chain can have only one schedule. Creating a new schedule for a chain replaces the existing one. |
| Timezone | Schedule times use your computer’s local timezone. |
| Interval minimum | The minimum interval is 1 minute. You cannot schedule runs more frequently than once per minute. |
Tips and Best Practices
Section titled “Tips and Best Practices”| Tip | Why It Matters |
|---|---|
| Start with a longer interval | Test with a longer interval (e.g., every 30 minutes) before shortening it. |
| Use daily schedules for reports | Daily schedules are ideal for generating and sending daily reports. |
| Use weekly schedules for batch processing | Weekly schedules work well for processing accumulated data. |
| Enable notifications | Notifications let you know when scheduled runs start and complete without checking manually. |
| Disable instead of deleting | If you need to temporarily stop a schedule, disable it instead of deleting. |
| Monitor the Last Run Status | Check the Last Run Status column regularly to catch failures early. |
| Use descriptive chain names | Name your chains clearly so you can identify them in the scheduler table. |
| Test manually first | Run the chain manually before scheduling it to verify it works correctly. |
| Avoid very short intervals | Very short intervals (every 1–2 minutes) can put load on your system. Use them only when necessary. |
| Check your computer’s sleep settings | If your computer goes to sleep, scheduled runs will be missed. Adjust your power settings if needed. |