Case study · Construction · LV / NO / SE

Invoice approvals, automated across three countries

An international construction group processed about 500 supplier invoices a month across sites in Latvia, Norway, and Sweden, with approvals moving by email and no reliable record of who approved what. KSJ built a 12-flow Power Automate and Azure solution inside the client’s own Microsoft 365 tenant. It has run in production for more than five years.

Anonymised under NDA · delivered by KSJ on Microsoft 365 + Azure

Results at a glance
5 → 3.5
days approval cycle, client team’s estimate
≈260
hours a year saved, client team’s estimate
≈500
supplier invoices a month
5+ yrs
still in production today
The client

A multi-site contractor running on email

An international construction group operating across Latvia, Norway, and Sweden, with site managers and a central finance function. It already ran on Microsoft 365, but the volume of supplier invoices had outgrown the manual process holding it together.

Every month, about 500 supplier invoices moved through approval by email: site manager, procurement, project manager and accounting. There was no single place to see the status of a given invoice, or a defensible record of who approved what, and when.

The challenge

  • Approvals stalled in email threads, and invoices waited days for the right person to respond.
  • Each invoice needed four people in turn, and nobody could see where it was stuck.
  • No reliable audit trail when finance or an auditor asked “who approved this, and when?”
  • No central visibility into invoice status across three countries.
  • Site managers worked on site, often on slow connections, far from the office.

What KSJ built

A 12-flow Power Automate and Azure solution, built inside the client’s own Microsoft 365 tenant: no new platform to maintain, and a complete audit trail by design.

Approval form in Power AppsOpened from a link in the notification and built for site managers on slow connections: the invoice preview loads in small parts.
One chain per invoiceSite manager, procurement, project manager and accounting, each step stored against the invoice ID in SharePoint lists.
Budget allocation at the sourceThe site manager splits each invoice across budget lines using a map from materials to accounts.
Automated remindersAfter three working days, with the time since the previous approver visible on each invoice.
Status and archiveEvery invoice has a visible colour-coded status; approved PDFs get a watermark from a small Azure Function and go to a fixed archive structure.
Audit trail in SharePointEvery approval step is stored with the approver and the time, so the record answers “who approved this, and when?”
The outcome

Clear status, full traceability, and it stuck

The client team estimates that the approval cycle went from about five days to three and a half, saving roughly 260 hours of coordination a year. Cycle times still vary from invoice to invoice. The lasting gain was visibility and accountability: every invoice has a clear status and a complete record of who approved it, and when.

The system scaled to 20 to 25 site managers at peak and has been in production for more than five years, which shows it fits how the business actually works.

What this could look like for your firm

The same pattern (approvals by role, budget allocation at the source, and an audit trail inside your own tenant) applies to any document-heavy, multi-site operation. Most engagements start with a fixed-scope audit so the scope and cost are clear before any build.

Where do your approvals stall?

Tell us which process slows your sites down. We’ll show you, honestly, what Microsoft 365 automation could do for it. No slides, no pitch deck.

Scroll to Top