Finance playbook · AI Employee: Fin

AR Aging & Collections

DSO trends down; write-offs minimised

The problem

AR aging becomes a monthly panic. A few days after the close, someone runs the aging report, gasps, and starts a scramble of collections emails, apologetic phone calls, and finger-pointing at CSMs. By the time anyone acts on 60-day overdue, the customer has often changed their AP contact, moved to a new billing system, or forgotten what the invoice was for. Cash conversion cycles stretch, and finance carries the anxiety.

At a glance
Trigger
Cron (weekly)
Approvals
CS + finance review before write-off
What it does
Writes to your systems
Systems
NetSuite · Chargebee · Zuora
How it feels in production

An hour-by-hour walkthrough.

Every morning at 07:00, Fin pulls the AR ledger from NetSuite / QuickBooks / Sage. For every open invoice past 15 days from due date, it starts a graduated collections cadence: - Day 1-14 past due: friendly email to the AP contact with the invoice PDF attached and a payment link. Templated, signed by the AR clerk. - Day 15-29: firmer email plus DM to the customer's CSM in Slack so they know before the customer complains. - Day 30-59: phone-call task queued for the AR clerk with a briefing (last-communication summary, disputed items, credit-hold status, deal-team contact). - Day 60+: escalation packet drafted for the CFO — total exposure, pattern of behaviour, recommended action (credit hold, service suspension, legal handoff). Along the way, Fin watches for signals: bounced email (contact left the company), "we never received the invoice" replies (resend triggered), "we already paid" replies (opens a payment-reconciliation search across every bank feed), disputes (routes to the CSM with the disputed line-items). Every touch is logged on the invoice; every reply is threaded. Weekly AR digest to the CFO: DSO trend, aging buckets by segment, top 10 overdue accounts with the story, cash-forecast delta from expected collections.
How it works

Step by step.

  1. 01

    Pull open AR daily + segment by aging bucket

    Read every open invoice from the accounting system. Compute days past due, aging bucket (1-14, 15-29, 30-59, 60-89, 90+), and enrichment (customer segment, ACV, CSM owner, current credit hold status).

    NetSuite · QuickBooks · Sage · Xero
  2. 02

    Send graduated collections communications

    Templated cadence per aging bucket. Emails signed by the AR clerk, DMs to CSMs on the internal side, phone-call tasks queued with briefings. Every touch respects the customer's timezone.

    Email · Slack · Task queue
  3. 03

    Watch for inbound signals + route

    Bounces trigger AP contact refresh (LinkedIn + AP finder). "Already paid" triggers bank-feed reconciliation search. Disputes route to CSM with line-items. Excuses ("holding for approval") tracked as promises with expected-payment date.

    Email parsing · Bank feeds · CRM · Payment reconciliation
  4. 04

    Escalate to CFO with a decision packet

    At day 60+, draft an escalation packet: total exposure, communication history, customer's payment behaviour, recommended action (credit hold, service suspension, legal handoff). CFO approves or edits the action.

    Web UI · Slack · CFO dashboard
  5. 05

    Log every touch + roll up to CFO digest

    Every email, call, reply, promise, and payment is logged on the invoice + customer record. Weekly CFO digest: DSO, aging buckets, top 10 overdue with story, cash-forecast delta, promises kept vs. broken.

    Accounting notes · CRM · Analytics
Systems and wiring

What you connect to make this run.

NetSuite · QuickBooks · Sage

read+write

Read the AR ledger daily. Write payment-received events, communication logs, credit-hold flags, and promise-to-pay dates back to the invoice + customer record.

Email · Slack · Phone tools

read+write

Send templated collections emails signed by the AR clerk. Read replies + threading. Slack DM the CSM at day-15. Phone-call task queue with briefing at day-30.

Salesforce · HubSpot

read

Customer context: CSM owner, ACV, renewal date, health score. A collections case on a customer 60 days from renewal is a different conversation than one on a stable long-term account.

Bank feeds · Payment reconciliation

read+write

"Already paid" replies trigger a search across every bank feed for matching amount + reference. Payment matched: reconciles and closes the case. Not matched: escalates to accounts team with the evidence.

What changes

Before and after, honestly.

Days Sales Outstanding (DSO)
Before
45-70 days
After
28-40 days
% of invoices collected within 30 days
Before
50-65%
After
80-90%
Bad debt write-offs (% of revenue)
Before
1.5-3%
After
0.3-0.8%
AR clerk hours per week on collections
Before
20-35 hours
After
8-12 hours (only exceptions + phone calls)
Frequently asked

Answers about this playbook.

How does it handle disputes without becoming adversarial?

Disputes pause the cadence. Fin routes the dispute to the CSM with the specific line-items in question, and the customer sees "we're looking into that" rather than more chasing. Cadence resumes when the dispute is resolved.

What about enterprise customers with complex AP processes?

Cadence adjusts to their known payment cycle. If Enterprise Corp always pays on the 15th and 30th, Fin doesn't nudge on the 5th. Payment behaviour is learned per customer over 6-12 months.

Can we use it for pre-billing (send invoice before due date)?

Yes — the same engine handles pre-billing communications: initial invoice send, mid-cycle reminder, due-date-approaching notice. Reduces surprises and slippage.

How does it work with automated payment (ACH, credit card on file)?

Auto-pay customers skip the collections cadence unless a payment fails. Failed auto-pay triggers a card-update + AP-contact refresh flow instead of a collections email.

What about international customers with different payment terms?

Cadence is per-region customisable. European customers may have longer standard terms (Net 60), some Asian markets have specific holiday-affected cycles. Templates + timing adjust per country.

See it run on your data.

Free plan, no credit card. Connect the systems this playbook needs and run it against a past event first.