Skip to main content

Pause steps

Pause steps halt execution for extended periods (hours to weeks), persisting state and releasing resources.

Syntax

pause {
duration: "7d",
persist: StoreName,
resumeOn: timeout | webhook "/path"
}

Quick reference

OptionTypeDescription
durationstring/numberRequired. How long to pause ("7d", "12h", 86400000)
persistidentifierOptional. Store for pause state
resumeOntriggersOptional. How to resume (timeout, webhook, or both)

Duration formats

pause { duration: "7d" }      // 7 days
pause { duration: "12h" } // 12 hours
pause { duration: "30m" } // 30 minutes
pause { duration: "45s" } // 45 seconds
pause { duration: 86400000 } // milliseconds

Resume triggers

Timeout only (default)

pause { duration: "24h" }

Webhook only

pause {
duration: "7d",
resumeOn: webhook "/approved"
}

Both (first wins)

pause {
duration: "7d",
resumeOn: timeout | webhook "/approved"
}

Examples

Simple delay

action DelayedFollowUp {
post "/emails/send" { body: { template: "welcome" } }
pause { duration: "3d" }
post "/emails/send" { body: { template: "follow_up" } }
}

Approval workflow

action WaitForApproval {
post "/approvals/request" { body: { documentId: doc.id } }

pause {
duration: "7d",
resumeOn: timeout | webhook "/approved"
}

match response {
{ approved: true } => continue
_ => abort "Not approved"
}
}

With persistence

mission DurableWorkflow {
store PauseState: file("pauses")

action WaitStep {
pause {
duration: "24h",
persist: PauseState,
resumeOn: webhook "/continue"
}
}

run WaitStep
}

Comparison with wait

pausewait
DurationHours to weeksSeconds to minutes
ResourcesReleasedHeld
Use caseLong workflowsAsync API callbacks

Use pause for long durations. Use wait for short async callbacks.

See also