- The workflow — the path a document takes: the named states it can be in (Draft, PendingApproval, Approved, …) and the arrows (transitions) between them, each of which only certain people are allowed to pull.
- The approval policy — the sign-off rule attached to an approval step: who has to approve, in what order, above what amount, and what happens if nobody is configured.
📷 Screenshots are added in a later pass. For now each page names the exact route
(e.g. /settings/erp/organization/workflows) and the on-screen buttons to click.
The two layers, in plain terms
Think of a single expense claim.- The workflow (the path) says: an expense starts in Draft; from Draft someone can Submit it, which moves it to PendingApproval; from PendingApproval it can be Approved (→ Approved) or Rejected (→ back to Draft). Those states and arrows are the workflow.
- The approval policy (the sign-off) hangs off the Approve arrow. It says, for example: “claims up to UGX 500,000 need the submitter’s manager; anything above also needs Finance.” That is the approval policy.
Why it affects the whole ERP
This isn’t only an accounting feature. The same engine drives the lifecycle and sign-off of documents across modules:- Accounting — expense claims, invoices, bills, journal entries, budgets, credit and debit notes.
- Procurement — purchase requisitions, purchase orders, purchase receipts.
- HR — leave requests, employee transfers, salary advances, work (imprest) advances, payroll runs.
- CRM & projects — deals, discounts, quotes, goals, projects.
Two engines, one experience (for the curious)
Under the hood there are still two cooperating engines — you never have to think about this, but it explains the behaviour:- The lifecycle engine owns the states and transitions (the path). It enforces that only allowed roles can pull an arrow, and that a document can’t jump to an illegal state.
- The approval engine owns the sign-off. When a document is submitted, it creates an approval request, works out the next approver from your policy, and notifies them. When the last approver signs off, it tells the lifecycle engine to move the document to Approved (or Rejected).
What you’ll do here
A few ground rules worth knowing up front
- You rarely have to build anything from scratch. Every document type ships with a sensible default path and, for the ones that need sign-off, a sensible default approval chain. If you change nothing, everything behaves exactly as it does today.
- Some steps are locked. A few transitions are driven by the system itself (for example, the automatic Approve that fires when the last approver signs off). These show a lock icon and can’t be edited or deleted — that’s deliberate; they’re the contract that keeps your documents consistent.
- You can always reset. Any document type you’ve customised can be put back to its factory default with one click (Reset to default).
- Approval policies are per business. Make sure the correct business is selected in the business switcher at the top of the app before you edit who approves.