Skip to content

Logic Nodes

Conditional branching with two output handles: true and false.

{
"id": "if-1",
"type": "if_else",
"data": {
"type": "if_else",
"condition": "{{agent-1.output}}.includes('positive')",
"trueLabel": "Positive",
"falseLabel": "Negative"
}
}

Connect the true handle to one branch and false to another using edge sourceHandle.

Loops execution while a condition is true.

{
"id": "while-1",
"type": "while",
"data": {
"type": "while",
"condition": "{{state.retryCount}} < 3",
"maxIterations": 10
}
}
FieldTypeDescription
conditionstringExpression evaluated each iteration
maxIterationsnumberSafety limit to prevent infinite loops

Pauses the flow and waits for human approval before continuing.

{
"id": "approval-1",
"type": "user_approval",
"data": {
"type": "user_approval",
"message": "Review this post before publishing:",
"timeout": 3600
}
}
FieldTypeDescription
messagestringMessage shown to the reviewer
timeoutnumberSeconds to wait before timing out

Has two output handles: approved and rejected.

Sets flow variables to specific values.

{
"id": "state-1",
"type": "set_state",
"data": {
"type": "set_state",
"assignments": [
{ "key": "counter", "value": "0" },
{ "key": "status", "value": "processing" }
]
}
}

Split execution into parallel branches, then wait for all to complete.

Fork splits into multiple outgoing edges that execute concurrently:

{
"id": "fork-1",
"type": "parallel_fork",
"data": { "type": "parallel_fork" }
}

Join waits for all incoming parallel branches to complete:

{
"id": "join-1",
"type": "parallel_join",
"data": { "type": "parallel_join" }
}
→ Parallel Fork
→ Branch A (HTTP API)
→ Branch B (HTTP API)
→ Branch C (Agent)
→ Parallel Join
→ Agent (combine results)