## TL;DR

Route invoices by deterministic rules: amount thresholds pick the approval level, cost center picks the approver, and category picks specialists (IT hardware to IT). Build a routing table from these dimensions, default unmatched invoices to a controller queue rather than dropping them, and log every routing decision for audit.

## Steps

1. Define routing dimensions: amount, cost center, category, vendor.
   Expected: A routing matrix.
2. Assign approvers per cell of the matrix.
   Expected: Clear ownership.
3. Set a default queue for unmatched invoices.
   Expected: No invoice goes nowhere.
4. Implement delegation and escalation on top.
   Expected: Resilience.
5. Log routing decisions.
   Expected: Auditability.

## When to use

- AP workflow implementation
- Replacing email approvals
- Scaling invoice volume

## When not to use

- Approval policy (who should approve)
- Dispute handling
- Non-PO coding

## Compatibility

ERP workflows (NetSuite, SAP), AP tools (Ramp, Airbase, Tipalti, Stampli).

## Variant phrasings

### invoice approval routing

### automatic approver assignment

### AP workflow rules

## Root cause

Manual routing is slow and inconsistent. Deterministic rules route correctly every time and make the process auditable.

## Edge cases

- Matrix changes need versioning; approver moves should not break history
- Conflicts of interest (requester approving own spend) need hard blocks
- Test routing with historical invoices before go-live

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_ndZs9ve47JDtKQHL5pWWQA
