Back to blog

Power Automate

Automating Invoice Processing with Power Automate

How to automate invoice processing with Power Automate and AI Builder — capture, extract, approve and post to Sage, SYSPRO or Dynamics. Practical worked example for South African finance teams.

March 10, 20248 min read

The cost of manual invoice processing in South African finance teams

Most South African AP teams we meet are still processing supplier invoices the same way they were ten years ago: invoices arrive by email, somebody opens each one, retypes the header and line items into Sage, SYSPRO or Dynamics, prints it, walks it to a manager for a signature, scans it back, files it, and chases the supplier when a payment goes out late. It is not unusual for a single invoice to take 12–18 minutes of human time end-to-end — and at 800 invoices a month that is a full-time person doing work a machine can do in under a minute.

Power Automate (with AI Builder for the document reading) replaces that entire loop. The supplier still emails the invoice. After that, everything is automatic: the file is captured, the data is read, it is checked against the matching PO, routed to the right approver in Teams, posted to your ERP, and filed in SharePoint with a full audit trail. The AP clerk only sees the exceptions — the 5–10% that genuinely need a human eye.

What "automating invoice processing" actually means

Invoice automation is not one thing — it is six things stitched together. A flow only works in production if every step is solid:

  1. Capture — the invoice arrives (email inbox, supplier portal, scan to SharePoint) and the file is picked up automatically.
  2. Extract — AI Builder reads the PDF or image and pulls supplier name, invoice number, date, VAT number, line items and totals into structured fields.
  3. Validate — the flow checks the data: does the supplier exist in your ERP, does the PO match, does VAT calculate correctly, is this a duplicate of an invoice already processed?
  4. Approve — based on amount, cost centre and supplier, the flow routes the invoice to the right approver(s) in Teams or Outlook with a one-click approve/reject.
  5. Post — once approved, the invoice is written to your accounting system (Sage 200/Evolution, Sage 300, SYSPRO, Business Central, Xero) using the right connector or API.
  6. File and notify — the original PDF lands in a SharePoint folder linked to the supplier and period, and the AP clerk gets a single daily exceptions report instead of 40 emails.

Step-by-step: a working Power Automate invoice processing flow

Step 1 — Capture invoices from a dedicated inbox

Create a shared mailbox — for example invoices@yourcompany.co.za — and tell every supplier to send invoices there. In Power Automate, build a cloud flow triggered by "When a new email arrives in a shared mailbox" with a filter on attachments only. Save each attachment to a SharePoint library called Invoices / Inbox with a unique filename that includes the received date and sender domain. This gives you one canonical source of every invoice the business has ever received — searchable, backed up, and ready for the next step.

Step 2 — Extract the invoice data with AI Builder

AI Builder ships with a pre-trained Invoice processing model that already knows what an invoice looks like — supplier name, invoice number, invoice date, due date, VAT amount, totals and line items. For most South African businesses, the pre-trained model is 85–95% accurate out the box on supplier invoices because most invoices follow the same visual conventions. Where it isn't, you train a custom Document processing model on 5–20 sample invoices per supplier and the accuracy on those layouts climbs to 95%+.

In your flow, add the AI Builder action "Extract information from invoices", point it at the file from Step 1, and the output is structured JSON. You now have machine-readable invoice data without anyone typing a single field.

Step 3 — Validate against your ERP and your business rules

This is the step that separates a demo from a real system. Validation rules every production flow should include:

  • Duplicate check — query your ERP for an existing invoice with the same supplier + invoice number. If a match exists, send to exceptions, do not proceed.
  • Supplier match — look up the supplier in your ERP master file. If the supplier doesn't exist, route to the AP supervisor for vendor onboarding before the invoice can be processed.
  • PO matching — if the invoice references a PO, look up the PO header and line items and confirm price, quantity and VAT match within tolerance (e.g. ±2%).
  • VAT validation — for SA businesses, confirm the supplier VAT number is valid (15% of net = VAT, supplier registered for VAT in SARS records).
  • Coding rules — apply default GL codes based on supplier category, so approvers don't have to re-code every invoice from a known supplier.

Step 4 — Route for approval in Teams

Use the "Start and wait for an approval" action with the Teams approvals connector. Route based on amount and cost centre:

  • Under R10,000 — auto-approve if PO-matched, otherwise to line manager.
  • R10,000–R100,000 — single approval from the department head.
  • Over R100,000 — sequential approval: department head, then FD/CFO.

The approver gets a Teams card with the invoice PDF inline, the extracted data, the matched PO, and approve/reject buttons. They never need to leave Teams. The flow handles reminders if an approval is stuck for more than 24 hours — and escalates to the next approver after 72.

Step 5 — Post the approved invoice to your accounting system

How the post step works depends on what you run:

  • Sage 200 / Sage Evolution — write to the SQL database via stored procedures, or use the Sage Evolution Web API where available. Pair this with our Power BI Sage 200 integration for a closed loop: invoices in, dashboards out.
  • Sage 300 — use Sage 300 Web API or a custom HTTP connector to post to AP Invoice Entry.
  • SYSPRO — use SYSPRO e.net Solutions business objects (XML in, XML out) to post AP invoices.
  • Microsoft Dynamics 365 Business Central / F&O — native Power Automate connectors, fully supported.
  • Xero / QuickBooks — native connectors with full create-invoice support.

Step 6 — File, notify, and report

The final actions: move the original PDF from Inbox to Processed / [Year] / [Month] / [Supplier], tag the SharePoint metadata with invoice number and amount, write a row to a SharePoint list or Dataverse table for reporting, and send the AP clerk a daily exceptions digest instead of a flood of single-invoice notifications. Build a Power BI report on top of that list and you have live AP cycle time, approver bottleneck analysis, and on-time payment percentage by week.

What it costs and what to expect on ROI

Realistic numbers from the implementations we have delivered in South Africa:

  • Implementation — R 80,000 to R 220,000 for a first flow covering one ERP and one approval matrix. Add R 30,000–R 60,000 per additional ERP or business unit.
  • Microsoft licensing — Power Automate Premium per-user (R ~280/user/month) for users with attended approvals, and AI Builder credits (sold in blocks of 1 million service credits per month, approx R 9,000/month) for the document extraction. Most clients consume well under one block per 1,000 invoices.
  • Payback — typically 4–9 months. A team processing 800 invoices/month at 15 minutes each saves ~200 hours/month. At even a modest loaded cost of R 250/hour, that is R 50,000/month recovered.
  • Timeline — first flow live in 2–4 weeks for a single ERP. Multi-ERP or multi-entity scopes run 6–10 weeks.

Common pitfalls that kill invoice automation projects

  • Trying to automate 100% from day one. Aim for 80–90% auto-processed and design the exceptions queue properly. Chasing the last 10% costs more than it saves.
  • No supplier cleanup before go-live. If your ERP supplier master has duplicates, the validation step fails constantly. We always run a supplier de-duplication pass first.
  • Forgetting POPI/audit requirements. Keep the original PDF immutable in SharePoint with version history on, and log every approval decision with timestamp and approver identity — your auditors will ask.
  • Building it without finance. The AP team are the users. If they did not help design the approval matrix and the exceptions queue, they will work around the system.

FAQ: Power Automate invoice processing in South Africa

Does Power Automate work with Sage Evolution?

Yes — directly against the SQL database or via the Sage Evolution Web API. We have invoice flows live in production posting to Sage 200 Evolution.

Can it handle invoices in multiple currencies?

Yes. The flow reads the currency from the invoice, looks up the current exchange rate (SARB or your internal rate), and posts in the supplier's currency with the rate stamped on the AP transaction.

What about credit notes and recurring invoices?

Credit notes are handled by a separate branch in the flow that posts to AP as a negative. Recurring invoices (rent, subscriptions, levies) can be auto-matched to a recurring template and approved on a lighter workflow.

Can my team build this themselves?

The first 60% of the flow — yes, with a competent Power Platform user. The validation, ERP posting and exceptions handling is where most internal builds stall. We typically build the production flow with your team, hand it over with full documentation, and they own it from there.

Where to start

If invoice processing is genuinely costing you a person or more, the fastest way to find out what an automation would look like is a free 30-minute scoping call. We look at your current process, your ERP, your volumes, and tell you straight what is automatable, what is not, and what it would cost. No proposal theatre. See our Power Automate consulting service or book a call.

More in Power Automate

Ready to put this into practice?

Let's discuss how this applies to your business.