AI Adoption GuideFinanceCollect
Adaptive dunning sequences
LLM tailors tone, channel, and timing per customer payment history, using tools like Gaviti or Chaser AI.
Finance processPlanBudgetInvoiceCollectPayCloseReportAudit
By Don, DoneThat’s AI coach · updated
A draft that cites history and policy, or nothing
The output you want is a draft dunning sequence. Each step names the contact, channel, tone, timing, and a cite for why those choices fit this customer. Cites come from two places only: that customer's payment history, and the dunning policy for their current risk tier.
If the history is thin, the draft stays empty. A first invoice, a new legal entity, or a customer whose prior invoices still live in another system is not enough to tailor tone or timing. The collector uses the standard first-touch template for that tier. Do not fill the gap with a recovery rate, a guessed days-past-due improvement, or a story about similar accounts.
Collections still sends. The model does not mail, call, or post to a portal. A person signs off on channel, wording, and hold-or-send. Collections platforms such as Gaviti, Chaser AI, HighRadius, and Salesforce hold cadences and worklists; treat those systems as the record of what went out. The draft is something a collector reviews, not a second source of truth and not an auto-send queue.
Tier assignment is upstream. Use risk-tiered prioritization to place the account. This page only consumes the tier and the policy attached to it.
Load the ledger and the dunning policy first
Do not draft from an aging bucket. Aging tells you the invoice is late. It does not tell you whether this customer pays on a stable lag, disputes freight, or has never been late in this ledger.
Load payment history in one working set: open invoice dates and amounts, original due dates, actual payment dates on closed invoices, partial payments, short pays, credit memos, recorded disputes, and recorded promises. If you already run dispute-likelihood scoring, treat a high score as a flag to open the claim notes. A score without notes is still thin history.
Load the dunning policy that matches the current risk tier, not a generic past-due script. It should name the first-touch window after due date, allowed channels by step, tone constraints, who may authorize a hold, and when the account moves to a named collector or outside counsel. If the policy and the tier disagree, stop and fix the mapping. Balance size is a prioritization input, not a tone input.
If the promise-to-pay tracker shows an open promise that has not broken, the next step is a reminder of that promise, not a new dunning step that pretends the promise never happened.
If the history extract or the tier policy is missing, stop. Empty is the correct draft.
Write each step with a cite, then stop
Each step in the draft has four fields: timing, channel, tone, and cite.
Timing is an offset from a dated event you can point to: days after due date, days after last payment, or days after a broken promise. Do not use a predicted cash date as if the customer had committed to it. If payment-date prediction is already in use, a collector may treat it as a call-planning hint. It is not a promise to pay, and it does not belong in customer-facing copy.
Channel follows the policy for that tier and the contact-attempt log you actually have. If they never answer email and they pick up on the second call, cite the last attempts. If you have no attempt log, use the policy default. Do not invent a preferred channel.
Tone follows history plus policy. A customer who paid four of four prior invoices close to terms, and is eight days late on one invoice, gets a factual first note. A customer with repeated broken promises in the same tier gets the firmer step the policy already named. Do not escalate tone because the open balance is large.
Cite means a pointer a collector can check quickly: invoice number and due date, last payment date and amount, promise date, dispute ticket, or the policy clause (Tier B, step 2, phone after unanswered email). If you cannot name the source, delete the step. Stop when the sequence is drafted. Do not attach a forecasted recovery, a days-past-due improvement, or a claim that this cadence works for the segment.
Here is one walk-through. A collections lead opens an account with four closed invoices in the last year and one open invoice, INV-8841, due 12 March, still unpaid on 20 March. The closed invoices were paid 2, 0, 5, and 11 days after due. No disputes. No open promise. Risk tier B. Policy for tier B: email day 7, phone day 14 if no reply, firm written notice day 21, hold if a dispute opens.
A usable draft looks like this:
- Step 1, day 7 past due, email, factual. Cite: INV-8841 due 12 March; last four payments 2 to 11 days after due; no prior dunning on this invoice; Tier B first-touch email.
- Step 2, day 14, phone, factual, ask for a date. Cite: no reply to step 1 once unanswered; they do pay; Tier B phone step.
- Step 3, day 21, firm written notice to the billing owner. Cite: two prior steps, no payment, no dispute; Tier B written notice. Hold if a dispute appears.
That is the whole draft: no cash-in date, no claim that days past due will fall, and no treatment of the 11-day late payment as chronic default.
The empty contrast is the same open invoice on a new customer: no closed invoices in this ledger, no contact-attempt log, tier assigned from credit limit alone. The correct draft is empty. The collector sends the standard Tier B first email from the template library. Filling that emptiness with a line about how similar manufacturers pay is fabrication.
The collector reviews; the collector sends
Review is a checklist.
Every cite must resolve. Open the invoice, the payment, the promise, or the policy clause. If a cite is stale, for example a payment posted after the draft was generated, discard the draft and reload history.
History depth must support every tailored claim. A line such as "you usually pay late" needs a pattern, not one invoice. If the pattern is not there, strip the tailoring and use the template.
Channel and tone must match the policy for this tier. A draft that jumps to legal language on day 7 for Tier B is out of policy even if the wording is calm.
Nothing in the draft should already be in flight. Check the worklist in Gaviti, Chaser AI, HighRadius, Salesforce, or your cadence tool so you do not duplicate a step.
The collector, not the model, hits send. Log who approved. If any item fails, fix the inputs and regenerate, or send the standard template.
Failures that still look like good dunning
Chronic language on a first invoice is the usual miss. Phrases such as "as with prior past-due balances," "your usual delay," and "we have reached out several times" are false on a first invoice. If closed-invoice count is zero or one, ban habit language and use the first-touch template. Empty stays empty.
Sending without review is out of scope, even when the queue is long and the platform can fire the email. Unreviewed send is how a dispute in progress gets a firm demand, how a broken-promise reminder goes to the wrong contact, and how an invoice paid that morning gets a final notice that afternoon.
Do not invent a days-past-due improvement. Do not put a target DSO or DPD movement on the draft, in collector notes, or on a dashboard tile attached to this workflow. This use case does not measure recovery. It measures whether the sequence cites real history and the right policy, and whether empty stayed empty.
A related miss is writing a predicted pay date into the customer email as if it were a promise. A prediction is not a promise to pay. If the customer has not committed, keep the date off the letter.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first