Automating invoice capture into IFS Cloud, end to end
Invoice capture into IFS Cloud is the automation most finance teams ask for first, and for good reason: the inputs are chaotic, the rules are clear, and the volume never stops. This guide walks the complete architecture — from the email landing in an AP mailbox to a posted supplier invoice and a Teams notification — with the checkpoints that keep auditors and controllers comfortable along the way.
On this page
- Why invoice entry is still manual
- The target architecture
- Step 1 — capture: the email trigger
- Step 2 — extraction: an agent reads the invoice
- Step 3 — validation against IFS records
- Step 4 — posting via IFS actions
- Step 5 — exceptions and human approval
- Step 6 — closing the loop in Teams
- Implementation checklist
- What to measure
- Frequently asked questions
Why invoice entry is still manual
Most invoices arrive as PDF attachments in a shared mailbox, and every supplier formats them differently. Traditional capture tools tried to tame this with per-supplier OCR templates — which work on day one and decay from day two, as suppliers redesign layouts, add lines, or switch languages. The template backlog grows, trust drops, and the AP team quietly goes back to keying invoices into IFS by hand.
The cost is not only the typing. Manual entry means late registration, which means missed early-payment discounts, blind spots in cash forecasting, and a month-end crunch where accruals are guesses. The fix is not a better template engine — it is removing templates from the architecture entirely.
The target architecture
Six stages, each one observable and each one allowed to fail safely:
- Capture — a trigger fires when an email lands in the AP mailbox.
- Extraction — an AI agent reads the attachment and produces structured invoice data.
- Validation — the flow checks supplier, purchase order and duplicates against live IFS records.
- Posting — a clean match is registered in IFS Cloud through the native connector.
- Exceptions — anything unclear routes to a human approval inside the flow.
- Notification — outcomes land in Teams, where the AP team already works.
In NgageFlow's visual builder this is one flow with a branch: clean invoices take the straight path, exceptions take the human path, and both paths end in IFS and Teams. There are also ready-made templates that start from this exact shape.
Step 1 — capture: the email trigger
Start with a dedicated mailbox — ap@yourcompany.com — connected through a one-click OAuth connection, so the AP lead can authorize it without IT tickets or shared passwords. The flow triggers on each new email, filters for invoice-like attachments, and records the message ID so the same email can never produce two invoices, even if it is forwarded twice.
Resist the temptation to filter senders aggressively at this stage. Let everything invoice-shaped into the flow and let validation sort it out — a rejected email with a reason is auditable; a silently dropped one is a phone call from an unpaid supplier.
Step 2 — extraction: an agent reads the invoice
An AI agent step opens the attachment and extracts what a clerk would: supplier name and tax ID, invoice number and dates, currency, line items with quantities and prices, tax amounts, and totals. Because the agent reads the document rather than matching a template, a brand-new supplier costs nothing extra, and a redesigned layout is a non-event.
Two practices make extraction production-grade. First, normalize at the boundary: dates to ISO format, decimal separators unified, currency as a code rather than a symbol. Second, make the agent state its confidence per field — a low-confidence total should route to a person even if everything else looks fine. The goal is not extraction that is always right; it is extraction that knows when it might be wrong.
Step 3 — validation against IFS records
Extraction gives you what the supplier claims; validation checks it against what IFS knows. The flow queries IFS Cloud projections directly — live records, not a nightly copy:
- Supplier exists: look up the supplier entity set by tax ID. No match means an exception, not a guess.
- Purchase order match: pull the supplier's open purchase orders and compare invoice lines to PO lines — prices and quantities within the tolerances finance agreed to.
- Consistency: invoice currency matches the PO currency; totals add up from the lines.
- No duplicates: check existing purchase invoices for the same supplier and invoice number before anything is created.
This is where a native connector earns its keep: the checks are queries against typed entity sets, not hand-built HTTP calls with hand-rolled authentication. The IFS Cloud connector also introspects entity schemas, so the flow knows which fields are mandatory before it ever attempts a create.
Step 4 — posting via IFS actions
A clean match becomes an IFS record. The flow creates the supplier invoice through the connector, referencing the matched purchase order, with safe concurrency — if the underlying record changed while the flow was running, the write fails cleanly instead of overwriting someone's parallel work. Where your process requires it, the flow then executes the relevant IFS action, so IFS's own business logic, posting rules and authorization routes run exactly as they would for a manually entered invoice.
Keep the evidence chain: store a reference from the IFS record back to the source email and PDF, so an auditor can walk from any posted invoice to the original document in seconds.
Step 5 — exceptions and human approval
Exceptions are not failures; they are the product. Define the classes up front — unknown supplier, no matching PO, tolerance breach, suspected duplicate, low-confidence extraction — and give each one an owner. When the flow hits one, it pauses on a human-in-the-loop approval step: the approver sees the extracted invoice and the relevant IFS records side by side, plus a one-line reason like "line 3 unit price exceeds PO tolerance." They approve, correct or reject, and the flow resumes from exactly where it paused.
The discipline that matters: nothing posts without either a clean match or an explicit human decision, and every decision is logged. That sentence tends to end the audit conversation.
Step 6 — closing the loop in Teams
The flow's last step tells the team what happened, where they already work. A Teams message per exception with a link to the approval task; a daily summary to the AP channel — invoices posted, exceptions waiting, oldest exception age. Visibility is what makes the automation trusted: nobody wonders what the robot did today, because the channel says so. More patterns like this live in the ERP notifications use case.
Implementation checklist
Before the first invoice flows, have these ten things in place:
- A dedicated AP mailbox, connected with a one-click OAuth connection rather than shared credentials
- Scope agreed: which companies and sites are in the first wave
- An IFS integration user with permission sets limited to supplier invoice work
- Supplier master data clean enough to match reliably on tax ID
- Matching tolerances for price and quantity agreed with finance, in writing
- Exception classes defined — unknown supplier, no PO, tolerance breach, suspected duplicate — each with an owner
- An approval group and a response-time expectation for exceptions
- A Teams or Slack channel where daily outcomes land
- A retention rule for source emails and PDFs
- A standing weekly review of exceptions to tune tolerances and master data
What to measure
Pick the metrics before go-live, and measure the manual baseline first — the before-and-after is how the project defends itself at budget time:
- Touchless rate — share of invoices posted with no human touch. Expect it to climb as tolerances and master data improve.
- Cycle time — median hours from email arrival to posted invoice, the number suppliers actually feel.
- Exception rate by class — the tuning dial. A spike in "no matching PO" is a procurement conversation, not an AP one.
- Duplicate catches — every caught duplicate is a recovered overpayment risk; count them.
- On-time payment share — and, where agreements allow, early-payment discounts captured.
- Exception response time — how long approvals wait on people; it tells you if the human side of the loop is staffed.
Teams that review these numbers weekly for the first quarter typically find the flow tunes itself: tolerances get realistic, supplier master data gets cleaned, and the touchless rate becomes a number finance brags about. When you are ready to extend the same pattern to other documents — order confirmations, delivery notes — the architecture does not change, only the entities do. The advisory side of EX10 and the wider Ngage Suite exist for exactly that second step.
Frequently asked questions
Do we need OCR templates for each supplier?
No. Template-based capture is exactly what this architecture replaces. An AI agent reads each invoice the way a person would — finding the supplier, invoice number, lines and totals regardless of layout — so a new supplier means zero configuration, not a new template to build and maintain.
What happens when an invoice does not match a purchase order?
It becomes a routed exception instead of silent rework. The flow opens an approval task showing the extracted invoice and the IFS records side by side, states the specific mismatch, and notifies the right owner. A person approves, corrects or rejects, and the flow resumes — nothing is posted without either a clean match or an explicit human decision.
Can this run inside our own cloud?
Yes. NgageFlow is self-hosted in your cloud with Docker, or managed for you by EX10 — either way, you keep ownership of the data. Invoice PDFs, extracted values and tokens stay within your environment, which keeps AP automation compatible with data-residency requirements.