Skip to main content

Configure supplier approval chains

An approval chain in Shillinq is the rule that says "a bill or PO of amount X needs approver A; over Y also needs B; over Z also needs C". Each bill and PO is routed through the chain that matches its total band when it's saved.

Goal

By the end the instance will have one or more approval chains configured — at minimum a default chain that covers every band — and a test bill / PO will route through them correctly.

Prerequisites

  • Admin on the Nextcloud instance (or the Shillinq admin role).
  • The OpenRegister app installed and enabled, the Shillinq register imported, and the chart of accounts in place (see Set up your chart of accounts).
  • A clear picture of the organisation's signing matrix — who can approve what amount, who escalates to whom.
  • Nextcloud accounts (or group memberships) for every approver in the matrix.

Steps

  1. Open Settings → Administration → Shillinq and switch to the Approval chains section. Click New chain.

    Approval chain settings

  2. Name the chain — Default, Procurement (under €5k), Capex — and pick which document types it applies to (Bills, POs, both). The chain is selected when a document of those types is saved; if multiple chains match, the most specific wins.

    Chain header fields

  3. Add bands. A band is an amount range with one or more required approvers — "€0 – €1.000: budget owner", "€1.000 – €10.000: budget owner + finance", "€10.000+: budget owner + finance + director". Pick approvers by Nextcloud user or group; group membership resolves at routing time.

    Approval bands

  4. Set per-band options — parallel (any one approver in the list can approve, the others get notified) vs serial (the next approver only sees the document after the previous one approved); escalation timeout (the chain escalates to the next approver after N business days of silence); delegate-allowed (whether an approver can hand off to a deputy).

    Band options — parallel / serial / escalation

  5. Save. The chain is now live. Raise a test bill (see Record a supplier bill) — the bill should pick this chain and route to the right band's approvers; the audit trail on the bill records each approval / rejection / delegation.

    Test bill routing through the chain

Verification

The chain shows in the Approval chains list with its name, document types, and band count. A test bill of any amount routes through the right band; the approvers in that band get a notification; on approval the bill moves to Approved. The audit trail records each step.

Common issues

SymptomFix
Bill stuck "awaiting approval" foreverThe band's approver list is empty, or the named group has no members — fix in the chain config; pending bills re-route on save.
Two chains both match a billMost-specific wins — make the more specific chain's amount band narrower or its document type tighter. If they're truly equivalent, merge them.
Approver got no notificationTheir Nextcloud notification settings are off, or their email bounces — check the user record.
Escalation fires too quickly / not at allThe escalation timeout is in business days (Mon–Fri); set it to a wallclock duration via the Working-hours calendar in the same section.
Delegated approval breaks the audit trailIt shouldn't — the audit trail records both the delegator and the eventual approver. If an entry is missing, file an issue with the bill ID.
Screenshots may be missingApp not yet installed in the test environment; rerun npm run test:e2e:docs once it is.

Reference