Why workflows need branching logic
Most real processes are not linear. A purchase request under $500 gets approved by a team lead; one over $10,000 goes to the CFO. A vendor with a low risk score gets fast-tracked; one flagged by compliance goes through a full review. A leave request during a blackout period triggers an HR review that would otherwise be skipped.
This branching behavior is called conditional routing. It lets a single workflow handle the full range of cases your process encounters, without requiring manual intervention to decide which path applies.
What is a condition block?
In workflow design, a condition block is a decision point that evaluates rules against available data and routes work to the appropriate next stage. Visually, it is often represented as a diamond shape, borrowed from BPMN (Business Process Model and Notation) conventions.
A condition block has:
- Input paths: the stage or stages that feed into it
- Condition paths: named branches, each with a set of rules that must be true for that path to be taken
- A default path: what happens if no condition matches (always define this)
Types of conditions
Value comparisons
The most common conditions compare a form field value to a threshold:
amount > 10000risk_score < 3contract_type = "SLA"employee_tenure >= 2
These map directly to business policy rules. If your policy says "purchases over $10,000 require CFO approval," you encode that exact rule.
Existence checks
Sometimes you branch on whether a field was filled in at all:
attachment is presentnotes is empty
Useful when certain form fields are optional but trigger additional review when provided.
Decision-based routing
After a review stage, you can route based on what the reviewer decided:
action = "approved": continue to next stageaction = "rejected": route to rejection notificationaction = "revision_requested": loop back to the submitter
This is how you build reject-and-revise loops: the reviewer picks "Request revision," the workflow routes back to the submitter's queue, they update the form, and the request returns to the reviewer.
External data conditions
Advanced workflows pull data from external systems via HTTP connectors and route on the result. For example:
- Fetch a credit score from your CRM, then branch on the value
- Check inventory levels in your ERP before approving a procurement request
- Validate a document against a compliance API before continuing
This lets your workflow respond to the current state of the world, not just what was submitted in the form.
Designing condition paths: best practices
Be explicit about the default
Every condition block should have a clearly defined default path: the branch taken when no other condition matches. Without it, requests can silently stall. Label the default path clearly ("Standard path," "Other cases") so reviewers understand what it means.
Order conditions by specificity
When multiple conditions could theoretically match, define the most specific first. Condition paths are evaluated in order, and the first match wins. Put your edge cases before your general cases.
Keep conditions simple
Each individual condition should be easy to read and verify. Instead of a single complex condition like amount > 5000 AND (risk_score < 3 OR contract_type = "SLA"), consider splitting it into two branches with clear labels. Complexity in conditions is a maintenance problem waiting to happen.
Name your paths meaningfully
"Path A" tells nobody anything. "CFO review required," "Fast-track approval," and "Standard manager review" tell your team exactly what each branch means. Good naming makes the workflow self-documenting.
A worked example: expense approval
Consider an expense approval workflow with three possible paths:
Under $500: direct approval. Team leads can approve directly. No further escalation.
$500–$5,000: manager review. Routes to the submitter's department manager.
Over $5,000: finance + CFO. Two sequential review stages: Finance validates the budget, then CFO gives final approval.
In the workflow designer, you add a condition block after the initial submission stage. You define three condition paths:
amount < 500→ Direct Approval stageamount >= 500 AND amount <= 5000→ Manager Review stageamount > 5000→ Finance Review stage (which then leads to CFO Approval)
The default path handles anything that falls outside these ranges, which in a well-defined policy should never happen, but gives you a safe fallback.
Testing your conditions
Before rolling out a workflow with conditional routing, test each path explicitly:
- Submit a request that satisfies the first condition. Verify it routes correctly.
- Repeat for every condition path, including the default.
- Test boundary values: exactly $500 should hit the manager review path, not the direct approval.
- Check that the audit trail records which path was taken and why.
Untested conditions are the most common source of workflow bugs. A request routing to the wrong reviewer is often worse than no routing at all, because it looks like it worked.
What good routing feels like
When conditional routing is done well, it is invisible. Submitters submit, the right reviewers get the right work, and the process flows. Nobody has to decide which approval path applies; the workflow knows.
This is the leverage of well-designed process automation: the policy is encoded once and executed reliably, every time, without anyone having to remember how it works.