Approval policies, inbox and delegation
Define who must approve sales and purchase documents, answer requests waiting for you, and delegate while you are away.
Before you begin
The Approvals app is one engine that sales and purchase documents call before a confirm or post. It covers a sales or purchase order being confirmed, and an invoice, bill, credit note or debit note being posted. Other modules, such as journals, credit overrides, bank changes, assets and payroll, keep their own approval flows for now.
Everybody except the administrator role holds approval.view. Writing policies needs approval.manage. If no active policy exists for a kind of request, nothing changes: the document goes through.
Write an approval policy
A policy covers one kind of request. Its rules are read in order, and the first rule that matches routes the request.
- Go to Approvals > Configuration > Approval policies and click New policy.
- Type a Code and Name.
- Choose what it Approves, for example a sales order being confirmed.
- Choose When no rule matches: Let it through or Refuse.
- Optionally set From and Until dates.
- For the first rule, name it and add conditions under When. Choose a field (such as
amount,currency,partner,max_discountorbranch), an operator (=,!=,>,>=,<,<=,in,not_in) and a value. A missing field fails the condition, so nothing matches by accident. - Under Then approve, in order, add one or more levels. For each: a level name, who approves (Anyone with permission, Role or User), how many (Any one, All of them or A quorum), and optionally a deadline in hours.
- Add more rules with + Rule. A policy has 1 to 50 rules, and a rule has 1 to 10 levels.
- Under Try an amount type a figure and click Simulate. The screen shows the rule and the approvers it would reach.
- Click Save draft.
A policy starts as Draft. Somebody other than its author clicks Activate: 'Somebody other than its author activates a policy.' An active version is never edited. Click Revise to make a new draft (v2, v3) and activate that.
Worked example
Rule 1 'Large orders': amount >= 50000, level 1 Sales manager (any one), level 2 Finance director (any one, 24 hours). Rule 2 'Normal orders': amount >= 0, level 1 Sales manager. A quotation confirmed at AED 62,000 goes to the Sales manager and then the Finance director. One at AED 9,000 goes to the Sales manager only.
Answer a request
- Go to Approvals > Waiting for me. The number on the menu shows how many wait.
- Open the request. The dialog shows the amount, the rule matched, who asked, and each level and approver.
- Click Approve, or type a reason and click Reject. A reason is required to reject: 'Say why it is rejected.'
The person who asked can click Withdraw my request while it is waiting. Approvals > Requests lists everything you asked or decided.
Nobody approves their own request, not even a superuser: 'Nobody approves their own request.' Inactive users and integration users are never approvers. If a level could only be approved by the requester, the request is refused when submitted: 'Nobody other than you can approve level “...” of policy ...'
Delegate while you are away
- Go to Approvals > Delegations and click Delegate my approvals.
- Choose To, the First day, the Last day (up to a year), an optional Up to an amount, and Why.
- Click Delegate.
The delegate may answer what waits for you, up to the ceiling. Both names are recorded on every answer. A delegation cannot go in a circle: 'They already delegate to you over those days; a delegation cannot go round in a circle.' Click End to finish one early.
What happens next
An approved request lets the document step through once. If the document changes, the old approval is marked No longer valid and a new request is made. A level with a deadline escalates to the person you named, or the request expires. A timeout never approves.
Good to know
- The escalation sweep is run by a person today, not on a schedule.
- Approvers see the whole document context.