Flow control nodes

Flow control nodes decide when, how often, and in what order the rest of a flow runs. See how nodes work for how to read the diagrams below.

Delay

Pauses this branch of the flow, then continues.

DelayExecuteDuration (s)Done
Inputs
ExecuteFlow
Duration (s)Number
Overrides the property when connected and not 0.
Outputs
DoneFlow
Properties
Duration (seconds)
0 to 3600. Default 1.

While a Delay waits, nothing after it in the same branch runs. If it sits on one of several branches from the same output, the branches that come after it wait too.

Debounce

Reports whether a cooldown has passed since the last time it let flow through.

DebounceExecuteDonePassed
Inputs
ExecuteFlow
Outputs
DoneFlow
PassedBoolean
True when the cooldown had passed.
Properties
Cooldown (seconds)
0.1 to 3600. Default 1.

The first run always passes. After that, Passed is true only when at least Cooldown seconds have gone by since the last run that passed. Done fires either way, so to actually stop the flow, send Passed into an If node, or use Throttle, which has a separate Blocked output.

Throttle

Limits how often flow can pass.

ThrottleExecutePassedBlockedPassedRemaining Seconds
Inputs
ExecuteFlow
Outputs
PassedFlow
Runs when enough time has passed.
BlockedFlow
Runs when it is too soon.
PassedBoolean
Remaining SecondsNumber
Time until flow can pass again. 0 when it passes.
Properties
Interval (seconds)
0.01 to 3600. Default 1.

The first run passes. Later runs pass only when at least Interval seconds have gone by since the last run that passed; the rest go to Blocked.

Time Window Gate

Lets flow through only during set hours and days.

Time Window GateExecuteTimestampOpenClosedIs OpenReasonNow
Inputs
ExecuteFlow
TimestampString
Optional. Checks this date and time instead of now.
Outputs
OpenFlow
Runs when inside the window.
ClosedFlow
Runs when outside the window.
Is OpenBoolean
ReasonString
Why the gate is open or closed.
NowString
The time that was checked, in ISO 8601 format.
Properties
Start Time
24-hour HH:mm. Default 09:00.
End Time
24-hour HH:mm. Default 17:00.
Allowed Days
Comma-separated, for example Mon,Tue,Wed. Default every day.
Use UTC
Check UTC time instead of local time. Default off.

Start and end times are both included in the window. If End Time is earlier than Start Time, the window runs past midnight, so 22:00 to 06:00 covers the night. Allowed Days is checked against the current day, so the after-midnight part of an overnight window also needs the next day to be allowed. Invalid times send flow to Closed.

Gate

Sends flow to Passed or Blocked based on a condition.

GateExecuteIs OpenPassedBlocked
Inputs
ExecuteFlow
Is OpenBoolean
Uses Default Open when it has no value.
Outputs
PassedFlow
Runs when the gate is open.
BlockedFlow
Runs when the gate is closed.
Properties
Default Open
Default on.

Sequence

Runs several outputs in a fixed order.

SequenceExecuteOutput 1Output 2Output 3Output 4
Inputs
ExecuteFlow
Outputs
Output 1 … Output NFlow
One output per step.
Properties
Output Count
Number of outputs, 1 to 20. Default 4.

Sequence fires Output 1 and waits for everything connected to it to finish, then fires Output 2, and so on.

Await All

Waits for several branches to arrive, then continues once.

Await AllExecuteDone
Inputs
ExecuteFlow
Accepts several wires.
Outputs
DoneFlow

Done fires after every wire connected to Execute has fired in the current run. If one of those branches does not reach it, for example because an If took the other path, Done does not fire for that run.

Await Any

Continues on the first branch to arrive.

Await AnyExecuteDone
Inputs
ExecuteFlow
Accepts several wires.
Outputs
DoneFlow

Done fires for the first wire that reaches Execute in a run. Later arrivals in the same run are ignored.

Repeat

Runs a branch a set number of times, with an optional pause between repeats.

RepeatExecuteRepeat CountDelay (s)Repeat BodyIndexIterationRepeat CountCompleted
Inputs
ExecuteFlow
Repeat CountNumber
Overrides the property when connected.
Delay (s)Number
Overrides the property when connected.
Outputs
Repeat BodyFlow
Runs once per repeat.
IndexNumber
Current repeat, counting from 0.
IterationNumber
Current repeat, counting from 1.
Repeat CountNumber
Total repeats in this run.
CompletedFlow
Runs after the last repeat.
Properties
Repeat Count
0 to 10000. Default 1.
Delay Between Repeats (seconds)
Pause after each repeat except the last, 0 to 3600. Default 0.

Each repeat finishes before the next one starts. With a count of 0, flow goes straight to Completed.

Contributors

Thank you to everyone who has helped improve this documentation.