1,080 Overdue Invoices, Chased Automatically by AI

1,080
open invoices under management
~€7.6M
open receivables (NOK & SEK)
162
chase emails drafted in one agent run
10 min
inbound reply polling cadence
The challenge: one person chasing a €7.6M ledger
This Norwegian equipment rental group runs a ~€30M operation with six departments that can each raise invoices — delivery-triggered billing, monthly billing cycles, usage thresholds with over-usage charges, and per-contract fee structures. Around 300 active B2B customers, roughly ten new ones every month, and 30-day credit terms across the board.
All of that landed on a five-person accounting team with exactly one person dedicated to accounts receivable. Chasing was manual, person-dependent and reactive. Small disputes routinely blocked large invoices — a €1,000 disagreement could hold up a €100,000 invoice while emails went back and forth. And because the business borrows against its receivables through factoring, every week of collection delay directly reduced working capital.
When an account did escalate to the external collection agency, the agency received no context: the account manager was the only person who knew the dispute history, and none of it was written down anywhere structured.
What we built: an AI collections agent with a human approval queue
We built an AI accounts receivable agent that reads open invoices from the client's Microsoft Fabric data platform every morning, drafts the right follow-up email for each account in Norwegian, classifies every customer reply, and routes everything through a human approval queue — so no email reaches a customer without sign-off.
The agent runs the full collections lifecycle on an aging-based cadence: a payment reminder the day after the due date, an overdue notice at seven days, a final notice at fifteen, then escalation. A second daily pass follows up on things the agent is already waiting for — lapsed dispute-form deadlines and missed promise-to-pay dates.
On the inbound side, the agent polls the shared AR mailbox every ten minutes. When a customer replies, an LLM classifies the reply into one of twelve intents — full or partial dispute, promise to pay, 'already paid', query, legal threat, bankruptcy and more — then drafts the correct response or action grounded strictly in real invoice and conversation data.
- Human-in-the-loop by design — every customer-facing email is a draft in an approval queue, never an autonomous send. Reviewers edit before releasing, and cases are grouped by contact so one approval shows everything open for that customer.
- Risk scoring — each account is scored Low / Medium / High from balance, days overdue, payment history, dispute state, promises to pay and factoring status — driving how fast the cadence escalates.
- Dispute routing — chasing stops the moment a dispute opens, a structured fact-finding workflow kicks in, and if the case ever goes to the collection agency, the agent auto-generates a full dispute brief — the context the agency never used to get.
- Configurable without a deploy — email templates, follow-up sequences, risk thresholds and even the AI prompts are all editable in an admin dashboard by the finance team.
How it runs in a Microsoft environment
The agent sits entirely inside the client's Microsoft stack: Business Central AR data flows through Microsoft Fabric's medallion layers, syncs daily into Azure PostgreSQL, and all email is sent and read through Microsoft Graph — with Entra ID single sign-on for the team.
The client already had Dynamics 365 Business Central and a Microsoft Fabric deployment with Bronze, Silver and Gold data layers. Rather than bolting on another SaaS tool with its own copy of the data, we built on what was there: a daily sync job reads the Fabric Gold SQL endpoint after the client's own pipeline refresh and lands open invoices in Azure PostgreSQL. Fabric stays read-only; agent-owned data never pollutes the warehouse.
Outbound and inbound email run through the Microsoft Graph API against a shared AR mailbox, using a create-draft-then-send pattern so every message lands in a complete, threaded email ledger — the agent replies inside existing conversations rather than spraying new threads. The app itself runs on Azure Container Apps with scheduled jobs for the daily sync and agent runs, and the team signs in with their existing Microsoft accounts via Entra ID.
How the AI is kept honest
An AI agent that chases money needs guardrails more than it needs cleverness. The LLM (Anthropic's Claude, running a real tool-calling loop) gathers its own context — invoice details, full conversation history — before making a single structured decision. Hard rules prevent it from ever inventing amounts or dates: every figure in every draft comes from ledger data.
Some situations are hard-stopped away from automation entirely: legal threats and bankruptcy mentions route straight to a human, 'already paid' claims are verified against the ledger before anything closes, and no chasing happens while a dispute is open. Before go-live, the agent was validated against a 23-scenario test harness covering the full outbound cadence and every inbound intent.
The result: a one-person AR function that scales
The AR workload changed shape: instead of writing every chase email from scratch and keeping the state of 300 accounts in one person's head, the AR controller now reviews and releases pre-drafted, correctly-timed emails — a single agent run drafted 162 correctly-staged chase emails across the ledger.
Dispute context now survives handoffs. Promises to pay are tracked and followed up automatically. Escalations to the collection agency arrive with a complete brief. And because collection speed feeds directly into the company's factoring headroom, faster, more consistent chasing translates straight into working capital.
Frequently Asked Questions
Can AI really write collections emails customers will receive?
Yes, with the right guardrails. In this build the AI drafts every email grounded strictly in real ledger data — it cannot invent amounts or dates — and a human reviews and approves every send. The AI does the drafting, timing and classification work; the finance team keeps final control.
Do we need Microsoft Fabric for AR automation like this?
No. Fabric was the right foundation here because the client already had it. The same agent pattern works reading directly from Business Central, another ERP, or a SQL database. If you do have Fabric or Synapse, we build on your Gold layer rather than duplicating data into another tool.
How does the agent handle disputes and edge cases?
Disputes stop the chasing cadence immediately and trigger a structured fact-finding workflow. Legal threats, bankruptcy mentions and 'already paid' claims are hard-stopped to a human. The goal is that the automation handles the routine 80% flawlessly and routes the messy 20% to people — with full context attached.
How long does an AR automation build like this take?
This system went from kickoff to live agent runs in a matter of weeks, not months, because it reused the client's existing Microsoft infrastructure — Fabric, Business Central, Azure and their email tenant — rather than introducing new systems. Timelines depend mostly on how clean your invoice data and process rules are, which is exactly what our AI readiness assessment checks.
One-person AR team? You're the best case for this.
Tell us how your receivables process runs today — how documented, how standardised, how many people. We'll tell you what an AI collections agent could take off your plate, and what it would need from your ERP and Microsoft environment.