Skip to content

Use case · Accounts payable

Invoice approval automation that never pays on autopilot.

AI reads each invoice and flags what's off. Rules decide who has to look at it. A person approves anything large, new or unusual. Your accounting system still does the paying.

In short

Invoice approval automation in Fluxo Flow takes an invoice from your AP inbox or upload form, has an AI step extract vendor, number, amount, due date and PO into validated JSON, checks it for duplicates and anomalies, and routes it: small clean invoices are logged, large or unusual ones wait in the Review Queue for an approver. It isn't an AP suite; payment stays in your accounting system. The QuickBooks Online and Xero connectors are beta.

Invoice approval: key facts
InputInvoice text or fields sent to a Webhook trigger by your AP inbox parser, upload form or document tool.
AI stepExtracts fields into a JSON schema and lists anomalies; a Validator rejects incomplete output.
ApprovalsHuman Review with priority, assignee and timeout; approve, edit or reject in the Review Queue.
AccountingQuickBooks Online (beta) and Xero (beta) connectors; any other system through an HTTP Request.
TemplateInvoice extraction and approval: free, opens on the canvas, Dry Run it with a sample invoice.

How it works

The workflow

Six steps, two of them deterministic checks, one of them a person.

The workflow

7 steps

Six steps, two of them deterministic checks, one of them a person.

  1. Step 1: Webhook triggerInvoice text arrives from the AP inbox
  2. Step 2: AI GenerateExtract fields + anomalies as JSON
  3. Step 3: ValidatorRequired fields, totals add up
  4. Step 4: MemorySeen this vendor + invoice number?
  5. Step 5: RouterRoute by amount and risk
  6. Step 6: Human ReviewApprover checks large or unusual ones
  7. Step 7: Slack PostTell finance it's approved to pay

Result: Clean data on every invoice, approvals only where they add something, and a record of who approved what.

Routing

Who looks at what.

A starting routing table. Adjust the thresholds to your approval policy.

A starting routing table. Adjust the thresholds to your approval policy.
WhenRouteWhy
Under your threshold, PO matched, known vendor, no anomaliesLog it and notify financeMost invoices. Nobody needs to look twice.
At or over your thresholdHuman Review, high priority, assigned to the budget ownerAmount is the simplest proxy for risk.
Bank details differ from the vendor recordHuman Review, always; confirm with the vendor on a known phone numberThe classic business email compromise pattern.
Same vendor and invoice number seen beforeStop and flag as a duplicateDuplicates are the most common costly AP error.
No PO number, or the PO isn't foundHuman Review assigned to the requesterSomeone has to confirm the purchase happened.
New vendorHuman Review by financeVendor setup and tax details need a person.

Why AI belongs in the extraction, not the decision

Invoices arrive in every layout, which is exactly what rules-based parsers are bad at and language models are good at. So the AI step does one job: read the invoice and return a strict JSON object (vendor, invoice number, amount, currency, due date, PO number and a list of anomalies). Everything after that is deterministic: a Validator checks the JSON, a Memory lookup catches duplicates, and a Router applies your thresholds. The model never decides whether money moves. That split is the core of human-in-the-loop design: automate the reading, keep the judgment.

Duplicates and bank-detail changes

Two checks pay for the whole workflow. First, duplicates: store vendor + invoice number in a persistent Memory node on every run and skip anything you've already seen, the same idempotency key idea that stops duplicate records anywhere (the full pattern). Second, bank details: if the remit-to account on the invoice doesn't match the vendor record, the invoice always goes to a person, who confirms the change with the vendor on a phone number you already had, never one from the invoice or the email. The FBI's IC3 tracks business email compromise as its own crime category for a reason.

Connecting your accounting system

The QuickBooks Online (beta) connector works with customers, sales invoices, estimates and payments; it doesn't create vendor bills, so create the bill through QuickBooks' API with an HTTP Request step, or keep that last step manual. The Xero (beta) connector's "New or updated invoice" trigger also fires for bills, so a bill drafted in Xero can start the approval flow. For anything else (an ERP, a PO system, a spreadsheet), an HTTP Request step with a vault credential does the lookup. The step-by-step how-to walks through each node.

Test it before it touches real invoices

Open the template, paste a real invoice as the sample and press Dry Run: the AI and Slack calls are simulated, so it costs nothing, and you choose whether the review is approved, rejected or times out to see each branch. Try a duplicate, a changed bank account and a missing PO before you switch it on. Running it live needs a paid plan.

FAQ

Questions, answered.

Can AI approve invoices automatically?

It can, but it shouldn't decide alone. Let AI extract and flag, let rules auto-approve only small, matched invoices from known vendors, and send everything large, new or unusual to a person in the Review Queue.

How does it catch duplicate invoices?

A persistent Memory node stores each vendor and invoice number. The next run checks it first and stops anything already seen, before any approval or payment step.

Does it work with QuickBooks or Xero?

Both connectors exist (QuickBooks Online is beta, Xero is beta). They handle customers, sales invoices and payments; Xero's invoice trigger also covers bills. Creating vendor bills goes through an HTTP Request to your accounting system's API.

What does it cost to run?

A paid plan to run it live (the Free plan builds and Dry Runs only), plus your AI provider's token cost for the extraction step, billed to your own key with no markup. Runs and steps aren't metered.

Open the invoice approval template and Dry Run it.

Build and Dry Run on the Free plan, no credit card. Run live on a paid plan, on your own AI key at cost.

Free to explore · No credit card · 30-day money-back guarantee on paid plans