In most firms of thirty to a hundred people, an invoice is approved the same way: it arrives in a shared inbox, someone forwards it to the person who ordered the work, they reply "ok to pay" a few days later, and the reply is forwarded to accounts. Purchase orders work the same way in reverse. It works until someone is on holiday, or until the auditor asks who approved a payment and the answer is somewhere in a forwarded email chain.
Power Automate approvals fix this with the Microsoft 365 the firm already has. This is how I set them up for invoices and purchase orders, and the limits worth knowing before you start.
What you need
- No new licence for the approvals themselves. The Approvals connector is a standard connector. Microsoft: "any license that grants access to Power Automate and the ability to use standard connectors is sufficient to create approval flows", and that includes the Microsoft 365 business plans (Microsoft Learn).
- Dataverse, set up for you. Approvals are stored in Dataverse. In the default environment, "the Dataverse database is created for you automatically" the first time an approval flow runs. In any other environment, the person who runs the first approval flow needs an administrator role there, and the set-up takes a few minutes.
- SharePoint for the invoices and the purchase order list, which the firm almost certainly has already.
Where approvers answer
Nobody has to learn a new app. An approval reaches the approver as an Outlook email they can answer in place, a card in Microsoft Teams, and an item in the Approvals app in Teams and in the Power Automate mobile app (Microsoft Learn). They press Approve or Reject and can add a comment. The flow carries on the moment they do.
Choosing the kind of approval
Power Automate offers five (Microsoft Learn):
- Approve or reject, first to respond: any one of the approvers decides. Good for "any director can approve".
- Approve or reject, everyone must approve: each approver must answer, and one rejection ends it.
- Custom responses, waiting for one answer or for all: your own buttons, such as Approve, Query, Reject.
- Sequential approval: one approver after another, in order. "Each approver must respond before the request moves to the next approver in the sequence."
Microsoft's own example of a sequential policy is invoices: "pre-approval for invoices over $1000.00 before the Finance department can approve them" (Microsoft Learn).
Invoices: a design that holds up
- One place for incoming invoices. A SharePoint document library, fed from the accounts mailbox by a flow that saves each PDF attachment. Columns for supplier, amount, job and status.
- The approval starts itself. A new file in the library starts a flow. Microsoft publishes a starting point for exactly this, a template that starts an approval for a new file and moves it to another folder (Microsoft Learn).
- Routed by amount. Under a limit, the person who ordered the work approves. Over it, a sequential approval: the manager first, then a director.
- The invoice travels with the request. Attachments are supported, and Microsoft's own example is an invoice (Microsoft Learn).
- The answer lands in the library. The flow writes Approved or Rejected, who decided, when and their comment into the invoice's columns, and moves the file. Accounts filter the library for Approved and pay. Nobody forwards anything.
Purchase orders
The same pattern, started from a request instead of an invoice: a SharePoint list, or a simple Power Apps form on the phone, with supplier, description, amount and job. The approval runs as above. When it is approved, the flow gives the order its number and sends it to the person who asked, ready to go to the supplier. When the invoice arrives later, it can be matched to the order number instead of being approved a second time.
The limits worth designing around
- An approval cannot wait for ever. A flow run lasts at most 30 days, pending approvals included (Microsoft Learn), and Microsoft's known issues page puts the wait for an approval at 28 days. In practice: about four weeks. Give each approval a timeout of a few days, and decide what happens then: a reminder, or a move to the next person.
- Attachments have a size limit. 50 MB in total, 5 MB per file by default. Above 5 MB the email no longer carries the file, and the approver is sent to the approvals centre to see it (Microsoft Learn). Scanned invoices rarely come near it; drawings attached to orders can.
- Formatting differs by app. The details of a request can use simple formatting, but the Approvals app in Teams does not show it (Microsoft Learn). Keep the details plain: supplier, amount, job, a link to the file.
- Guests get no answerable email. Approval emails that can be answered in Outlook are not supported for guest users. Keep approvers inside the firm.
- The same person cannot appear twice in a sequence. A sequential approval cannot assign the same approver to two steps.
The record the auditor asks for
Every approval is kept. Approvers and requesters see their history in Power Automate and in the Approvals app in Teams, which can export a date range (Microsoft Learn), and the Approvals app writes audit events to Microsoft Purview. The better record, though, is the one the flow writes onto the invoice itself: who approved it, when, and what they said, in the same library accounts pay from.
What it costs to run
For approvals on SharePoint, nothing new: the connector is standard and the Microsoft 365 licences cover it. The work is in fitting it to the firm: who approves what, the limits, the folders, and what happens when someone is away.
If invoices in your firm are still approved by forwarded email, tell me how it works now. Half an hour on Teams, no charge, and I will tell you what I would build first and roughly what it would take.