All articles

Enterprise Systems9 min read

Approval Workflow Design: Approval Matrices, Delegation and Audit Trails

A good approval workflow routes each request to the right people by rule, enforces segregation of duties and records every decision. This guide covers approval matrices, delegation, re-approval rules, audit trails, testing and a design checklist.

Written byUsama AsifPublished

An approval workflow is the set of rules that decides who must approve a request (a purchase, invoice, expense, contract or change) before it takes effect, in what order, within what time, and what is recorded. A sound design routes by an approval matrix, enforces segregation of duties, handles absence through controlled delegation and keeps a complete audit trail.

Most approval problems are not software problems. They come from rules nobody wrote down, approvers who sign anything to clear their inbox, and edits made after approval that nobody re-checks. This guide works through the design decisions in the order you will meet them, then gives a test plan and a checklist. It applies whether approvals live in an ERP, a workflow tool or a custom ERP build.

What is an approval matrix and how should you design one?

An approval matrix is a table that maps the attributes of a request (type, amount, department, entity, category) to the approvers it needs. It should be data the business can maintain, not logic buried in code.

Common routing dimensions:

  • Amount. Bands, each adding an approval level.
  • Department or cost centre. The budget holder approves spend against their budget.
  • Legal entity. In a group, each company has its own signatories. Our guide to multi-entity ERP governance covers entity-level controls.
  • Category. IT, capital expenditure, contracts or marketing may need a specialist approver whatever the amount.
  • Vendor status. A first purchase from a new vendor may need an extra check.

An illustrative matrix for purchase requests (the thresholds are examples; set your own):

RequestConditionApproversOrder
Purchase requestUp to 1,000Budget holderSingle
Purchase request1,000.01 to 10,000Budget holder, then department headSequential
Purchase requestAbove 10,000Budget holder, department head, then finance directorSequential
Any purchaseCategory: IT hardware or softwareAdd IT leadParallel with budget holder
Any purchaseCapital expenditureAdd financial controllerAfter department head
Any purchaseNew vendorAdd procurement vendor checkBefore first approval
ContractTerm over 12 months or auto-renewalAdd legal reviewParallel with finance

Three rules make a matrix workable. Define boundaries precisely (does 1,000 fall in the first or second band?). Give every row a fallback approver, so a gap in the matrix never means "no approval needed". And version the matrix: record which version routed each request, so an audit can see the rules that applied at the time.

Should approvals be sequential or parallel?

Use sequential steps when a later approver relies on an earlier one, and parallel steps when approvers check independent things. Many workflows mix both.

PatternHow it worksUse whenWatch for
SequentialEach approver acts after the previous oneBudget holder confirms need before finance checks fundsSlow; one absent approver blocks everything
Parallel, all must approveSeveral approvers act at once; all requiredIT and finance check different aspectsOne rejection should stop the others
Parallel, any one approvesFirst approver from a group decidesA pool of equally authorised approversMake sure the group really is equivalent
Conditional stepAdded only when a rule firesLegal review only for certain contractsConditions must be tested at their boundaries

How should escalation and approval deadlines work?

Every step needs a target turnaround, reminders before it is missed, and an escalation path after. A timeout should never approve a request automatically.

A typical pattern: a reminder when half the target time has passed, a second reminder at the deadline, then escalation to the approver's manager or a named deputy. Measure deadlines in business days on the right calendar for each entity, since public holidays differ by country. Report on steps that regularly breach their target: a step that always escalates is usually in the wrong place or held by the wrong person.

How should delegation and out-of-office rules work?

Delegation lets an approver hand their authority to someone else for a defined period. Without controlled delegation, people share passwords or approve from their phones on holiday without reading.

Rules worth enforcing in the system:

  • A start and end date on every delegation; no open-ended delegations
  • A scope: all requests, or only certain types, entities or amounts up to a cap
  • The delegate must hold a role that could approve in their own right, or the delegation needs a further sign-off
  • A delegate can never approve their own request
  • No chains: a delegate cannot re-delegate
  • The record shows "approved by A on behalf of B", never just B
  • Delegations are themselves logged and reviewable

How do you enforce segregation of duties?

Segregation of duties means no single person controls a transaction from start to finish. At minimum, the requester, the approver and the person who releases payment should be different people, and the system should enforce it rather than rely on habit.

NIST SP 800-53 (Rev. 5) includes separation of duties as control AC-5: organisations identify duties that need separating and set system access so they are separated. In an approval workflow that becomes rules like these:

DutyMust not alsoWhy
Raise a purchase requestApprove the same requestSelf-approval
Approve an invoiceRelease its paymentApproval and payment in one hand
Maintain vendor bank detailsRelease paymentsRedirecting payments
Configure the approval matrixApprove requests routed by itChanging the rules to suit a request
Post the goods receiptApprove the invoice for the same POConfirming your own delivery claim

Small teams cannot always separate every duty. Where they cannot, use compensating controls: a regular after-the-fact review of transactions where one person held two roles, signed off by someone independent.

What should happen when a request is edited after approval?

Changes to material fields after approval should restart approval; changes to non-material fields should be logged without restarting it. Decide which fields are which before you build.

  • Material (restart approval): an amount increase beyond a set tolerance, vendor, bank details, legal entity, cost centre, category, currency, payment terms
  • Non-material (log only): description wording, an extra supporting attachment, an internal note
  • Decreases: many organisations let amounts go down without re-approval, but record the change

Once approved, lock the record. Changes go through an amendment that keeps the approved version intact, so anyone can compare what was approved with what was paid.

What should an approval audit trail record?

An audit trail should answer who did what, when, to which record, with what result, and what the data looked like before and after. NIST SP 800-53 control AU-3 sets out similar content for audit records: the type of event, when and where it occurred, its source, its outcome and the identity of those involved.

ElementExample
WhoUser ID, and "on behalf of" for delegations
WhatSubmitted, approved, rejected, recalled, edited, escalated, delegated
WhenTimestamp with time zone
Which recordRequest ID and version number
Before and afterField-level changes, such as amount 4,800 to 5,600
WhyApproval or rejection comment; mandatory on rejection
Rule appliedMatrix version and the row that routed the request
ChannelWeb, mobile or email link

Make the trail append-only: no one, including administrators, should be able to edit or delete entries through the application. Make it easy to read too, as a timeline on each record, so managers use it and do not only discover it during an audit.

How should notifications and mobile approval work?

Notifications should carry enough context to decide (requester, amount, purpose, budget status) and a link that opens the request after sign-in. Avoid one-click approval links in email that work without authentication; a forwarded email should not carry approval authority.

Mobile approval earns its place when approvers travel or work on site. Show the key fields and the attachments on a small screen, require the approver to open the request before acting, and record the channel in the audit trail. For high-volume approvers, a daily digest with batch review of low-value items reduces noise; keep high-value items as individual notifications.

How should exceptions be handled?

Exceptions need defined paths, because people will improvise if the system gives them none.

  • Emergency purchases: allow a retrospective approval route, clearly flagged and reported monthly
  • Rejections: require a reason; let the requester amend and resubmit as a new version
  • Recall: let the requester withdraw before final approval
  • Approver leaves the organisation: reassign their open items automatically to the fallback approver
  • No matching matrix row: route to the fallback owner; never pass through unapproved

Where can AI help, and where must people decide?

AI is useful for preparing decisions: classifying a request into the right category, suggesting a cost centre or account code, routing to the right matrix row, flagging likely duplicates and summarising long supporting documents. If requests arrive as documents, extraction is covered in our intelligent document processing guide.

People must make the decisions that carry accountability: approving spend, overriding policy, granting segregation-of-duties exceptions and accepting a new vendor. Record AI output as a suggestion with the person who accepted or changed it, and never let a model's classification lower the approval level a request needs without a rule check.

How do you test an approval workflow?

Test the rules, not only the screens. Each matrix row, boundary and control needs a test case with a predicted result.

TestExample caseExpected result
Band boundariesRequests at exactly 1,000.00 and 1,000.01Each routes to the band you defined
Every matrix rowOne request per row and conditionCorrect approvers, correct order
Segregation of dutiesRequester tries to approve own requestBlocked, attempt logged
DelegationDelegate approves inside, then outside, the delegation periodAllowed, then blocked
Edit after approvalIncrease amount above toleranceApproval restarts
EscalationLeave a step idle, with a test clockReminders, then escalation; no auto-approval
ConcurrencyTwo parallel approvers act at the same momentOne consistent final state
Audit trailReview the trail after each testEvery action recorded with before and after values
MobileApprove from phone with attachmentsSame rules, channel recorded

Then run a short parallel period with real requests, comparing the workflow's routing with what the current process would have done.

Approval workflow design checklist

  1. Approval matrix written as data, with exact band boundaries and a fallback approver per row
  2. Matrix versioned, with the version stored on every request
  3. Sequential and parallel steps chosen by dependency, not habit
  4. Turnaround targets, reminders and escalation; no automatic approval on timeout
  5. Delegation with dates, scope, cap and "on behalf of" recording
  6. Segregation-of-duties rules enforced by the system, with compensating controls where needed
  7. Material and non-material fields defined; re-approval rules built and tested
  8. Append-only audit trail with before and after values
  9. Notifications that need sign-in to act
  10. Exception paths for emergencies, recalls, leavers and unmatched requests
  11. AI limited to suggestions, recorded as such
  12. Test cases for every row, boundary and control, signed off by finance or internal audit

When is a new approval system not the answer?

If your ERP or accounting system already supports configurable approvals that cover your matrix, configure it before you build anything. If the matrix itself is not agreed, software will only encode the argument. And if a request already needs five approvals, adding automation will not fix the delay: fewer levels with clearer authority will. Our introduction to business process automation and the collection of business process automation examples help decide what is worth automating first.

How Timeline Digital approaches approval workflows

We start from your approval matrix and controls, then build the workflow, delegation, audit trail and integrations around them; see our workflow automation service. Timeline Digital starts with a free pilot of 2 to 3 key modules before the full project, so your finance team can test the approval rules on real requests before the wider rollout is agreed.

Frequently asked questions

What is an approval matrix?

An approval matrix is a table that maps the attributes of a request, such as type, amount, department, legal entity and category, to the people who must approve it and the order they approve in. It should be maintained as data by the business, have exact band boundaries and a fallback approver for every row, and be versioned so audits can see which rules applied.

Should approvals be sequential or parallel?

Use sequential approvals when a later approver depends on an earlier decision, such as a budget holder confirming need before finance checks funds. Use parallel approvals when approvers check independent things, such as IT reviewing a software purchase while finance reviews budget. Many workflows combine both, with conditional steps added only when a rule fires.

How should delegation work in an approval workflow?

Every delegation should have start and end dates, a defined scope and an amount cap, and the delegate should hold a role able to approve in their own right. A delegate must never approve their own request or re-delegate. The audit trail should show the approval as made by the delegate on behalf of the original approver, and delegations themselves should be logged.

Does an approved purchase order need re-approval if it changes?

It depends on the field. Changes to material fields, such as an amount increase beyond a set tolerance, vendor, bank details, entity, cost centre or currency, should restart approval. Non-material changes, such as description wording or an extra attachment, can be logged without restarting it. Keep the approved version intact and handle changes as amendments so both versions can be compared.

What should an approval audit trail include?

Who acted, including on whose behalf for delegations; what they did; when, with time zone; which record and version; field-level before and after values; the comment or reason; the approval matrix version and row that routed the request; and the channel used. The trail should be append-only so that nobody, including administrators, can edit or delete entries through the application.

Can AI approve requests automatically?

AI is better used to prepare decisions than to make them. It can classify requests, suggest cost centres or account codes, route to the right approvers, flag duplicates and summarise documents. Approving spend, overriding policy and granting control exceptions should stay with accountable people. Record AI output as a suggestion along with the person who accepted or changed it.

Topics in this article

  • Approval Workflow
  • Approval Matrix
  • Segregation of Duties
  • Audit Trail
  • Workflow Automation
  • Enterprise Systems

Start a conversation

Tell us how your business works.

Describe what is slowing your team down. We will help you work out what to build, and how a free pilot lets you judge our work before the full project.

Prefer WhatsApp? Start a chat

What happens next

  1. You send a short brief

    The problem, the people involved and any target date. A senior engineer replies within 4 business hours.

  2. We understand your workflow

    A first call about how your business works today. An NDA can be signed before you share details.

  3. You test a free pilot

    You choose 2 to 3 key modules and we build them first, so you judge real software before the full project.