Customer dunning
in Odoo
A late invoice isn't just a red line in a report: it's cash that should be sitting on your account and isn't. Odoo can chase your customers on its own, provided you spend ten minutes setting it up. Here's how it really works, and what it won't fix.
First surprise for many: in Odoo, dunning doesn't live under Sales, it lives under Accounting. It makes sense once you think about it, since a reminder starts from an overdue invoice, not from a quote. Depending on your version, you'll find it under Accounting → Customers → Follow-up Reports. Odoo lists every customer sitting on at least one overdue invoice and lets you write to them, one at a time or in a batch.
Behind that screen sits a simple engine: follow-up levels. Each level says "once an invoice is this many days late, do this." That single setting is the whole difference between a reminder that annoys and a reminder that gets you paid.
Setting up follow-up levels
Head to Accounting → Configuration → Follow-up Levels. A level is three things: a delay (number of days after the due date), an action (send an email, print a letter, or simply raise a manual reminder), and a message. Stack two or three levels and you get a cascade that hardens over time.
In practice, a cascade that works often looks like this:
Automatic, yes, but keep a hand on it
Odoo can send reminders on a schedule, without you opening the screen every morning. It's tempting, and for small recurring amounts, perfectly fine. On larger accounts, though, most teams prefer to keep a check before sending. A customer who just signed a big contract won't appreciate an automatic final notice because an invoice slipped to day 31 on a Sunday.
Good rule of thumb: automate the early levels (the polite nudge), keep a human hand on the last ones. And personalise each message rather than sending the same text to everyone. A first reminder that hands over the payment link in one click recovers more than a curt demand.
Where Odoo dunning shows its limits
Chasing is good. Knowing who to chase first, and what it does to your cash, is another matter.
With Odoo dunning alone
- Triggered after the due date, never before
- No priority by amount or risk
- No link with your upcoming balance
- You chase without seeing the impact on cash
- The "who paid what" is left to piece together
With Dafodoo + Odoo
- Overdue invoices detected and ranked by stake
- Ready-to-send email templates
- Every expected collection placed in the forecast
- You see what a successful reminder does to your balance
- Dunning, budget and cash in one place
Dafodoo reads your Odoo invoices and puts your reminders back into a day-by-day cash-flow forecast. You stop chasing at random and start chasing what weighs on this week's balance.
Frequently asked questions
Where is customer dunning in Odoo?
In the Accounting app, on the Customers side: depending on the version it's called Follow-ups or Follow-up Reports. Odoo groups every customer with at least one overdue invoice and lets you send a reminder, one customer at a time. Levels are set in Accounting → Configuration → Follow-up Levels.
How do I configure follow-up levels?
Each level triggers a set number of days after the due date. You attach an action (email, letter, or a manual task) and a message. By stacking several levels you build a cascade, for example a reminder at 7 days, a firmer follow-up at 15 days, a final notice at 30 days.
Is Odoo dunning really automatic?
Partly. Odoo works out on its own which customers to chase and at which level, and can send the emails on a schedule. Many teams still keep a manual check on larger accounts, to control the tone and avoid a reminder sent by mistake.
Can I customise the reminder email?
Yes, each level carries its own message. You adapt the tone, add the payment link, insert variables (customer name, amount due, list of invoices). A polite reminder at the first level and a firmer one later beat a single template.
What is the difference between dunning and the aged receivable?
The aged receivable shows who owes you how much and for how long; dunning is the action that follows. You read the aged receivable first to prioritise, then you chase. And to firm all of this up upstream, your payment terms set the due dates.
Chase what matters, not at random
Connect your Odoo and see, invoice by invoice, what each collection does to your cash.
Try Dafodoo for free