TL;DR
- Manual invoice processing at a healthcare client: 3 people, 5 handoffs, 4-day average cycle, 6.2% error rate from manual data entry.
- We built an SPFx supplier portal, Power Automate validation (PO check + duplicate detection), and Teams-based approval.
- Result: 4-hour processing time, 0.3% error rate, zero paper, and a real-time AP dashboard nobody asked for but everyone uses.
At a healthcare client, we counted the touches on a single invoice before it reached payment. Here is what we found.
An admin receives a paper invoice by post or email. They type the details — supplier name, invoice number, amount, VAT breakdown, PO reference — into the accounting system manually. Then they pass it to a department manager. The manager checks that the goods or services were actually received, initials the invoice, and returns it to accounts. Accounts then codes it against the right budget line and sends it to the finance director for sign-off (by email). The finance director replies. Accounts files the paper copy in a physical folder.
That is 3 people, 5 handoffs, and 4 days from receipt to approved. And every single data entry step is a place an error can happen. Their error rate — invoices requiring correction or re-processing — was 6.2%.
The Anatomy of a Manual Invoice
We timed every person's involvement in the process over three weeks of observation. Here is the breakdown:
Total human time per invoice: approximately 40 minutes. Total calendar time: 4 days. The maths on that gap is uncomfortable — 40 minutes of actual work spread across 4 days because of handoffs and waiting.
The 6.2% error rate is worth dwelling on. At 840 invoices per month, that's 52 invoices per month requiring correction. Each correction takes an average of 25 minutes — someone has to find the original, identify the error, contact the supplier or internal team, correct the record, and re-route for approval. That's 1,300 minutes, or about 22 hours of error-correction work per month. Every month.
Three people, five handoffs, four days. Every manual data entry point is a place an error can occur.
What We Built
We built a supplier portal page inside SharePoint. Suppliers upload their invoice PDF directly through an SPFx form. They don't need a Microsoft account — the portal uses a shared access link with a short-lived token.
The SPFx form captures every field required: invoice number, supplier name, amount, VAT breakdown, PO reference, and invoice date. The PDF attaches directly to the SharePoint library item. No emailing PDFs to an admin inbox. No manual typing.
On submission, Power Automate runs two validation checks before any human sees it:
PO validation
The flow checks the submitted PO reference against the active PO list in SharePoint. If the PO doesn't exist or has already been fully invoiced against, the submission is flagged and the supplier is notified immediately with a specific error message. No human required to spot this.
Duplicate check
The flow checks the invoice number and supplier combination against all existing records. If a match is found, the submission is blocked and Accounts receives an immediate alert. This runs in under 3 seconds. Before, duplicate invoices were caught by humans — inconsistently, and usually after payment.
Conditional routing to the right approver
If validation passes, the flow routes based on amount threshold. Under £1,000: department manager only. £1,000 to £10,000: department manager plus Finance Director. Over £10,000: Finance Director only (bypasses department manager to speed up the process). The approver receives a Teams card with the invoice details, PDF link, and PO reference.
Approval, update, notification — simultaneously
When the Teams card is actioned, Power Automate updates the SharePoint invoice record status, notifies the accounts team, and creates an audit log entry with the approver's name and timestamp. Zero manual steps. The accounts team reviews their SharePoint dashboard rather than an email inbox.
The Duplicate Check — A Feature Nobody Asked For
During the process mapping workshop, we asked: "What errors happen most often?" The answer was immediate: duplicate invoices. The same invoice submitted twice — once by email, once by post — both processed and paid.
When we asked how often this happened, the Finance Director paused and said: "More than we'd like to admit." We pushed for a number. After checking records, the answer was roughly 6 to 8 duplicate payments per year, at an average of £2,400 each. That's a minimum of £14,400 per year lost to a problem that's completely preventable.
The duplicate check added about 2 hours to the Power Automate build. We check the submitted invoice number concatenated with the supplier ID against all existing SharePoint list records. If the combination exists, the flow blocks the submission entirely, flags it to Accounts, and sends the supplier a message explaining the invoice appears to already be on file.
Duplicate invoice detection is one of the highest-ROI features we can add to any invoice flow. It costs almost nothing to build and it pays for itself the first time it blocks a payment. Always add it.
The digital flow — validation runs automatically, humans only appear at the approval decision, everything else is automated.
Results After 3 Months
The 0.3% residual error rate comes from invoices where supplier data is genuinely incorrect at source — wrong PO number provided by the supplier, for example. Those still require human resolution. But the 5.9 percentage point reduction from manual transcription errors is permanent, because there is no manual transcription anymore.
What Surprised the Client Most
It wasn't the speed. Everyone expected the speed to improve.
What surprised them was the reporting. Before the build, nobody in the organisation could answer "how many invoices are currently awaiting approval?" without spending 20 minutes searching through email. The Finance Director couldn't tell, at any given moment, what the total outstanding accounts payable figure was without calling accounts and waiting for a manual count.
After the build, a SharePoint dashboard shows: pending invoices by department, approved and awaiting payment, total AP exposure by supplier, and month-on-month invoice volume trends. It updates the moment any approval is clicked. The finance director checks it from their phone before the morning stand-up.
That dashboard was not in the original brief. It took one afternoon to build on top of the SharePoint list we'd already created. It has become one of the most frequently accessed items in their entire Microsoft 365 environment.
Key Takeaways
Manual invoice processing is expensive not because of the 40 minutes of human time per invoice, but because of the 4-day calendar time, the 6% error rate, and the compounding correction work those errors generate month after month.
Duplicate detection should be in every invoice flow. It adds 2 hours to the build and blocks payments that would otherwise disappear into supplier accounts with no recovery. Ask clients how often duplicates happen — they always know.
The real-time AP dashboard is almost always the deliverable clients talk about most after go-live. Build it as part of the project, not as an optional extra. The SharePoint list is already there — the Power BI connection takes an afternoon.