Skip to main content

Routing Matrices

A process record carries four routing matrices. They decide who is asked at each stage of the lifecycle β€” nothing more.

caution

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​

MatrixDrivesProduces
Opinion matrixThe In Opinion stateOne task per row
Control matrixThe In Control stateOne task per row
Approval matrixThe Pending Approval stateOne task per row
Information matrixPublicationOne 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:

  1. Cancels any leftover unfinished tasks from the previous state.
  2. 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:

  1. Resolves every row to concrete people β€” expanding roles, positions, organization units and user groups into their current members.
  2. Creates one in-app notification per resolved person.

An empty information matrix is a silent no-op.

note

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​

  1. Open the process while it is in an editable draft state.
  2. For each matrix, add the identities that should be routed at that stage.
  3. Prefer roles, positions and groups over named users β€” see the tip below.
  4. Save.
tip

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.