Condition — when it depends
A condition asks one question and sends the run one of two ways. You join yes and no to whichever steps should follow.
Add one from the canvas toolbar: Add condition.
Until conditions existed, "if the payment failed, apologise instead" had to be buried in an instruction, where you couldn't see it on the canvas, couldn't test it, and it might read differently on a different afternoon.
Two ways to ask
Compare text — check what an earlier step produced. Does it contain "success"? Is the total greater than 20,000? Is it empty? Free, instant, and it gives the same answer every time.
Ask a model — a yes/no question about the work so far, for the judgement a comparison can't make: "Is this reply polite and ready to send to a customer?"
Compare text is the default, and the one to reach for first. A model answering the same question can answer it differently on different days, which means the same enquiry takes a different path on Tuesday than it did on Monday and you can't reproduce what went wrong. It also costs a model call every time the step runs — including every time round a loop.
Ask a model when the question genuinely needs judgement. Compare text whenever the answer is already sitting in the data.
Joining the two ways up
Drag from the yes dot to the step that should follow a yes, and from no to the step that should follow a no. Either one left unjoined ends the run when that answer comes up.
When it can't decide
If the comparison can't be worked out — "is greater than" with something that isn't a number — the condition takes No. That's the cautious side: the branch that doesn't send anything.
The trace records why it decided what it did, not just which way it went.
Questions people ask
Why does my condition always say no? Usually the comparison can't read what it's given: "is greater than" needs a number on both sides. Check the trace — it says what it compared and what it found.
Can I have more than two ways out? Not from a condition — that's what an agents route is for. Chaining conditions works but reads as a staircase on the canvas and puts a decision on every rung.
Can both branches join back together? Yes. Point both at the same step.
Can a condition send work back to an earlier step? Yes — a reviewer that sends work back to be redone is a normal shape. Loops stop after 40 steps, so a review that never approves stops rather than running all night.
Does a condition cost anything? Not on compare text. "Ask a model" costs one model call each time the step runs.
Related: Sequences · Agents Route · Task

