Product
Your workflow should not branch on a sentence
One block that sorts, instead of four that guess.
By Ehsan Gazar, 4 October 2026
A message arrives and your workflow first has to work out what kind of message it is. So you add a chat model step that writes a label. Then a branch that checks the label, then another, then another.
Every one of those branches is matching words a model chose to write.
The chain that reads one word
You ask for design_question and the model writes "This looks like a design question" instead. The first branch misses it, then the second, and the message falls through to the last path. Nothing fails, so nothing tells you.
You also wait for a whole sentence to be written, and keep one word of it.
One block with named ways out
The Decide block replaces the chain. You name between two and ten options, each with a line saying what puts a message there. The block asks Jev, a decisions model that answers with a choice rather than with text.
Each option is its own path out of the block.
The answer can only be one of the names you wrote. If it ever comes back as anything else, the run stops and says so. It never takes a path it was not given.
The message passes through unchanged. A later block reads the decision as {{nodes.route.choice}}, and how sure the model was as {{nodes.route.confidence}}.
Where it runs today
The system design assistant on gazar.dev is built on this. Its first step used to be a chat model writing an intent, followed by three yes or no branches. It is now one Decide block with four options.
The earlier turns go with the message. So a short follow-up such as "and with Redis?" is still sorted as a design question, not as small talk.
On the same test messages it took the right path every time, and it got there faster than the chain did. You add one from the AI group when you add a block.
If the next step depends on a label, ask for the label, not a sentence about it.