DSO drops without awkwardness
Consistent, polite persistence is what collects — and exactly what busy owners skip. The bot never feels weird about the third reminder.
Automation / Chat
AR watches your receivables the way you wish you had time to: it tracks aging daily, sends payment reminders on your cadence and in your tone, matches incoming wires and ACH payments to open invoices, and lands a Monday-morning aging report that tells you exactly where your cash is stuck. Money actions above your threshold always wait for your sign-off.
Workflow concept and scripted demonstration. The descriptions below preserve the original workflow scope; channels, integrations, response times, and actions must be agreed and tested for your setup. Sample dialogue is not a customer result.
Every open invoice is tracked against terms. The bot knows the difference between "5 days late, always pays" and "45 days, gone quiet."
Polite, escalating reminders in your voice — at the intervals you set per customer class. You approve the tone once; the bot keeps the rhythm.
Wires and ACH credits get matched to open invoices automatically — including partial payments and the ones that arrive with no memo.
Short-pays, disputes, and customers crossing your escalation threshold surface to you with history attached — not buried in a ledger.
One email: what is outstanding, what moved last week, what is stuck, and the suggested next action per account.
Monday morning: the aging report flags an invoice at 45 days. Watch the reminder go out with your approval — and the wire that lands two days later get matched automatically.
Illustrative sample only. Playback sends no messages and connects to no accounts.
Monday aging report — $84,300 open · 1 needs you
Morning. Receivables picture: $84,300 open across 11 invoices · $61,200 current · $10,700 at 1–30 · $12,400 at 31–45+ Moved last week: Calloway paid $8,150 ✓ · Westgate paid $4,900 ✓ Needs you: INV-4412, Meridian Property Group, $12,400, now 45 days — two gentle reminders sent (day 32, day 39), opened but no reply. They've never gone past 50 days. Suggested next step: firmer reminder cc'ing their AP manager Lena, referencing the signed completion cert. Draft attached — approve?
Re: Monday aging report
Approve, but soften the last line — they're a good account, just slow this quarter. Don't mention late fees yet.
Re: Monday aging report — sent ✓
Sent 9:14 AM with the softer close ✓ — late-fee language removed, kept the completion-cert reference and the cc to Lena. Tracking for reply; if nothing by Thursday I'll propose the next step rather than act.
💰 Wire received: $12,400 — matched to INV-4412 ✓
Wednesday 11:03 AM: incoming wire $12,400, no memo line. Matched with high confidence to INV-4412 (Meridian): exact amount, known remitter bank, open invoice. Ledger updated, invoice closed, aging refreshed — nothing over 30 days now. Lena also replied: "Apologies for the delay — new approval system on our side. Resolved now." Logged to the account. Meridian's payment-behavior profile updated (avg days-to-pay: 41 this year). Next Monday's report will reflect all of it.
Consistent, polite persistence is what collects — and exactly what busy owners skip. The bot never feels weird about the third reminder.
"Who sent this $12,400?" gets answered automatically — even partial and unlabeled payments find their invoice.
A weekly aging picture with movement and suggested actions — collections stop being a quarterly surprise.
Anything beyond a routine reminder — payment plans, write-off suggestions, escalations — pauses for your explicit approval.
The complete sample handoff, ready to inspect alongside the conversation. The actual record format is scoped to your systems.
{
"record": "payment_match",
"payment": {
"type": "wire",
"amount": 12400,
"received": "Wed 11:03",
"memo": null,
"remitter_bank": "known"
},
"match": {
"invoice": "INV-4412",
"customer": "Meridian Property Group",
"confidence": "high",
"basis": [
"exact_amount",
"known_remitter",
"open_invoice"
]
},
"collection_history": {
"reminders": 3,
"last": "softened + cc AP manager",
"days_outstanding_at_pay": 47
},
"ledger": {
"invoice_status": "closed",
"aging_over_30": 0,
"dso_effect": "-2.1 days"
},
"customer_profile": {
"avg_days_to_pay_ytd": 41,
"note": "delay caused by new AP approval system"
},
"next_report": "Monday aging \u2014 auto",
"approvals": {
"reminder_3": "owner_approved_with_edit",
"auto_actions": "matching + ledger only"
},
"transcript_ref": "email-ar-4412"
}Start with your inputs, systems, approval owners, and exceptions. We agree the permitted actions, test dry runs, and define who can pause the workflow.
Let’s talk about the work
Show us the spreadsheet, the website, or the task you keep explaining. That’s enough to start a useful conversation. Start a project