Routing Matrices
A process record carries four routing matrices. They decide who is asked at each stage of the lifecycle β nothing more.
Routing matrices are not an access-control mechanism. Being on the control matrix does not grant you rights over the record; it means you receive a task when the process reaches the control stage. Access is governed separately by the record's authority matrix.
The four matricesβ
| Matrix | Drives | Produces |
|---|---|---|
| Opinion matrix | The In Opinion state | One task per row |
| Control matrix | The In Control state | One task per row |
| Approval matrix | The Pending Approval state | One task per row |
| Information matrix | Publication | One notification per resolved person β no tasks |
Each row is an identity: a user, role, user group, position or organization unit.
How tasks are createdβ
When the process transitions into a routed state, the system:
- Cancels any leftover unfinished tasks from the previous state.
- Creates exactly one task per row in the matrix matching the new state.
Every other state β including Published β resolves to an empty assignment list, so the transition only cancels.
This is why a process moving backwards through its pipeline does not accumulate stale tasks: the cancel step runs on every transition regardless of whether new tasks follow.
The quorumβ
The three routed states wait for every party. A state transitions only when the last outstanding task closes β see Lifecycle.
The practical consequences:
- An empty matrix means the gate is trivially satisfied and the state passes through immediately.
- Returning from opinion works the same way: each opinion party completes their own task, and the return transition fires automatically once the last one closes. Nobody has to press a button to end the opinion round.
The information matrix is differentβ
The information matrix does not create tasks at all. When the process publishes, the system:
- Resolves every row to concrete people β expanding roles, positions, organization units and user groups into their current members.
- Creates one in-app notification per resolved person.
An empty information matrix is a silent no-op.
This is the one place where identities are expanded to concrete people at the moment of publication rather than resolved live. A person added to a notified group afterwards will not receive a notification for a publication that already happened.
Copying matricesβ
Both start revision and copy detail deep-copy all four matrices. Every copied row gets a new identity of its own while carrying the assigned party forward unchanged, so editing a revision's matrix never reaches back into the source record.
Configuring the matricesβ
- Open the process while it is in an editable draft state.
- For each matrix, add the identities that should be routed at that stage.
- Prefer roles, positions and groups over named users β see the tip below.
- Save.
Every row in a routed matrix is a task that must be completed before the process can move. A generous approval matrix does not make governance stronger; it makes publication depend on the least available person on the list.