Appearance
Delay node
The Delay node pauses the flow for a set time before continuing. It's mainly for pacing — waiting between calls inside a ForEach loop so you don't hammer a rate-limited API, or spacing out notifications.
Component id: flowrunner/delay. It's a built-in node — no network, and it can't fail, so it has a single next port.
How it works
The node waits for the number of milliseconds in ms, then continues on next. The wait is bounded on two axes so a delay can never pin a run open indefinitely:
- Per delay: capped at 30 seconds. A larger value is clamped down.
- Per run: every Delay in a single run shares a 60-second total budget. Once it's spent (for example, a long loop that delays every iteration), further delays wait 0 ms and the flow continues immediately.
A missing or invalid ms waits 0 ms. The actual time waited is stored under resultVar (default delay) as { waitedMs }, so a later node — or the run inspector — can see how long it paused.
text
{ waitedMs: <the clamped milliseconds actually waited> }Config
| Field | Required | Description |
|---|---|---|
ms | No (default 0) | Milliseconds to wait. Clamped to 30 000 per delay and to the run's remaining 60 000 ms budget. |
resultVar | No (default delay) | The variable the { waitedMs } result is stored under. |
Ports
| Port | Followed when |
|---|---|
next | Always, once the wait completes. |
Example
Call an API for each record, waiting 500 ms between calls to stay under a rate limit:
WARNING
A delay blocks the run while it waits, including the HTTP response to whoever triggered the flow. Keep delays short on flows called synchronously over HTTP — a serverless platform will time the request out well before the 60-second cap. Longer pauses suit scheduled or form-triggered flows, where no caller is waiting.