Run Later

Overview

Run later schedules a portion of your flow to execute at a future time, either as a one-time delayed execution or as a recurring schedule. The flow continues immediately via the Pass exit, while the scheduled portion runs independently at the specified time.

IMPORTANT: Use caution when calling this stage multiple times and setting the Restart Timer flag to False as this will create multiple running timers per flow trigger in parallel.
Run later will run even after a break if there is information inside and the flow is enabled. Scheduled executions persist across flow restarts.
 

Configuration

Required Fields

FieldDescriptionExample 
Timer IDUnique identifier for this scheduled executionorderReminder_{{UserTime}}, dailyReport
Delay of time (MINS)How long to wait before executing (in minutes)5 (5 min), 1440 (24 hours), {{UserDelayedMinutes}}
Stages to ExecuteConnect stages to the Iterate exit - these run at the scheduled timeConnected to Iterate exit

Optional Fields

  • Restart Timer: Cancel previous schedules with same Timer ID before creating new one. Enable this for recurring schedules to prevent duplicates.
  • On The Minute: Execute exactly at the start of the target minute (e.g., 14:23:00) instead of including seconds (e.g., 14:23:47).

Note about "Restart timer" label: This field cancels and replaces any existing schedule with the same Timer ID. Use this to update recurring schedules or cancel obsolete timers.

Exit Points

ExitWhen 
Pass (green)Executes immediately after schedule is created - main flow continues without waiting
Iterate (blue)Executes at the scheduled future time in a new flow instance

How It Works

When executed, the stage:

  1. Captures current state - Takes a snapshot of all flow variables at this moment
  2. Creates schedule - Saves the schedule to the database with the delay time and variable snapshot
  3. Routes to Pass immediately - Main flow continues without waiting
  4. Executes at scheduled time - A new flow instance runs the Iterate path with the captured variables

Time Calculation

The Delay field uses this logic to determine when to execute:

Value TypeInterpretationExample 
Small number (< current time - 100000)Relative time - minutes from now5 → 5 minutes from now
Large numberAbsolute Unix timestamp in minutes1710000000 → specific future time
Zero or past timeExecutes immediately (bypasses scheduler)0 → runs almost instantly

Common Use Cases

1. Send Reminder Email

Send a reminder email 24 hours after user signs up.

  • Timer ID: signupReminder_{{UserID}}
  • Delay: 1440 (24 hours)
  • Restart Timer: Off
  • Iterate Path: Call API to send reminder email

2. Recurring Daily Report

Generate daily report at midnight.

  • Timer ID: dailyReport
  • Delay: ={{Time2Midnight}}
  • Restart Timer: On (prevents duplicates)
  • Iterate Path: Generate report, then schedule next day's report (recursive)

3. Retry with Delay

Retry failed API call after 5 minutes.

  • Timer ID: apiRetry_{{DelayedMinutes}}
  • Delay: 5
  • Iterate Path: Call API, route based on success/failure

4. Timeout Check

Check if order processing completed after 30 minutes.

  • Timer ID: orderTimeout_{{Minutes}}
  • Delay: 30
  • Iterate Path: Fetch order status, send alert if still pending

5. Hourly Data Sync

Sync data from external system every hour on the hour.

  • Timer ID: hourlySync
  • Delay: 60
  • Restart Timer: On
  • On The Minute: On
  • Iterate Path: Fetch data, save results, schedule next sync

Key Behaviors

FeatureBehavior 
Variable SnapshotAll flow variables captured when schedule created - changes after don't affect scheduled execution
Independent ExecutionScheduled path runs in new flow instance - cannot return data to original flow
Restart TimerWhen enabled, cancels all existing schedules with same Timer ID before creating new one
Persists Across Breaks✓ Scheduled executions persist even if flow is stopped and restarted (as long as flow is enabled)
Immediate ExecutionIf delay is 0 or in the past, executes almost immediately (bypasses database)
Operator IsolationTimer ID automatically suffixed with operator ID - schedules isolated between operators

Important note about breaks: Even if you stop a flow, scheduled executions will still run at their scheduled time as long as the flow is enabled. This ensures reliable delayed processing.

Best Practices

  • ✓ Use descriptive Timer IDs that include entity identifiers (e.g., reminder_{{userId}}_{{orderId}})
  • ✓ Enable "Restart Timer" for recurring schedules to prevent duplicate executions
  • ✓ Use "On The Minute" for synchronized tasks that should align across flows
  • ✓ Store results from scheduled path to persistent storage (can't return to original flow)
  • ✓ Implement recursive scheduling for recurring tasks (schedule next execution from within Iterate path)
  • ✓ Use relative times (5, 60, 1440) rather than calculating Unix timestamps manually
  • ✓ Add Log stages in Iterate path for monitoring scheduled executions
  • ✓ Test with short delays first (1-2 minutes) before using long delays
  • ✓ Minimize flow variables before scheduling (large dictionaries increase overhead)

Common Mistakes

MistakeSymptomFix 
Expecting scheduled path to return to main flowResults from Iterate path not available in main flowSave results to storage in Iterate path, fetch in subsequent flow runs
Not connecting Iterate exitSchedule created but nothing happens at scheduled timeAlways connect stages to Iterate exit - these run at scheduled time
Using duplicate Timer IDs without RestartMultiple executions triggered at same timeEnable "Restart Timer" for recurring schedules or use unique Timer IDs
Not cleaning up recurring schedulesEndless schedules accumulate over timeUse Cancel run later stage when schedule no longer needed
Expecting variables set after Run later to be in scheduled executionScheduled path missing expected variablesVariables captured at moment Run later executes - changes after don't affect schedule

Troubleshooting

IssueExit/ResultCommon CauseFix 
Scheduled execution doesn't runN/AFlow disabled or Iterate exit not connectedEnsure flow is enabled; verify stages connected to Iterate exit
Duplicate executions occurN/ASame Timer ID used without Restart Timer enabledEnable "Restart Timer" or use unique Timer IDs with entity identifiers
Variables missing in scheduled executionN/AVariables set after Run later stage or snapshot timing issueSet all required variables before Run later stage
Schedule executes at wrong timeN/ADelay value interpreted as absolute instead of relative (or vice versa)Use values < 100000 for relative time (minutes from now)
Can't cancel scheduleN/ATimer ID doesn't match (operator suffix difference)Use exact same Timer ID in Cancel run later stage

System Variables

You can use system variables in the Delay field for dynamic scheduling:

VariableDescriptionUse Case 
@NowCurrent time in Unix minutesCalculate absolute future timestamps
@UnixMillisCurrent time in Unix millisecondsConvert to minutes for precise scheduling

Edge Cases

  • Delay of Zero: Executes almost immediately via message queue (bypasses scheduler database).
  • Delay in the Past: Executes immediately like delay of zero - useful for conditional immediate execution.
  • Very Long Delays: No explicit maximum - schedules can be years in the future (limited by Unix timestamp range).
  • Concurrent Schedules with Same Timer ID: Without "Restart Timer", multiple schedules created and all execute. Enable "Restart Timer" to prevent.
  • On The Minute Precision: When enabled, executes at second 00 of target minute. When disabled, includes current seconds in calculation.
  • Large Variable Dictionaries: All variables serialized and stored - very large dictionaries may impact performance.
  • Flow Version Changes: Scheduled execution uses flow version from time of schedule creation, not current version.

Related Stages

  • Cancel run later: Cancel a previously created schedule using Timer ID
  • Loop: Process items immediately vs scheduling future processing
  • Route Flow: Conditional scheduling based on conditions
  • Change Data: Set variables before scheduling (captured in snapshot)
  • Save Data: Persist schedule metadata or results from scheduled execution

Was this article helpful?