Examples
Five examples demonstrating the Delay node in realistic scheduling and timing scenarios.
Example 1 — 24-Hour Onboarding Reminder
After a new user registers, send a welcome email immediately, then wait 24 hours before sending a "getting started" follow-up email. The durable delay ensures the workflow survives any server restarts overnight.
{
"node_type": "Delay",
"name": "Wait24HoursBeforeFollowUp",
"config": {
"delay_type": "duration",
"duration_ms": 86400000
}
}
Example 2 — Retry Cooldown Between API Attempts
In a retry loop, pause for 30 seconds between each failed API call attempt. The delay interval is short enough to be handled in-process.
{
"node_type": "Delay",
"name": "RetryCooldown",
"config": {
"delay_type": "duration",
"duration_ms": 30000,
"in_process_threshold_ms": 60000
}
}
Example 3 — Wait Until Contract Start Date
A contract management workflow creates a contract record immediately but must wait until the contract's official start date before activating the subscription and sending the first invoice.
{
"node_type": "Delay",
"name": "WaitForContractStartDate",
"config": {
"delay_type": "until",
"until_expression": "{@ var.contractStartDateUTC }"
}
}
// var.contractStartDateUTC = "2026-09-01T00:00:00Z"
waiting port fires immediately when the suspend is created, allowing an operator dashboard to show this workflow as "pending start date".Example 4 — Dynamic Exponential Backoff Delay
A retry mechanism uses exponential backoff — the delay doubles with each retry attempt. A CodeExecute node computes the interval and stores it in var.retryDelayMs; the Delay node reads it dynamically.
// CodeExecute: calculate exponential backoff
// result = Math.min(1000 * Math.pow(2, retryCount), 60000);
// VariableAssignment: retryDelayMs = output.CalcBackoff.result
{
"node_type": "Delay",
"name": "ExponentialBackoffDelay",
"config": {
"delay_type": "duration",
"duration_expression": "{@ var.retryDelayMs }"
}
}
Example 5 — 7-Day Cancellation Cooling-Off Period
When a customer submits a cancellation request, regulations require a 7-day cooling-off period before the cancellation is processed. During this period, the customer may withdraw their request via the cancelled port.
{
"node_type": "Delay",
"name": "CoolingOffPeriod",
"config": {
"delay_type": "duration",
"duration_ms": 604800000
}
}
// success port → process the cancellation (7 days elapsed, no withdrawal)
// cancelled port → customer withdrew the request — restore subscription
// waiting port → log that this cancellation is in the cooling-off period