Workflow Conditions
Conditions allow workflows to make decisions and follow different paths based on data. Create intelligent automations that respond to different scenarios.

Overview
Conditions evaluate expressions and route workflow execution:
Condition: Is client new?
↓ Yes ↓ No
Send welcome Send regular
email reminder
Condition Types
Simple Conditions
Single yes/no decision:
| Condition | True Path | False Path |
|---|---|---|
| Client is new | Welcome flow | Regular flow |
| Invoice paid | End | Send reminder |
| Risk flagged | Alert supervisor | Continue |
Router Conditions
Multiple paths based on value:
| Condition | Path 1 | Path 2 | Path 3 |
|---|---|---|---|
| Funding source | Medicare | NDIS | Private |
| Priority | High | Medium | Low |
| Client age | Child | Adult | Senior |
Creating Conditions
Adding a Condition Node
- Drag Condition node onto canvas
- Connect from previous node
- Configure the condition logic
- Connect True and False outputs
- Continue building paths

Condition Builder
| Component | Description |
|---|---|
| Field | Data to evaluate |
| Operator | Comparison type |
| Value | What to compare against |
Available Fields
Access any data from trigger or previous nodes:
{{trigger.data.client.funding_source}}
{{trigger.data.appointment.type}}
{{previous_node.result.status}}
{{client.date_of_birth}}
{{appointment.practitioner.name}}
Operators
Conditions use a field, an operator, and a value to evaluate. The available operators are:
| Operator | Description | Example |
|---|---|---|
| Equals | Exact match | Status equals "Active" |
| Not equal | Does not match | Type not equal to "Cancelled" |
| Greater | Numerically greater than | Amount greater than 100 |
| Less | Numerically less than | Age less than 18 |
| At least | Greater than or equal to | Sessions at least 5 |
| At most | Less than or equal to | Days overdue at most 7 |
| Contains | Text includes substring (case-insensitive) | Name contains "Smith" |
| In | Value found in a list | Status in ["Active", "New"] |
| Exists | Field has a value (not empty) | Phone number exists |
example, client.fundingSource or appointment.practitioner.name to drill into
related objects. :::
Combining Conditions
AND Logic
All conditions must be true:
IF:
client.funding_source equals "NDIS"
AND client.is_active equals true
AND client.has_plan equals true
THEN:
Submit NDIS claim
OR Logic
Any condition can be true:
IF:
invoice.days_overdue > 30
OR invoice.amount > 1000
OR client.risk_flag equals "High"
THEN:
Escalate to manager
Mixed Logic
Combine AND/OR with grouping:
IF:
(client.type equals "New" AND appointment.type equals "Initial")
OR
(client.type equals "Returning" AND client.inactive_days > 90)
THEN:
Send intake forms
Router Nodes
When to Use Routers
Use routers instead of conditions when:
- More than 2 possible paths
- Routing by value rather than yes/no
- Same logic repeated multiple times
Router Configuration
- Drag Router node onto canvas
- Define the routing field
- Add path for each value
- Configure default path
- Connect each output
Router Example
Route by funding source:
Router: client.funding_source
Path 1: "Medicare" → Medicare claim workflow
Path 2: "NDIS" → NDIS claim workflow
Path 3: "DVA" → DVA claim workflow
Path 4: "Private" → Private invoice workflow
Default: Manual review
Dynamic Routing
Route based on calculated values:
| Routing Field | Paths | Use Case |
|---|---|---|
| Client age group | Child, Adult, Senior | Age-appropriate content |
| Risk level | Low, Medium, High | Escalation routing |
| Day of week | Mon-Fri, Sat-Sun | Business hours routing |
| Amount range | <$100, $100-500, >$500 | Approval tiers |
Common Condition Patterns
New vs Existing Client
Condition: client.isNew equals true
True → New client workflow
False → Existing client workflow
Consent Validation
Condition: client.consent.marketing equals true
True → Include in campaign
False → Skip
Risk-Based Routing
Router: assessment.risk_level
"Severe" → Immediate alert to supervisor
"High" → Schedule urgent follow-up
"Moderate" → Add to watchlist
"Low" → Standard care path
Payment Threshold
Condition: invoice.amount greater_than 500
True → Require manager approval
False → Process automatically
Appointment Type Routing
Router: appointment.type
"Initial Consultation" → Full intake workflow
"Follow-up" → Brief check-in
"Telehealth" → Send video link
"Group Session" → Group notification
Default → Standard reminder
Advanced Features
Nested Conditions
Conditions can contain other conditions:
Condition: Is high priority?
True →
Condition: During business hours?
True → Alert immediately
False → Schedule for morning
False → Add to regular queue
Condition with Delay
Combine conditions with delays:
Trigger: Invoice created
↓
Delay: 7 days
↓
Condition: Invoice still unpaid?
True → Send reminder
False → End
Loop with Condition
Check condition for each item:
Loop: For each client appointment
↓
Condition: Is confirmed?
True → Skip
False → Send reminder
↓
End loop
Debugging Conditions
Testing Conditions
- Go to workflow editor
- Click Test mode
- Enter sample data
- See which path executes
- Verify logic is correct
Common Issues
| Problem | Cause | Solution |
|---|---|---|
| Always true | Condition too broad | Add more specific criteria |
| Always false | Condition too strict | Relax criteria or check data |
| Wrong path | Operator incorrect | Review operator meaning |
| No match | Value format differs | Check field format and value |
Execution Logs
View condition evaluation in logs:
- Go to Workflows → [Workflow] → History
- Click specific execution
- Expand condition node
- See evaluated values and result
Best Practices
Keep Conditions Simple
// ❌ Too complex
IF (A AND B) OR (C AND D) OR (E AND F AND G)
// ✅ Use multiple conditions or router
Router: priority_type
"urgent" → Urgent path
"normal" → Normal path
"low" → Low priority path
Use Meaningful Names
// ❌ Poor naming
Condition: check1
// ✅ Clear naming
Condition: Is client eligible for Medicare rebate?
Handle Edge Cases
// ✅ Include default/else paths
Condition: Has email?
True → Send email
False →
Condition: Has phone?
True → Send SMS
False → Flag for manual contact
Document Complex Logic
Add notes explaining business rules:
Condition: High value client
// Clients with > $5000 annual billing
// OR 3+ years as client
// OR referred 5+ new clients
Permissions
| Action | Who Can Do This |
|---|---|
| View conditions | Practice owner, practice manager |
| Edit conditions | Practice owner |
| Test conditions | Practice owner |