Decisions
Business-rule tasks evaluate JSON decision tables. A table is deployed by id, then referenced from BPMN with artificialflow:decisionRef.
Release v1.1.0 keeps the Decisions console route hidden. Deploy and evaluate tables through the command API. Modelers and administrators can call it. The runtime writes the matched outputs into the instance context under decisionResult unless the task sets another result variable, and it also copies those keys onto the top-level context.
Table shape
A table has an id, a hit policy, and rules. FIRST returns the first rule whose when matches. An empty when is the fallback. Comparisons use an operator such as gt and a value.
{
"id": "invoice_decision",
"hitPolicy": "FIRST",
"rules": [
{ "when": { "amount": { "op": "gt", "value": 1000 } }, "then": { "result": "manager" } },
{ "when": {}, "then": { "result": "auto" } }
]
}Deploy and evaluate
$API is the gateway command root, http://localhost:9100/api on a local stack.
curl -fsS -X POST "$API/decisions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"decision_id":"invoice_decision","name":"Invoice routing","resource":"<json table>"}'
curl -fsS -X POST "$API/decisions/invoice_decision/evaluate" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputs":{"amount":1500}}'Point a business-rule task at the table with artificialflow:decisionRef="invoice_decision". Diagrams that still say zeebe:decisionRef or a legacy decisionRef attribute need that rewrite before they execute. Import rules are on the BPMN support page.