Delay
Pause workflow execution for a specified duration or until a specific datetime, using in-process or durable suspend strategies.
The Delay node suspends the current workflow execution for a defined period or until a target time. Short delays (under the configurable threshold) use an in-process Task.Delay approach, keeping the workflow in memory. Longer delays use durable suspend — the workflow state is persisted to storage and the execution thread is freed. When the delay expires, the workflow resumes automatically from the point it was suspended.
Delay Strategies
| Strategy | How It Works | Used When |
|---|---|---|
| In-Process | Uses Task.Delay — the workflow thread waits in memory. Fast to resume but consumes a thread during the wait. | Delay duration is below the in_process_threshold_ms (default: 30 seconds) |
| Durable Suspend | Workflow state is persisted to the BizFirst execution store. The thread is freed. Survives server restarts. Resumes when a timer fires. | Delay duration exceeds the threshold (minutes, hours, days) |
Delay Types
| Type | Description |
|---|---|
duration | Pause for a fixed number of milliseconds, either set as a literal (duration_ms) or computed via a BizFirst expression (duration_expression). |
until | Pause until a specific UTC datetime is reached, either set as a literal ISO string (until_utc) or computed via expression (until_expression). |
Key Capabilities
- Two delay types: fixed duration (milliseconds) or wait until a specific datetime
- Both duration and target time can be dynamically computed using BizFirst expressions
- Intelligent strategy selection: short = in-process, long = durable
- Durable delays survive server restarts — the workflow resumes even if the server is rebooted during the wait
- External cancellation supported via the cancelled output port
- The waiting port fires immediately when a durable suspend is initiated
Common Use Cases
| Scenario | Delay Type | Duration |
|---|---|---|
| Send a reminder 24 hours after onboarding | duration | 86400000 ms (24 h) |
| Wait until end of business day before sending notifications | until | Next 5 PM UTC expression |
| Pause between retry attempts (30 second cooldown) | duration | 30000 ms |
| Wait until contract start date to activate a subscription | until | Computed from contract start field |
| 7-day cooling-off period for a cancellation request | duration | 604800000 ms (7 days) |
In This Guide
Configuration
All properties: delay_type, duration_ms, duration_expression, until_utc, until_expression, and threshold configuration.
Input & Output
All four output ports: success, cancelled, waiting, and error, with conditions and descriptions.
Examples
Five examples: reminder delay, retry cooldown, business-hours scheduling, contract activation, and cooling-off period.