Every business has an approval process, whether or not anyone designed it. Most of the time it's informal — a WhatsApp message to a manager, a verbal nod before a purchase order goes out, an email chain nobody can find three months later when finance asks who signed off on a discount. That works fine until it doesn't: a rejected credit note gets reissued anyway, a purchase order for a value nobody would have approved slips through, and when someone finally asks "who approved this," there's no good answer. Multi-level approval workflows exist to replace that ambiguity with something enforceable, visible and auditable — but only if they're designed well. A badly designed approval chain is worse than no workflow at all, because it trains people to work around it.
This guide walks through the actual design decisions: how to model document states, how to gate approvals by role rather than by name, how to escalate conditionally based on value or risk, when to run approvals sequentially versus in parallel, how to handle delegation when an approver is unavailable, what an audit trail needs to capture, and the failure patterns that quietly kill adoption even when the workflow looks correct on paper. None of this is theoretical — it's the set of decisions that show up in almost every Sales, Procurement, Finance and HRMS rollout we've been part of.
Modeling Document States
Before you can design who approves what, you need a clear, finite set of states a document can be in, and clear rules about which transitions are legal. The common backbone looks like this: Draft (still being edited by its creator, not yet visible to approvers), Submitted (locked for editing, entered the approval queue), Pending Approval (sitting with a specific approver or level), Approved (cleared to proceed — a sales order can be confirmed, a purchase order can be sent), Rejected (sent back with a mandatory reason), and Cancelled (withdrawn by the creator before a decision was made). Some workflows add a Resubmitted state to distinguish a corrected document from a fresh one, which matters for reporting on rework.
The detail that trips up a lot of first-pass designs is what happens after a rejection. "Rejected" shouldn't be a dead end — the creator needs to know exactly what to fix, and the document needs to re-enter the workflow at a sensible point, not necessarily back at level one. If a purchase order gets rejected by finance over a vendor detail, sending it all the way back through a manager who already approved the item and quantity just adds friction without adding safety. Model rejection with a return-to-level, not just a return-to-start.
Equally important: decide what's editable at each state. Once a document is Submitted, the fields an approver is signing off on — value, quantity, discount percentage, vendor — should be locked. If the creator can quietly edit a submitted purchase order while it's sitting in an approver's queue, the approval is worthless, because nobody can be sure what was actually reviewed. Any change after submission should force a fresh approval cycle, not a silent edit.
Role-Based Approval Gates
The single most important design rule is that approval gates should be attached to roles, never to individuals. "Purchase orders above ₹1,00,000 require Finance Manager approval" is a workflow rule. "Purchase orders above ₹1,00,000 require Priya's approval" is a liability, because it breaks the day Priya changes roles, goes on leave, or leaves the company — and someone has to remember to update every workflow definition that named her directly. Role-based gates route to whoever currently holds that role, which is also what makes delegation and org changes manageable without touching the workflow logic itself.
A second rule that's easy to skip and expensive to skip: segregation of duties. The person who creates a document should not be able to approve it, even if they technically hold the approving role — a sales executive who is also a branch manager shouldn't be able to self-approve their own discount request. This sounds obvious, but it's a common gap in workflows configured quickly, especially in smaller teams where the same two or three people wear multiple hats. QTT-ERP enforces this at the role-gate level: a user can hold an approving role and still be blocked from approving a document they authored.
Build the gate as a matrix, not a list of one-off rules: document type on one axis, role and threshold on the other. A sales quotation, a sales order, a purchase requisition, a purchase order and a journal entry each get their own row, because they carry different risk and often different approvers entirely. Trying to reuse one generic "approval workflow" across every document type is where most of the unnecessary complexity — and the bypassing — starts.
Conditional and Value-Based Escalation
Flat approval rules — "every purchase order needs manager sign-off" — either annoy people with trivial approvals or, worse, get diluted until the manager rubber-stamps everything without really looking. Conditional escalation fixes this by routing only the documents that carry real risk, and routing them to the right level of authority based on what actually makes them risky. A few patterns come up constantly:
-
Discount thresholds
A sales order with a discount under 5% auto-approves. Between 5% and 15% routes to the sales manager. Above 15% escalates to a regional or business-unit head — because a discount that size is a margin decision, not a sales-floor one.
-
Purchase order value
POs under a set value clear with a department head. Above that, they route to finance for budget verification, and above a second, higher threshold, to both finance and the CFO or MD before the order goes out to the vendor.
-
Credit limit overrides
A sales order for a customer within their approved credit limit flows straight through. One that would push the customer over their limit escalates to credit control, regardless of the order's own value.
-
Payroll and HR exceptions
A leave request within an employee's balance auto-approves against their manager. An advance salary request or an off-cycle payroll adjustment escalates to HR and finance jointly, since it touches statutory compliance as well as cash flow.
The rule of thumb worth holding onto: escalate on the combination of value and type of risk, not value alone. A ₹2,000 stationery purchase and a ₹2,000 change to a vendor's bank account details carry wildly different risk despite an identical rupee figure — the second should escalate regardless of amount, because it's a fraud vector, not a spend decision. QTT-ERP's approval rules can combine both, so escalation triggers on field-level conditions (vendor bank details changed, discount percentage, credit limit breach) alongside straightforward value thresholds, across Sales, Procurement, Finance and HRMS from one configuration.
Sequential vs. Parallel Approval
Once a document needs more than one approver, you have to decide whether they act one after another or at the same time. Sequential approval passes the document down a chain — level one approves, then level two sees it, then level three — and is right when each level is genuinely reviewing what the previous one decided, such as a department head confirming need followed by finance confirming budget. It's slower by design, because the levels are meant to build on each other.
Parallel approval sends the document to multiple approvers at once and waits for all of them (or a defined subset, like "any two of three") to respond. This is the right shape when the approvers are checking unrelated things that don't depend on each other — a purchase order that needs both a quality sign-off on specification and a finance sign-off on budget doesn't need finance to wait for quality to finish first. Running those in parallel can cut days off a cycle that gains nothing from being sequential.
Most real workflows end up as a mix: a document might need one sequential gate (department head, then finance) where the second review genuinely depends on the first, and a parallel gate elsewhere (quality and safety sign-off together) where it doesn't. Modeling this correctly matters more for adoption than almost anything else in this guide, because an unnecessarily sequential chain is the single biggest reason approvals feel slow even when every individual approver responds quickly — three people taking half a day each becomes a day and a half in sequence, or half a day in parallel.
Delegation and Out-of-Office Coverage
An approval workflow that has no answer for "the approver is on leave" will get bypassed within the first month, usually by someone quietly approving on the absent manager's behalf using a shared login — which defeats the entire point of an auditable chain. Proper delegation needs three properties: it has to be time-bound (set for the dates of the leave, not left on indefinitely), it should be scoped (a delegate might be authorized only up to a certain value, or only for certain document types, rather than inheriting blanket authority), and it must be logged against the delegate's own identity, not silently attributed to the person who's away.
Beyond planned leave, workflows need an escalation timer for the unplanned case — an approver who simply hasn't responded. A document sitting in "Pending Approval" for more than, say, 24 or 48 hours (the right number depends on the document type and your business's pace) should automatically notify the approver's manager or route to a backup approver, rather than sitting silently until someone happens to chase it up. This single feature — an SLA-based auto-escalation — solves a large share of the "nobody knew it was stuck" problem covered in the next section, before it ever becomes a visible failure.
Audit Trails: What to Record and Why
The audit trail is often treated as an afterthought during workflow design, and it's the first thing anyone asks for the moment something goes wrong or a statutory auditor shows up. At minimum, every approval decision needs to record who acted (their actual identity, even if acting as a delegate), the exact timestamp, what the document contained at that moment (a snapshot, not just a reference to the current version, since the document may change later), any comments or a mandatory rejection reason, and whether the action was a direct approval or a delegated one.
Two properties matter beyond the individual fields. First, the log has to be immutable — if an approval record can be edited or deleted after the fact by anyone, including an administrator, it stops being evidence of anything. Second, it needs to be exportable in a form an external auditor can actually use, typically a chronological report per document or per approver, not a raw database dump. In QTT-ERP, every approval action across Sales, Procurement, Finance and HRMS writes to the same underlying audit log, so a document's full history — submission, every review, every rejection and resubmission, final approval — is one continuous, exportable trail rather than something reconstructed from scattered emails.
One detail worth calling out specifically: rejection reasons should be structured, not free text alone. A dropdown of common rejection categories (budget exceeded, incorrect vendor, missing documentation, policy exception) alongside a free-text comment gives you both a fast reason for the person resubmitting and clean data for spotting patterns later — if 40% of rejected purchase orders are rejected for the same reason, that's a process problem upstream of the approval step, and you'd never see it in unstructured comments.
Why Approval Chains Break Down in Practice
A workflow that looks correct in a design document can still fail in production, and it almost always fails in one of a handful of predictable ways.
- Chains too long for the value they're gating. Once a routine document needs four sign-offs to move at all, people start finding ways around it — splitting a purchase order into three smaller ones to duck a threshold, or getting verbal approval and back-filling the record later. Every extra level has to earn its place.
- No visibility into where a document is stuck. If the only way to know a purchase order is sitting in someone's queue is to ask them directly, delays compound silently. Approvers and requestors both need a live view of exactly which level a document is at and how long it's been there.
- Approvers who rubber-stamp because the volume is too high. Routing everything through one person "to be safe" doesn't add safety — it adds a bottleneck that trains the approver to click approve without reading, which is worse than no gate at all.
- No plan for absence. Covered above, but worth repeating as a failure mode on its own: a single point-of-failure approver with no delegate is a guaranteed future bypass, usually within someone's first vacation.
- Thresholds that were never revisited. A ₹50,000 purchase order threshold set five years ago against today's costs might now be gating routine spend that should auto-approve, dragging low-risk transactions through a process built for a different scale of business.
Notice that almost none of these are technology problems — they're design and governance problems that show up regardless of which system enforces the rules. The software can make a well-designed workflow easy to run and hard to bypass; it can't fix a workflow that was over-specified from the start.
Designing Workflows People Actually Follow
The workflows that hold up over time share a small set of properties. They keep the default chain short — two levels for most document types, three at most for genuinely high-risk ones — and reserve extra levels for conditions that clearly warrant them rather than applying them uniformly. They make status visible to everyone involved, not just the current approver, so a requestor can see exactly where their document sits without sending a follow-up message. They put approvals in front of approvers wherever they already are — mobile notifications and quick approve/reject actions matter more for adoption than almost any other single feature, because an approval that requires logging into a desktop system will always lose to a five-second decision on a phone.
They also get revisited. An approval matrix set up at go-live reflects the business as it existed then — thresholds, roles and escalation rules should be reviewed on a regular cadence (once or twice a year is usually enough) rather than left untouched until something breaks badly enough to force a redesign. The goal throughout isn't maximum control; it's the right amount of control for each document type, applied consistently enough that people trust the system rather than route around it.
Where to Go From Here
None of this needs to be built from scratch. The practical next step is mapping your actual document types — sales orders, purchase orders, credit notes, leave requests, journal entries — against the states, gates and escalation rules covered here, and seeing which of them genuinely need multiple levels versus which have been over-engineered out of habit. That exercise alone usually surfaces two or three chains worth shortening before you configure anything.
See your approval chains modeled live
Book a free QTT-ERP demo and we'll configure a real approval matrix — sequential, parallel or conditionally escalated — against your own document types.
Book a Free DemoFrequently Asked Questions
As few as the risk genuinely requires — most well-run workflows top out at two or three levels. Every additional level should be justified by a specific risk it catches; if you can't name what a level protects against, it's a delay, not a control.
Sequential approval means each approver only sees the document after the previous one has signed off, so the chain runs one step at a time. Parallel approval sends the document to multiple approvers at once and waits for all (or a defined subset) of them to respond, which is faster when the approvers are checking unrelated things, like finance and quality.
Yes, and a workflow that doesn't support this will get bypassed the first time an approver goes on leave. Delegation should be time-bound, scoped to specific document types or value limits, and logged against the delegate's own identity so the audit trail still shows who actually made the call.
At minimum: who approved or rejected, the exact timestamp, what the document looked like at that moment, any comments or rejection reasons, and whether the approval was direct or delegated. It needs to be immutable and exportable, since it's frequently the first thing a statutory or internal auditor asks for.
Almost always because the chain is slower than the business need it's gating — a discount approval that takes three days on a same-day quote gets skipped, and a purchase order gets split into two smaller ones to duck a threshold. The fix is shortening the chain and giving approvers visibility and fast mobile access, not adding more enforcement on top of a workflow people already avoid.
Yes. QTT-ERP lets you define role-based approval gates and value- or condition-based escalation rules across Sales, Procurement, Finance and HRMS, with sequential or parallel routing, delegation, and a full audit trail on every decision.
Written by the QTT-ERP Team
Queen Touch Technology builds QTT-ERP, a connected ERP platform for Indian manufacturers, distributors and service businesses. This guide draws on approval-workflow patterns we see across implementations.