Decisions
A decision pulls a set of business rules out of your process and into a table of conditions and the outcomes they produce. Instead of burying the logic in gateway conditions or an agent’s prompt, you write it as a decision table anyone can read — and a process calls it with a business rule task.
When to use a decision
Section titled “When to use a decision”Reach for a decision when the logic is really a table of rules:
- a credit tier by amount and region;
- routing by category and priority;
- a fee or discount by customer tier;
- an eligibility check with several conditions.
Not every choice needs one. A simple amount < 10000 belongs on a gateway. Use a decision when the rules are numerous, change often, or need to stay legible to non-engineers — and use an agent instead when the input is unstructured and the “rules” can’t be enumerated.
What a decision table is
Section titled “What a decision table is”Decisions are built on DMN (Decision Model and Notation), the open standard for rule tables. A table has:
- Inputs — the condition columns (the amount, the region, the category), each typed as string, number, or boolean.
- Outputs — the result columns (the tier, the route, the fee).
- Rules — the rows. Each input cell is a small FEEL condition —
>= 25,[18..65](a range),low, medium(a list), or-(any). A row matches when every input cell matches; its output cells are the result. - A hit policy — what to do when more than one row matches:
| Hit policy | Behaviour |
|---|---|
| First | The first matching row (top to bottom) wins. |
| Unique | Exactly one row should match — an error if more do. |
| Any | Several may match, but they must all give the same output. |
| Collect | Gather the outputs of every matching row. |
| Rule order | Return every match, in table order. |
How a process uses a decision
Section titled “How a process uses a decision”A business rule task in a process binds a decision. At run time it evaluates the table against the process variables and writes the outcome back into a variable — which a downstream gateway can then branch on. Decisions are reusable and versioned, so one rule table can serve several processes and change without editing any of them.