Condition Operators
Comparison Operators
Equal (eq)
{ "condition": { "operator": "eq", "left": { "contextPath": "status" }, "right": "ready" }}Works with strings, numbers, booleans.
Not Equal (neq)
{ "condition": { "operator": "neq", "left": { "contextPath": "error_count" }, "right": 0 }}Greater Than (gt)
{ "condition": { "operator": "gt", "left": { "contextPath": "score" }, "right": 80 }}Greater Than or Equal (gte)
{ "condition": { "operator": "gte", "left": { "contextPath": "items_count" }, "right": 1 }}Less Than (lt)
{ "condition": { "operator": "lt", "left": { "contextPath": "retry_count" }, "right": 3 }}Less Than or Equal (lte)
{ "condition": { "operator": "lte", "left": { "contextPath": "error_rate" }, "right": 0.05 }}String Operators
Contains (contains)
{ "condition": { "operator": "contains", "left": { "contextPath": "message" }, "right": "error" }}Also works with arrays:
{ "condition": { "operator": "contains", "left": { "contextPath": "tags" }, "right": "urgent" }}Existence Operators
Exists (exists)
{ "condition": { "operator": "exists", "operand": { "contextPath": "optional_field" } }}Returns true if variable exists and is not null/undefined.
Is Empty (isEmpty)
{ "condition": { "operator": "isEmpty", "operand": { "contextPath": "items" } }}Returns true for:
- Empty string
"" - Empty array
[] - Null/undefined
Logical Operators
AND (and)
All conditions must be true:
{ "condition": { "operator": "and", "conditions": [ { "operator": "eq", "left": { "contextPath": "status" }, "right": "complete" }, { "operator": "gt", "left": { "contextPath": "score" }, "right": 80 } ] }}OR (or)
At least one condition must be true:
{ "condition": { "operator": "or", "conditions": [ { "operator": "eq", "left": { "contextPath": "priority" }, "right": "high" }, { "operator": "eq", "left": { "contextPath": "priority" }, "right": "critical" } ] }}NOT (not)
Negates a condition:
{ "condition": { "operator": "not", "condition": { "operator": "eq", "left": { "contextPath": "status" }, "right": "blocked" } }}Context Path Syntax
Simple Path
{ "contextPath": "variable_name" }Nested Path
{ "contextPath": "user.profile.name" }Array Index
{ "contextPath": "items[0]" }Combined
{ "contextPath": "results[0].score" }Literal Values
Right-hand values can be literals:
{ "right": "string value"}{ "right": 42}{ "right": true}{ "right": null}When comparing with contextPath on both sides, both values are resolved from context before
comparison.
Common Patterns
Check Boolean Flag
{ "condition": { "operator": "eq", "left": { "contextPath": "has_tests" }, "right": "yes" }}Check Iteration Limit
{ "condition": { "operator": "lt", "left": { "contextPath": "current_iteration" }, "right": 5 }}Check Non-Empty Result
{ "condition": { "operator": "and", "conditions": [ { "operator": "exists", "operand": { "contextPath": "result" } }, { "operator": "not", "condition": { "operator": "isEmpty", "operand": { "contextPath": "result" } } } ] }}See Also
- Workflow Templates - Using conditions in workflows
- Validation - Input validation rules