Before this automation, invoice approval at Sound Networks was a manual, email driven process. Invoices arrived as email attachments and had to be located, downloaded, and manually forwarded to the right approver. There was no consistent way to track whether an invoice was awaiting approval, who was responsible for actioning it, or how long it had been sitting untouched.
This created a familiar bottleneck: approvals stalled in inboxes, invoices were easy to lose track of or misfile, and the accounts team had no reliable visibility into where any given invoice stood in the process. Chasing approvers manually added further delay and took time away from higher-value finance work.
We built an end-to-end automated invoice approval workflow using Microsoft Power Automate, integrated with SharePoint, Microsoft Teams, and email.
The flow monitors incoming email and automatically identifies messages containing invoice attachments.
Detected invoices are automatically saved to a structured SharePoint document library, removing the need for anyone to manually download or file them.
The flow generates an approval request, sent simultaneously via Microsoft Teams and email, so the approver can respond through whichever channel they check first.
The flow waits for a decision:
The result is a self-contained pipeline: from the moment an invoice lands in an inbox to the moment it's approved and handed to the accounts team, no manual intervention is required unless a decision is needed from an approver.
Since implementing the workflow, [Client Name] has seen a meaningful shift in how invoices move through the business:
This workflow shows how a relatively targeted automation — built around a single, well-scoped business process — can remove a recurring bottleneck without requiring a full platform migration or complex system integration. By meeting approvers where they already work (Teams and email) rather than forcing a new tool into their routine, adoption required no extra training or behaviour change on the approver's side.
It's also a good example of automation done thoughtfully rather than naively: the flow doesn't just fire a request and stop — it accounts for the reality of approvers being slow to respond, and gives a clean way to close out a request if it's rejected, rather than leaving it in limbo.

























