Portal Community
Pass-through semantics: The If Condition node does not transform or produce new data. It reads the current execution context to evaluate its condition, then passes the same execution context — unchanged — to whichever output port fires. Downstream nodes receive exactly the same data that arrived at the If Condition node.

Output Ports

Port When Triggered Description
true Condition expression evaluates to a truthy value Execution continues along the true path. All nodes connected to this port are activated. The full execution context is forwarded unchanged.
false Condition expression evaluates to a falsy value, null, undefined, or an evaluation error Execution continues along the false path. Nodes connected to this port are activated. The full execution context is forwarded unchanged.
Exactly one port fires per execution: The If Condition node always fires exactly one output port per execution pass. It is not possible for both true and false to fire simultaneously. If neither port has any connected nodes, execution terminates gracefully at this node.

Output Data

The If Condition node adds a single metadata field to the execution context to record the result of the evaluation:

Field Type Value Description
condition_result boolean true or false The resolved boolean result of the condition expression. Available to downstream nodes via the execution context for audit/logging purposes.
All input fields as received unchanged Every field present in the incoming execution context is passed through to the output port without modification. Variables, prior node outputs, and input data remain fully accessible.

Data Flow Example

The following illustrates the data available at each stage when an If Condition node is used to route orders by value:

// === Incoming Execution Context (available to condition) ===
{
  "variables": {
    "orderTotal": 12500.00,
    "customerId": "C-8841",
    "orderStatus": "pending"
  },
  "input": {
    "order_id": "ORD-20240512-001",
    "line_items": [ ... ],
    "currency": "USD"
  }
}

// === If Condition Configuration ===
{
  "condition": "$var.orderTotal > 10000"
}

// === Evaluation ===
// $var.orderTotal resolves to 12500.00
// Expression: 12500.00 > 10000 → true

// === Output on "true" port ===
{
  "variables": {
    "orderTotal": 12500.00,
    "customerId": "C-8841",
    "orderStatus": "pending"
  },
  "input": {
    "order_id": "ORD-20240512-001",
    "line_items": [ ... ],
    "currency": "USD"
  },
  "condition_result": true
}

// === "false" port ===
// Not fired. No nodes on the false path are executed.

Connecting Output Ports

In the BizFirstAI workflow designer, each output port appears as a labelled connector on the If Condition node. Drag a connection wire from the true port to the node that should handle the positive case, and from the false port to the node that handles the negative case. Neither port is required to have a connection — leaving a port unconnected simply ends execution on that branch.

Both ports can fan out to multiple downstream nodes if needed. When both true and false paths eventually need to converge (e.g., both paths write to a log), connect them both to the same downstream node. The downstream node will execute once for whichever branch fires.