Skip to content
New to Superprocess? The guided invoice walkthrough takes you from a blank canvas to a running workflow.Get started

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.

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.

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.

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.