Skip to content

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

FieldRequiredDescription
msNo (default 0)Milliseconds to wait. Clamped to 30 000 per delay and to the run's remaining 60 000 ms budget.
resultVarNo (default delay)The variable the { waitedMs } result is stored under.

Ports

PortFollowed when
nextAlways, 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.

See also

FlowRunner — the no-code platform for small businesses.