Key Takeaways
- Most overdue invoices are not disputes, they are forgotten emails. The invoice went to an address nobody reads, or to a person who left, or into an approval queue that stalled. Chasing harder does not fix a routing problem.
- A collections system is four decisions, not a tone of voice. Who gets the message, on which day, through which channel, and what happens when they still do not pay.
- Do the boring reconciliation before you write a single reminder. Half the "overdue" list in most companies is already paid, paid partially, or invoiced to the wrong entity.
- The follow-up that works names the work, not the number. "The March campaign build, PO 4471" gets an answer. "Invoice 1182 is now 34 days overdue" gets ignored.
- Escalation belongs to a human, the first three touches do not. Day 3, day 10 and day 17 are mechanical. The call to the CFO is a judgment call.
- An AI employee can own the mechanical part inside Slack. He pulls the aging list from Stripe or your accounting tool, matches it against email threads and CRM records, drafts each reminder with the right contact and context, and waits for your yes before anything leaves the building.
Every founder has a version of this spreadsheet
Our ops lead used to open a tab called "chase" every Monday. Fourteen rows, some of them three months old, each one a client who was perfectly happy with the work and simply had not paid. She would spend ninety minutes writing polite emails, and by Thursday she could not remember which of the fourteen had answered. Two of them, it turned out later, had paid in February to an old bank detail on a PDF template nobody had updated.
That is what accounts receivable looks like at a 30-person company. Not a debt collection problem. A memory and routing problem wearing a finance costume.
The system below is what actually cleared that list. It works whether a person runs it or an AI employee does, and the second half of this post shows what changes when you hand the mechanical parts to an AI employee that lives in your finance channel.
Step 1: Reconcile before you chase
Never send a reminder off an aging report you have not checked. The fastest way to lose a client's trust is to ask for money they already sent.
Before any outreach, resolve every open item against three sources:
- The payment processor. Stripe, GoCardless, or whatever takes the money. Look for partial payments and failed charges, not just successes.
- The accounting ledger. QuickBooks, Xero or NetSuite. Check that the invoice was issued to the correct legal entity and that credit notes were applied.
- The inbox. Search the client domain in Gmail. "We are processing this in our next run" is not an unpaid invoice, it is a scheduled payment.
@Viktor pull every open invoice in Stripe past its due date, match each one
against payments and credit notes in QuickBooks, and flag the ones where the
amounts do not agree. Post the mismatches in #finance before you touch anything elseIn most first passes, a third of the list disappears at this step. What remains is the real receivables problem, and it is small enough to work seriously.
Step 2: Find the human who can actually pay you
Invoices sit unpaid because they are addressed to a role that does not exist. The signer was the founder, the payer is a finance manager hired in April, and the invoice email goes to accounts@ where 400 unread messages live.
For each remaining item, establish three things:
| What you need | Where it lives | Why it matters |
| The named payer | CRM contact record, past payment confirmations | A person answers, an alias does not |
| The internal reference | PO number in the original email thread or contract | Without it, AP cannot enter the invoice |
| The approval path | Whoever signed the SOW, plus their finance contact | The blocker is usually approval, not cash |
This is the step people skip because it is tedious. It is also the step that decides whether the next email gets a reply.
Step 3: Run a three-touch cadence, then escalate
A cadence stops the two failure modes: silence for six weeks, then a furious email. Days count from the due date, not the invoice date.
- Day 3, email to the named payer. One line naming the work, the reference number, the amount and the payment link. No apology, no "just circling back".
- Day 10, reply in the same thread, copy the project sponsor. The person who bought the work usually has more urgency than accounts payable.
- Day 17, short message in the shared channel or on the phone. By now you are not asking whether they received it, you are asking what is blocking approval.
- Day 30, a human decision. Pause new work, ask for a payment plan, or send a formal notice. Never automate this one.
The wording that gets answers describes the work in the client's own language:
Hi Marta, the March campaign build is invoiced under PO 4471, due 12 March. Payment link is below. If it needs re-issuing to a different entity, tell me which and I will send a corrected copy today.
That gets a reply because it hands the recipient something to do.
Step 4: Write down what you learn about each payer
The second time you chase the same client, you should already know that they pay on the 25th, that invoices need a PO in the subject line, and that Marta forwards everything to a shared approvals inbox. Most teams learn this and lose it, because it lives in one person's head or in a thread from November.
Keep a short payer note per account: preferred contact, payment run date, required references, past disputes. That file is the difference between a collections process and fourteen improvised conversations. If an AI employee runs the cadence, this is exactly what persistent memory is for.

What changes when an AI employee runs the cadence
The four steps above are mostly lookup, matching and drafting. That is the work an AI employee is good at, and it happens where your team already talks about money.
Viktor is an AI employee in Slack and Microsoft Teams. He connects to 3,200+ integrations with real read and write access, so the receivables loop runs without anyone opening a tab.
@Viktor every weekday at 8:30, post an aging summary in #finance: what is newly
overdue, what moved since yesterday, and which accounts hit day 10 or day 17 today.
For each one, draft the follow-up with the right contact, PO and payment linkA morning in that channel looks like this. He posts six items. Four have drafts attached with the correct named payer and reference number pulled from the original thread. One is flagged because the amount in Stripe does not match the ledger. One is flagged because the client replied last week asking for a corrected entity name and nobody answered.
You read the drafts, fix a sentence in one of them, hit approve, and the morning is done in four minutes. Nothing was sent without you seeing it. That review-first default matters more here than almost anywhere else, because a wrong reminder to a good client costs more than a late payment.

Here is the honest split of who does what:
| Task | A person doing it manually | An AI employee in your channel |
| Reconcile Stripe against the ledger | 40 minutes a week, error prone | Runs before the daily summary, flags mismatches only |
| Find the named payer and PO | Search inbox and CRM per invoice | Pulled from the original thread and CRM record |
| Draft three-touch reminders | Rewritten from scratch each time | Drafted with account history, waits for approval |
| Notice that day 17 arrived | Remembered, or not | Never missed, it is a scheduled job |
| Decide to pause work on an account | The right call for a human | Escalated to you with the full history |
| Explain a disputed line item to a client | Human, every time | Assembles the evidence, you write the answer |
The pattern generalises. Anything with a clear trigger, a known source of truth and a draft-before-send step is a good candidate for a recurring job.
The mistakes that keep receivables high
- Chasing from a stale report. If your aging list is not reconciled, you will ask paid clients for money. Reconcile first, always.
- One channel only. Email alone fails when the payer changed. The shared channel or a phone call finds the new person in an hour.
- No day 30. Cadences without an ending teach clients that late is fine. Decide in advance what day 30 means for your business.
- Automating the escalation. A rude automated notice to a strategic account is an expensive way to save five minutes.
- Letting the job quietly die. Receivables routines are the first thing to lapse when the person who owned it goes on holiday. That failure mode has its own post: why automations die quietly.
How to set this up this week
- Export every open invoice past its due date and reconcile it against your processor and ledger. Delete what is already settled.
- For what remains, fill in named payer, reference number and approval path. This is one afternoon of work, once.
- Write your cadence down as days from the due date, including what day 30 means.
- Connect your processor, accounting tool and inbox to your AI employee and set the morning summary as a recurring job in your finance channel.
- Review drafts daily for two weeks. Correct him in the thread when a payer note is wrong, so the next run is better.
By week three the Monday spreadsheet is gone, and the only receivables conversation left is the one that genuinely needs a person.
Frequently Asked Questions
How soon after the due date should I send the first reminder?
Three days. Early enough that the invoice is still recent in the payer's inbox, late enough that a payment already in transit has time to land. Anything past a week and you are competing with the next month's approval cycle.
Can an AI employee send the reminders automatically?
He can, but the default is review-first: he drafts, you approve, then it sends. For receivables that default is worth keeping, because a reminder sent to a client who already paid damages the relationship more than the delay costs you.
What tools does this need?
A payment processor, an accounting ledger and the inbox where invoices were originally sent. Viktor connects to Stripe, QuickBooks, Xero, NetSuite, Gmail, HubSpot and thousands of other tools, so the matching happens across all three without exports.
How is this different from the dunning emails my processor already sends?
Processor dunning fires on a failed charge and knows nothing about the work, the PO number or who approves payments at that company. It cannot notice that the client asked for a corrected entity name last Tuesday. That context is why generic reminders get ignored.
Who should own escalation?
A named human, usually the person who owns the client relationship. Everything up to day 17 can be mechanical. Pausing work, agreeing a payment plan or sending formal notice is a business decision with consequences.
Does this work for a business with hundreds of small invoices?
Yes, and the value is higher. With volume you care less about individual drafting and more about grouping: which cohort of accounts is slipping, which payment method fails most, and which clients need a different billing setup entirely.
Is our financial data safe in this workflow?
Viktor maintains SOC 2 Type I and is hosted by default. Access is scoped per connected tool, so you can give him the accounting and processor access this workflow needs and nothing else.