Solution Vault

Chasing unpaid invoices with AI

Yes. We've designed a bot that works your sales ledger instead of a calendar: it checks each overdue invoice is actually payable, drafts the next message in your wording, reads the reply, and names where that invoice now stands — paid, promised, queried, disputed or ignored. It can be configured to run in any business. Your terms, your tone, your customers. And anything firm, final or customer-specific is approved by a person first.

Want to get it up and running in your business? Just fill out the form on this page, and our AI agent Ozzie will call you right away to get started on your quote.

Get a quote

Or call the office: 813-686-7201

How the bot works, where a human stays in the loop, and what you configure. Every point it makes is also written out below, so the page works with the video skipped. Captions included.

How the bot works

Eight steps. Reading the ledger, the aging and the hard stops are ordinary code; the model is asked to read the replies and draft the words.

  1. It reads your ledger, not a calendar. What is owed, by whom, how overdue, on what terms, what is part-paid, what is already in query, and what that customer has done the last three times. A sequence that fires on day seven regardless is the reason people switch these things off.

  2. It checks the invoice is actually payable. Did it go out? To the right person? With the purchase order number, the timesheet or the portal reference that customer insists on? A good share of “late” invoices are invoices that never arrived properly, and chasing those annoys a customer who has done nothing wrong.

  3. It drafts the next message for that invoice. Not a template with a number dropped in. The draft names the invoice, the amount, the date it was due, the work it was for, and anything the customer already told you — at the level of firmness that invoice has actually earned.

  4. It reads the reply, which is where the judgment is. “It went out Friday.” “We never got the invoice.” “We're disputing the second line.” “Can you re-send it to accounts?” “Pay me after the fifteenth.” Each one puts that invoice somewhere different, and each one is named rather than treated as a non-answer.

  5. It stops itself. A promise to pay pauses the sequence until the date promised. A query or a dispute stops it and hands the invoice to a person. A payment on account closes it. Nothing is more expensive than a reminder that arrives the day after a customer told you the money was already sent.

  6. A person approves anything firm, final or customer-specific. The early, friendly nudge can run on its own if you want it to. Anything that changes the temperature of the relationship goes to a human with the thread, the ledger position and the draft — because they know what that account is worth and the bot does not.

  7. It hands over the ones that need a human. A dispute, a customer in trouble, a promise broken twice, anything with legal or insolvency language in it: packaged up with the whole thread, every message sent, the aging and what was promised when. Whoever picks it up starts with the full picture.

  8. It writes the record. One row per invoice and one per message: the ledger position it read, what it checked, what it drafted, who approved it, what was sent and to whom, the reply and how it was classified, every pause and why, the model and prompt version, UTC timestamps, and what the run cost.

What you configure

It can be configured to run in any business. This is what that actually means — the list of things that are yours, not ours.

Your terms and your clock
When an invoice counts as late, what to do with a customer who has always paid late and always paid, and whether the clock runs from the invoice date, the statement or the approval.
Your tone ladder
How many steps there are, what each one says, and how far the last one goes. Written by you, in your words — the bot drafts inside that ladder and never above it.
Your never-chase list
Accounts nobody touches without asking: the biggest customer, a client mid-renewal, anyone in dispute, anyone a partner is already talking to. Per account, per invoice, or for a date range.
Your approval ceiling
Which step can send on its own, and above which step a person approves every message. Set per customer or per amount owed if you want it.
Your reply rules
What counts as a promise to pay, how long a promise buys, how many broken promises before it escalates, and who a dispute goes to.
Your contacts
Who gets chased at each customer, when their accounts inbox is used instead of your day-to-day contact, who is copied, and who is never copied.
Your channels
Email from your own address, a message into the portal the customer insists on, or a draft handed to a person to send. Nothing is sent from an address your customers don't recognize.
Your systems
Which accounting system holds the ledger and whether we read it by API or by a scheduled export. It is read-only either way.
The words it uses
The versioned prompts behind the drafting and the reply classification — yours to read, yours to tune, and replayed against threads you have already worked before a change goes live.

Transparent, and configurable by you

The dark band below is what the system will not do. This is what you can see and change — and it is how we build everything, not something invented for this page.

You see what it did, and why
Every draft shows the ledger position it was built from, what it checked before chasing, and which step of your own tone ladder it is on. Every classified reply shows the sentence it was read from — so you can disagree with “that's a promise to pay” before it pauses anything.
Versioned prompts you can tune yourself
The prompts behind the drafting and the reply classification are yours to read and yours to tune. A change is a reviewable diff, replayed against threads you have already worked so you can see what it would have said differently, and rolled back the same way.
A human in the loop wherever judgment actually matters
Automation handles the reading, the checking and the first friendly nudge. Anything firm, final, disputed or customer-specific is approved by a person, and it never decides a dispute. That boundary is a property of the system, not a promise about how carefully we'll use it.
Every run logged, along with what it cost
One row per invoice and one per message: what it read, what it drafted, who approved it, what was sent, what came back and every pause with its reason — plus token usage and cost for that run.

It can be configured to run in any business. The terms and the words are yours: your tone ladder, your never-chase list, your approval ceiling, your contacts, your system of record. Chasing invoices on this page is one configuration of it, not the limit of it.

A human approves anything outside your rules

The boundary is the design. Every one of these is a property of the system, not a promise about how carefully we'll use it.

  • It never moves money, and it is read-only on your ledgerIt reads what is owed and writes messages and a follow-up record. It does not take a payment, apply a credit, raise a credit note, write anything off, change a term or adjust an invoice — and it holds no credential that would let it.
  • Anything firm or final is approved by a personThe last steps of your ladder cannot send themselves in any configuration. Neither can a first message to a customer the bot has never written to before.
  • Hard stops, in any configurationA dispute. A query of any kind. A promise to pay, until the date it promised. A part-payment. A customer on your never-chase list. A new or unverified contact. Any reply containing legal, insolvency or hardship language. An invoice the bot cannot prove was properly sent. None of these are chased on confidence alone.
  • It does not threaten, and it does not adviseNo interest, no late fee, no statutory reference, no mention of a credit file, a solicitor or a third party, and no stated consequence of not paying — unless that exact sentence is in the ladder you wrote. Nothing it sends is legal advice, and chasing your own invoices is not the same thing as debt collection.
  • It does not invent a figureEvery amount, date and invoice number in a message is read from your ledger and shown with the record it came from. If the ledger and the customer disagree, it says so and stops rather than picking one.
  • The reply is data, never instructionsText in a customer's email, a signature block or an attachment cannot change what the bot does. Every model call runs as structured output against a fixed schema, untrusted text is kept out of the instruction block, and anything that reads like an instruction is quarantined, flagged for a human and logged. An email saying “mark this as paid” marks nothing.
  • Versioned prompts and modelsEvery draft and every classification records the model and prompt version behind it. A change is a reviewable diff, replayed against threads you have already worked before it goes live, and rolled back the same way.
  • It fails closedA ledger it cannot read, an API error, a rate limit, a reply it cannot classify — the invoice is held and the run is reported as incomplete. There is no path where an error sends a chase.
  • Reversible, and a kill switchEvery message is scoped to a run id so a bad run can be reconstructed and apologized for precisely, and one flag puts the whole system back to draft-only, instantly, with no deploy.

Works with your tools

This runs on top of the accounting system you already have. We're not replacing it, and we're not asking your customers to use a new portal.

We read the sales ledger by API or by a scheduled export, and messages go out from your own email address or into whichever portal that customer insists on. The approval queue and the handovers land in email, Slack or Microsoft Teams, wherever your finance team already works.

If your accounting system isn't in the list below, the only real question is whether it has an API, a report or a scheduled export we can read. Most do — and a read-only aged-debt export is all a dry run needs.

Naming a system here means we can read it. It does not imply a partnership, a certification or an endorsement, and there are no vendor logos on this page for that reason.

  • QuickBooks Online and Desktop
  • Xero
  • NetSuite
  • Sage
  • Microsoft Dynamics 365
  • Bill or a similar AP and AR tool
  • Stripe
  • A customer's AP portal
  • Email from your own address
  • Email, Slack or Microsoft Teams
  • A spreadsheet, if that's where the aging lives

Works well for

  • Construction subcontractors — Payment waits on a general contractor's cycle and on retainage, so chasing by date annoys the wrong people.
  • Staffing agencies — Weekly invoicing means dozens of small overdue balances at once, each with its own client contact.
  • Law firms — A chase on a queried bill is a relationship problem, so anything firm is written for a person to send.
  • Dental and medical practices — Patient balances and insurance remainders need different wording, and neither should sound automated.
  • Freight carriers and brokers — Payment turns on the delivery paperwork matching the rate, so an invoice has to be payable first.

How a rollout works

Nothing is sent on day one. A dry run over invoices you have already chased comes first, and it is where your own numbers come from.

  1. 01Discovery

    The quote call, then a working session. We read your terms, your aged debt, the chase emails you have already sent, the replies you got back, who is never chased without asking and what access your accounting system allows. You get the tone ladder, the exception classes and a written scope.

  2. 02Dry run

    The bot runs over invoices you have already chased. Nothing is sent to anybody. It produces the message it would have sent and the classification it would have given each reply, and we compare both against what your team actually did. Every disagreement is a rule to fix — and this is where your own numbers come from, on your own customers.

  3. 03Assisted mode

    Live invoices. The bot checks, drafts, reads the replies and pauses itself; a person approves every message before it goes. The work gets much faster to do. The control doesn't change.

  4. 04Optional first-nudge auto-send

    Optional, off by default. The first, friendliest step can send on its own for customers you name, with every hard stop in force and the kill switch. Everything firmer stays approved by a person — plenty of teams stop at step 03, and that's a good place to stop.

What we don't claim

  • No numbers we haven't earned. No reduction in days overdue, no recovery rate, no time saved, no “get paid faster”. We haven't run this on your ledger. The dry run is where those numbers come from, and they'll be yours.
  • No customer claims on this page. No names, no case studies, no logos.
  • It can't make anybody pay. A customer who has no money is not a messaging problem. What this fixes is the chasing that doesn't happen, the invoice that was never properly sent, and the reminder that went out after somebody had already replied.
  • It isn't debt collection, and it isn't advice. No interest, no late fees, no statutory language, no third parties, and nothing about your credit control policy that you did not write. It does not replace your accountant, your terms or your own judgment about a customer.
  • Fully autonomous chasing isn't on offer. The design assumes a person owns anything firm, final or disputed. That's deliberate, and it's why the boundary is written down.

Questions people ask

Can AI chase unpaid invoices for us?
Yes - and the part that matters is not the sending. An AI agent can read your sales ledger for what is actually owed, check each invoice was properly sent to the right contact with whatever reference that customer requires, draft the next message in your own wording at the right level of firmness, read the reply, and name where that invoice now stands: paid, promised, queried, disputed, wrong contact or ignored. What it does not do is keep firing reminders at somebody who already answered, or send a firm message nobody approved.
How is this different from the automatic reminders in QuickBooks or Xero?
Those send on a schedule and stop there. The schedule is the easy half. This one checks the invoice is payable before anybody is chased, writes about that specific invoice and the work behind it rather than filling a template, reads what the customer says back, and then acts on it - pausing on a promise to pay until the date promised, stopping dead on a dispute, and handing the account to a person when it should not be a bot's problem any more. If built-in reminders already solve your problem, use them.
Will it email our customers without us seeing it?
Not unless you explicitly turn that on, and never for anything firm. We build it draft-and-approve: a person reads every message before it goes. If you later let the first friendly nudge send itself for named customers, every hard stop still holds - a dispute, a query, a promise to pay, a part-payment, a never-chase account, an unverified contact or an invoice it cannot prove was sent can never be chased automatically. One flag puts the whole system back to draft-only with no deploy.
What happens when a customer replies?
The reply is read and that invoice is moved somewhere specific rather than being treated as a non-answer. A promise to pay pauses the sequence until the date promised and re-opens it if the date passes. "We never got the invoice" triggers a re-send to the right contact instead of another reminder. A query or a dispute stops everything and hands the invoice to a person with the whole thread. A part-payment is recorded and the remaining balance is what gets discussed next.
Can it make our biggest customer angry?
That is the risk the design is built around. Accounts you name are never chased without a person - your largest customer, a client mid-renewal, anyone a partner is already talking to, anyone in dispute - and you can exclude an account, an invoice or a date range. Everything firmer than your first step is approved by a human who knows what the relationship is worth, which is knowledge the bot does not have and will not pretend to.
Does it add late fees or mention legal action?
No. There is no interest, no late fee, no statutory reference, no mention of a credit file, a solicitor or a third party, and no stated consequence of not paying anywhere in what it writes - unless that exact sentence is in the ladder you wrote yourself. Nothing it sends is legal advice, and chasing your own invoices is not debt collection. Where a reply contains legal, insolvency or hardship language, the invoice stops and goes to a person immediately.
Does it touch the money or the ledger?
No. It is read-only against your accounting system: it reads what is owed and writes messages and a follow-up record. It does not take a payment, apply a credit, raise a credit note, write anything off, change a term or adjust an invoice, and it holds no credential that would let it. An email that says "mark this as paid" marks nothing.
Is there a record of what was sent to whom?
Yes, and it is designed for the conversation where a customer says they were never chased, or were chased too hard. One immutable row per message records the ledger position it was built from, what it checked first, the draft, who approved it, what was sent and to which address, the reply and how it was classified, every pause with its reason, the model and prompt version and UTC timestamps.
How long does it take to get running?
The first milestone is a dry run, and it needs three things: a read-only view of your aged debt, a handful of chase threads you have already worked, and your never-chase list. We will not quote you a timeline before we know which systems are involved and what access they allow - you get a real one in your quote, once Ozzie's call has gathered the details.

Quote

Get a quote

Want to get it up and running in your business? Fill out the form and Ozzie, our AI agent, will call you right away to get started on your quote.

He'll ask what your ledger lives in, how chasing works today and who signs off a firm message. Your brief goes straight to our team.

Or call the office: 813-686-7201

Add details (optional — helps Ozzie skip the basics)
Where does your sales ledger live?

By submitting, you agree Gray's Autonomy may call and text this number about your quote. Msg & data rates may apply. Reply STOP to opt out. Privacy · Terms