AdoxERP Logo

Approval flow

Set approval rules, assign authority, and approve or reject documents in AdoxERP.

The approval flow holds a document until the right people sign it off. You define when approval is required, who must act, and then work through items on Pending Approvals.

Leave and late-punch approvals in HRM are a separate process — see HRM overview.


How it works

Document saved  →  matching rule found  →  pending  →  approve or reject
  1. Someone saves a document (for example a new customer)
  2. AdoxERP looks for an active Approval Rule for that document type
  3. If a rule matches, the document waits — it cannot be used as if it were already approved
  4. Approvers open User Management > Pending Approvals, review the chain, and Approve or Reject
  5. A rejection at any level ends the whole request. Editing and saving again starts a new approval

If no rule matches, the document is not held for approval.

On Approval Rules, the info icon opens the same walkthrough inside the product.


What to set up

ScreenWherePurpose
Approval RulesGeneral Settings > Master > Approval RulesWhen approval is required, the chain, and bypass
Approver AuthorityGeneral Settings > Master > Approver AuthorityRank, branch/location scope, and optional delegate
Pending ApprovalsUser Management > Pending ApprovalsApprove or reject waiting documents

You also need users and roles so approvers can sign in.


Creating an approval rule

  1. Go to General Settings > Master > Approval Rules
  2. Click add
  3. Choose Document type — the list currently includes Customer. Other types appear when they are enabled for your company
  4. Enter a Rule name (for example “New customer — Riyadh”)
  5. Leave Active ticked
  6. Optionally add Conditions — all of them must match. Leave empty to require approval on every save of that type
  7. Choose Chain type, Scope, and Approval levels
  8. Optionally set Authority bypass, SLA hours, and Escalation role
  9. Click Create Rule

When more than one rule could apply, the more specific Scope wins: a location rule over a branch rule, a branch rule over a company-wide rule.


Rule types supported

An approval rule combines the pieces below. Every field on the Add Approval Rule form is listed here.

Document types

What the rule applies to. Only types enabled for your company appear in the dropdown.

Document typeAvailable in dropdownTypical use
CustomerYesNew or edited customers before they can be used on sales
SupplierWhen enabledNew suppliers
Quotation, Sale Order, Delivery Note, Sale Return, SaleWhen enabledSales documents above a value
Purchase Order, GRN, Purchase Return, PurchaseWhen enabledPurchase documents
Stock Transfer, Stock Adjustment, Stock RequestWhen enabledInventory movements
Journal Entry, Payment Voucher, Receipt VoucherWhen enabledAccounting entries
ℹ️

If a type is not in the list yet, your administrator has not turned it on. Existing pending approvals for that type still show correctly.

Condition operators

Each condition is: Field + Operator + Value. All conditions on one rule must match (AND logic). Leave conditions empty to trigger on every save of that document type.

OperatorMeaningExample value
EqualsField equals value60
Not equalsField does not equal value0
Greater than or equal toField ≥ value100000
Greater thanField > value50000
Less than or equal toField ≤ value90
Less thanField < value100000
In listField is one of the listed valuesComma-separated, e.g. 30,60,90
Not in listField is not in the listComma-separated

Condition fields by document type

The Field picker suggests values based on document type. You can also type a custom field name if your administrator has set one up.

Customer and Supplier

FieldUse when
Credit LimitHigh credit needs extra sign-off
Credit DaysLong payment terms need review

Sales, purchase, and stock documents (when those types are enabled)

FieldUse when
Grand TotalDocument total crosses a threshold
Taxable TotalTaxable amount crosses a threshold
Tax TotalVAT amount is high
Discount TotalLarge discount needs approval
Additional Expense TotalLanded-cost add-ons are significant
Cost TotalCost value needs review

Chain types

Chain typeWhen to useBehaviour
SequentialStrict sign-off orderLevel 2 opens only after Level 1 is approved
ParallelSeveral checks at onceAll levels are open; each level still uses its own mode (any one / all required)
HybridMix of bothExample: two peers at Level 1 (parallel), then one mandatory CFO at Level 2 (sequential)

Level modes (per level)

ModeWhen to use
Single approverOne role or user must act
Parallel — any oneSeveral people can approve; the first approval completes the level
Parallel — all requiredEvery listed approver must approve before the level completes

Each approver is Role (anyone with that role) or User (one named person).

Role-specific gate — tick on a level when it is an independent compliance check (not a seniority step). With Forward only bypass, senior managers can skip normal levels but not a role-specific gate. Only Full bypass can close those levels early.

Scope

ScopeMeaning
Branches and locations emptyRule applies company-wide
Branches selectedOnly documents in those branches
Locations selectedOnly documents at those locations (within selected branches)

If you have more than one branch, pick branches first; then narrow to locations inside them.

Authority bypass modes

Set on the rule. Rank is configured separately under Approver Authority.

ModeMeaning
None — strict chainNobody skips a level
Forward onlyHigh rank can approve early and skip levels ahead — except role-specific gate levels
FullHigh rank closes all pending levels, including role-specific gates

SLA and escalation

FieldMeaning
SLA hoursIf a level stays pending longer than this, escalation runs
Escalation roleRole notified when SLA is exceeded

Tiered approval with multiple rules

One rule cannot skip levels based on different conditions mid-chain. For tiered approval, create separate rules with different conditions and scopes:

RuleConditionsLevels
Standard customer — Riyadh(empty — every customer)Level 1: Sales Manager
High credit — RiyadhCredit Limit ≥ 100,000Level 1: Sales Manager → Level 2: Finance → Level 3: CFO

When a customer with credit limit 150,000 is saved in Riyadh, both rules may match on document type — the engine picks the most specific scope. If both have the same scope, split them with conditions (for example: standard rule uses Credit Limit less than 100,000; high-credit rule uses Credit Limit ≥ 100,000).


Sample scenario

Goal: In the Riyadh branch, Main Warehouse location, any new customer with credit limit at least 100,000 and credit days at most 60 must pass a three-level hybrid chain before they are approved.

SettingSample value
Document typeCustomer
Rule nameHigh credit customer — Riyadh warehouse
ConditionsCredit Limit ≥ 100,000 and Credit Days ≤ 60
Chain typeHybrid
ScopeBranch: Riyadh · Location: Main Warehouse
Level 1Parallel — any one · Sales Manager or Deputy Sales Manager
Level 2Single · Finance Manager · Role-specific gate ticked
Level 3Single · CFO
Authority bypassAllow · Forward only
SLA24 hours · Escalation role: Operations Manager

Before the rule: create roles (Sales Manager, Finance Manager, CFO, etc.), assign users, and add Approver Authority records so bypass ranks exist — see step 1 below.


Step-by-step: create the sample rule (all fields)

Step 1 — Approver authority (do this first)

Create authority records so bypass and escalation roles work.

  1. Go to General Settings > Master > Approver Authority
  2. Add Sales Manager — Authority rank 1, Scope: Riyadh branch
  3. Add Finance Manager — rank 2, same scope
  4. Add CFO — rank 3, same scope (can use Full or Forward only bypass on the rule)
  5. Optionally add Operations Manager — rank 2, for SLA escalation notifications

Step 2 — Open the rule form

  1. Go to General Settings > Master > Approval Rules
  2. Click Add (or the add action on the list page)

Step 3 — Basic information

Form fieldEnter
Document typeCustomer
Rule nameHigh credit customer — Riyadh warehouse
ActiveTicked

Step 4 — Conditions (all must match)

Click Add condition for each row.

#FieldOperatorValue
1Credit LimitGreater than or equal to100000
2Credit DaysLess than or equal to60

Both rows must be true when the customer is saved, or this rule does not run.

💡

To require approval on every customer with no threshold, skip this section entirely — leave conditions empty.

Step 5 — Chain type

Select Hybrid — Level 1 can resolve in parallel (any one of two sales roles), then Levels 2 and 3 run in order.

Step 6 — Scope

Form fieldEnter
BranchesRiyadh (only shown if you have more than one branch)
LocationsMain Warehouse

Leave both empty only if the rule should apply company-wide.

Step 7 — Approval levels

Level 1

Form fieldEnter
ModeParallel — any one
Approver 1Type: Role · Ref: Sales Manager
Approver 2Click add approver · Type: Role · Ref: Deputy Sales Manager
Role-specific gateOff

Level 2

Form fieldEnter
ModeSingle approver
ApproverType: Role · Ref: Finance Manager
Role-specific gateTicked — compliance step; Forward only bypass cannot skip this

Level 3

Form fieldEnter
ModeSingle approver
ApproverType: Role · Ref: CFO
Role-specific gateOff

Click Add level between steps to insert each new level.

Step 8 — Authority bypass

Form fieldEnter
Allow authority bypassTicked
Bypass modeForward only

A CFO (rank 3) can approve early and close Level 1, but not Level 2 while it is marked role-specific gate.

Step 9 — SLA and escalation

Form fieldEnter
SLA hours24
Escalation roleOperations Manager

If Level 1 (or any pending level) sits more than 24 hours, the Operations Manager role is notified.

Step 10 — Save

Click Create Rule. The rule appears on the list as Active.

Step 11 — Test the flow

  1. Sign in as a user who can add customers
  2. Create a customer in Riyadh with Credit Limit 150,000 and Credit Days 45
  3. Save — status should show Pending Approval (or equivalent on the customer screen)
  4. Sign in as Sales Manager (or Deputy) → User Management > Pending Approvals → open the request → Approve
  5. Sign in as Finance Manager → approve Level 2
  6. Sign in as CFO → approve Level 3 → customer is fully approved

To test reject: reject at any level — the whole chain stops. Edit the customer and save again to start a new approval.


Conditions (reference)

Each condition is Field, operator, and Value. All conditions on the rule must match.

For customers, use Credit Limit and Credit Days. For sales or purchase documents (when enabled), use Grand Total, Taxable Total, and the other transaction fields in the table above.

Example pair: Credit Limit ≥ 100,000 and Credit Days ≤ 60 — only customers meeting both enter this rule.


Chain type (reference)

Chain typeMeaning
SequentialLevels run in order. Level 2 waits until Level 1 is done
ParallelLevels can be open together. Each level still has its own mode (any one, or all)
HybridMix both — for example two peers at Level 1, then a single sign-off at Level 2

Scope (reference)

Leave branch and location empty to apply the rule across the entire business. Choose branches (and optionally locations) to limit it.

If you have only one branch, the branch picker is hidden.


Approval levels (reference)

Add one or more levels. The document moves to the next level when the current one is complete.

Level modeMeaning
Single approverOne configured person or role must act
Parallel — any oneSeveral approvers; the first to approve completes the level
Parallel — all requiredEvery configured approver at that level must approve

Each approver is a role (anyone with that role) or a specific user.

Tick Role-specific gate for an independent check (for example compliance) that seniority should not skip unless bypass is set to Full.


Authority bypass (reference)

On the rule, tick Allow authority bypass and choose a mode. Rank itself is set under Approver Authority, not on the rule.

ModeMeaning
None — strict chainNo one skips a level, even a senior manager
Forward onlyA high enough rank can approve early and skip levels ahead — except levels marked Role-specific gate
FullA high enough rank can close every pending level, including role-specific gates

Bypass is recorded (who acted, and which levels were closed). The approver’s authority record must also cover the document’s branch and location.

A Reject still ends the whole chain, whether or not bypass is allowed.


SLA and escalation (reference)

Optional SLA hours: if a level stays pending longer than this, the Escalation role is notified.


Approver authority (reference)

  1. Go to General Settings > Master > Approver Authority
  2. Click add
  3. Choose By role or By specific user
  4. Set Authority rank (higher number = more seniority for bypass)
  5. Set Scope the same way as on a rule — empty means the whole business
  6. Optionally set Delegation: Delegate to, Active from, and Active to for when someone is away
  7. Click Create

While a delegation window is active, actions go to the delegate and the substitution is recorded.


Approving and rejecting

  1. Go to User Management > Pending Approvals
  2. Open a row (Document) or the view action
  3. Review document type, status, submitted date, and the levels stepper
  4. Add an optional Comment
  5. Click Approve or Reject
StatusMeaning
PendingWaiting on the current level
ApprovedChain complete
RejectedStopped by a reject
CancelledCancelled (including when a reject cancels other open levels)

You only see Approve / Reject when it is your turn. If someone else already acted, refresh and try again.

While a document is pending, it stays locked from further use until the chain finishes.


Quick rule patterns

PatternConditionsChainLevels
Every new customer(empty)Sequential1 × Sales Manager
High credit onlyCredit Limit ≥ thresholdSequentialSales → Finance → CFO
Long payment termsCredit Days ≥ 90SequentialSales → Finance
Large sale invoice (when enabled)Grand Total ≥ 50,000HybridParallel peers → Director
Strict complianceAnySequentialFinance with role-specific gate + None bypass

What to do next