How an Approval Matrix Runs
Once a matrix is enabled, every document sent for approval opens an approval run that walks the matrix's stages in order. This page follows one run from start to finish: who is asked, how a stage is settled, what happens if nobody answers, and why an edited document can need approving again.
Where to find it
Architect Panel → Automation:
- Approval Matrices — Recent approvals shows each run's state and stage
- Approvals Inbox — where each stage's approvers decide
Admin Panel → ERP - Setup:
- Approval Matrices — the same console for ERP administrators
From submission to approval
- The document is sent for approval. As it enters the matrix's Status sought, the engine finds the matrix: a company's own matrix first, then the one for every company. No enabled matrix means no approval run.
- Its value is banded. The value basis is read and, if the matrix has a currency, converted at the spot rate on the document's date. If a stage cannot be resolved or there is no rate, the move is refused and the document stays where it was.
- The first stage opens. Its approvers are worked out now and recorded, and one request is raised for each person, in their Approvals Inbox and in-tray.
- The stage is settled when its quorum is reached: any one, all, or a set number of distinct people. The others' requests are withdrawn.
- The next stage whose band includes the value opens, and so on. Stages whose band excludes the value are skipped.
- When the last stage is granted the run is granted and the record's activity notes "Approved: all stages granted." Deciding from the Approvals Inbox then moves the document to Status when approved.
A rejection at any stage settles the whole run at once: the remaining requests are withdrawn and, from the inbox, the document moves to Status when rejected.
Who is asked
- Approvers are fixed when the stage opens. Joining a security group after a request was raised does not make you its approver, and an auditor can see who was actually asked.
- A stage that resolves to nobody fails closed. It never becomes "anyone may decide"; the document does not move.
- The cost-centre owner kind asks the owner of every cost centre the document's lines are charged to; two cost centres with two owners means two approvers.
- The person who raised the document is left out of a stage's approvers unless that stage has Allow self-approval ticked. If they were its only approver, the stage cannot open. (The matrix's own "Nobody may approve what they raised themselves" box is stored with the matrix; on this version the stage setting is what the engine applies.)
- Delegation: on a stage with Allow delegation, someone covering for an approver under a current delegation may decide; see Approvers, Groups and Delegation.
Deadlines, reminders and escalation
- A stage's SLA (hours) records when its requests are due, so a late stage can be seen in the run's record.
- Reminders and escalation are driven by the matrix's Reminder After (Hours) and Escalate After (Hours) and the stage's Escalate To Kind and Escalate To. These are fields of the Approval Matrices and Approval Matrix Stages records; the console does not show them. A reminder is noted in the record's activity.
- Escalation opens a new stage instance, marked "(escalated)", for the escalation target, so the history reads "asked A, A did not answer, asked B".
- Nothing is ever approved by silence. A stage past its time with no escalation target stays open.
- All of this runs from the task Approval Matrix, every 15 minutes, which is installed switched off and in preview mode. An architect turns it on from the Tasks screen; see Tasks.
When the document changes
An approval belongs to the document as it was when it was submitted. If the document is edited afterwards, moving it to the approved status checks whether the change matters. With the default rule (Re-approve On Change: material) it needs approving again when its value moved past the matrix's material-change thresholds, or when any line was re-coded to a different cost centre, however small. The old run is superseded and the move says "This has changed since it was approved and needs approving again."
When the document is cancelled
A document that reaches a dead-end status (Cancelled, Closed, Rejected) while its run is open has the run withdrawn and its pending requests closed, never decided. The Approval Matrix task also sweeps up any older runs left open this way.
What goes wrong
- "Stage '…' resolved to nobody": check the person, group, team, field or cost-centre owner it names.
- "There is no … to … exchange rate": add the rate, then submit again.
- Nobody chases late approvals. The Approval Matrix task is off, or no reminder or escalation hours are set.
Worked example
A requisition for 12,500 is submitted. Stage 1 asks the owners of its two cost centres, and both must approve. Stage 2, over 10,000, asks the Finance Directors group. One director is on leave and a colleague covering under a delegation approves. Before the order is raised, the requester changes a line's cost centre: the next move is refused as needing approval again, and a new run starts.
Recommendations
- Turn on the Approval Matrix task before relying on SLAs or escalation.
- Set an escalation target on stages where silence would hold up the business.
- Leave Allow self-approval off except where segregation is not required.
- Keep cost-centre owners up to date; a missing owner blocks the stage.