Multi-Level Approval
This page explains how to configure multi-level approval for purchase orders using custom queries, giving you full control over who approves what.
Overview
Purchase orders can have up to 6 approval levels. Level 6 is the Standard Purchase Approval (value-based). Levels 1 through 5 are defined using queries, giving you full flexibility to base approval on any criteria — department, asset type, supplier, or any combination.
This separation means you can build sophisticated approval chains. For example:
- Level 2 — line manager approval for all POs
- Level 3 — department head approval for POs over $5,000
- Level 4 — finance director approval for POs over $25,000
- Level 6 — Standard Purchase Approval as a catch-all
Setting Up an Approval Level Query
Each approval level is defined by a query with these requirements:
| Property | Value |
|---|---|
| Query type | PO APPROVER |
| Query name | Purchase Order Approver Level n (where n is 1 to 5) |
| Parameter | PurchaseOrderID (the ID of the PO being evaluated) |
Steps to Create an Approval Level Query
- Navigate to the query configuration area.
- Create a new query with the type set to PO APPROVER.
- Name it exactly Purchase Order Approver Level n (replacing n with the level number, 1 to 5).
- Add a parameter named PurchaseOrderID.
- Write SQL that returns one or more CustodianID values representing the users who can approve at this level.
- Save the query.
If a query exists for a given level, it will be evaluated regardless of whether queries exist for other levels. Levels do not need to be consecutive — you can define Level 2 and Level 4 without defining Level 3.
How Query Results Determine Approval
- No results returned — approval is not required for this PO at this level, and the level is skipped.
- One or more CustodianIDs returned — only users with those CustodianIDs (or a user listed at a higher approval level) can approve or reject the PO at this level.
Tip: An approver at a higher level can approve the PO, which skips all lower unapproved levels. This means a senior approver can fast-track an urgent PO without waiting for each level to be processed individually.
Common Approval Patterns
| Pattern | How to Implement |
|---|---|
| Line manager approval | Query returns the ManagerCustodianID from the requesting or receiving custodian's record |
| Department head approval | Query joins through the asset's department to find the department head's CustodianID |
| Value-based tiered approval | Query checks the PO total and returns approvers only when the value exceeds a threshold |
| Supplier-specific approval | Query checks the supplier on the PO and returns the relevant procurement specialist |
For worked examples of approval level queries, see Purchase Order Approval Level Query Examples. For how levels interact during processing, see Purchase Order Approval Levels.
Related Articles
- Purchase Order Approval Levels — Configuring approval levels
- Purchase Order Approval Level Query Examples — Example queries for approval level configuration
- Standard Purchase Approval — The standard approval workflow
- Purchase Order Approval API Calls — API calls for purchase order approvals
- Procurement Configuration Options — Detailed configuration options