Conditions & Branching
Conditions let your workflow make decisions — running different steps depending on the data in a given run.
If / Else
An If node evaluates a boolean expression against run-time data. If the condition is true, the workflow follows the Yes branch; otherwise it follows the No branch.
Example condition:
trigger.issue.labels includes "bug"
You can combine multiple rules with AND / OR:
trigger.pull_request.state == "open"
AND trigger.pull_request.draft == false
Multi-branch (Switch)
A Switch node routes execution to one of many branches based on the value of a variable. Similar to a switch statement in code.
Example: route a support ticket to different Slack channels based on trigger.ticket.priority:
urgent→#support-urgenthigh→#support-high- (default) →
#support-general
Filter (stop if)
A Filter node stops the run early if a condition is not met. This is useful at the top of a workflow to ignore irrelevant triggers — for example, only proceeding if a GitHub PR targets the main branch.
Loop
A Loop node iterates over an array and executes a set of steps for each item. For example, loop over a list of Jira tickets and post each one to Slack.
Keep condition logic simple. If you find yourself nesting multiple levels of If/Else, consider splitting the workflow into separate workflows triggered by a webhook.