maestro
latest
false
- Introduction
- Getting started
- Process modeling with BPMN
- Process modeling with Case Management
- Designing a persistent case entity schema
- Defining case keys (system vs. external)
- Establishing task I/O and write-back contracts
- Exit rules and early stage termination
- Modeling primary and secondary stages
- Triggering a case from Data Fabric
- Implementing stage-level personas and permissions
- Setting SLAs and automated escalation rules
- Configuring a rework loop (re-entry)
- Managing live case instances: pause, migrate, and retry
- Maestro case management component dictionary
- Process modeling with Flow
- Getting started
- Core concepts
- Node reference
- Build guides
- Best practices
- Reference
- Process implementation
- Debugging
- Simulating
- Publishing and upgrading agentic processes
- Common implementation scenarios
- Extracting and validating documents
- Process operations
- Process monitoring
- Process optimization
- Reference information
Maestro user guide
What it does
Splits a process into two paths based on a JavaScript true/false condition.
Configuration reference
| Field | Required | Default | Description |
|---|---|---|---|
| Expression | Yes | None | JavaScript expression that evaluates to a boolean. Access upstream output with $vars.<nodeName>.<property>. |
| True branch label | No | True | Label shown on the true/yes output handle. |
| False branch label | No | False | Label shown on the false/no output handle. |
Writing condition expressions
Conditions use the same JavaScript environment as the Script node:
// Simple comparison
$vars.httpRequest1.output.statusCode === 200
// Multiple conditions
$vars.data.status === "approved" && $vars.data.amount > 1000
// Null check
$vars.script1.output != null
// String check
$vars.user.role === "admin"
// Simple comparison
$vars.httpRequest1.output.statusCode === 200
// Multiple conditions
$vars.data.status === "approved" && $vars.data.amount > 1000
// Null check
$vars.script1.output != null
// String check
$vars.user.role === "admin"
The expression accepts any JavaScript value — it doesn't need to be a strict boolean. Any truthy value takes the true branch; any falsy value takes the false branch.
Examples
Example 1 — Branch on HTTP status code
Expression: $vars.httpRequest1.output.statusCode === 200
- True → process the response
- False → handle the error
Example 2 — Approval gate
Expression: $vars.reviewForm1.output.approved === true
- True → continue process
- False → notify requester of rejection
Example 3 — Null guard
Expression: $vars.fetchUser1.output != null
- True → proceed with user data
- False → handle missing user
When to use this vs Switch
| Use Decision when... | Use Switch when... |
|---|---|
| You have exactly two outcomes (yes/no, pass/fail, approved/rejected) | You have three or more outcomes |
| The condition is a single boolean expression | You're matching a value against multiple cases |
Related pages
- Switch node — for three or more branches
- Variables and data flow —
$varssyntax and expression patterns - Error handling — handling failures vs conditional branching