Wait block
A timed pause inside a flow. Useful for follow-ups (“ping me 2 hours later if no reply”) or rate-limiting outbound bursts.
Config
- Duration — in seconds. Clamped between 30 seconds and 30 days.
- (Implicit) Resume target — the canvas-level “Continue” socket, or
data.continue.actionif you wire a separate “On resume” output.
Runtime behaviour
- Sets
FlowState.status = "WAITING"+waitingUntil = now + duration - The
flowResumeWorkerpolls every 10 seconds for rows wherestatus='WAITING' AND waiting_until <= NOW()and re-enters the runtime atresumeStepId - A customer reply during WAITING cancels the wait and advances the flow immediately via the normal reply path
Real-world cadence
- 30s wait, worst-case 33% drift (10s tick) — invisible for anything longer
- 5min wait: drift ≤ 3%
- 1 day wait: drift ≤ 0.012%
Don’t use wait for sub-30-second delays — Meta’s own message delivery time fluctuates more than that.
Last updated on