Skip to main content
Customer Payment Follow-up & Dunning — A build-to-order Odoo module that automates multi-level payment reminders and dunning  — 1/1Illustrative preview

A build-to-order Odoo module that automates multi-level payment reminders and dunning letters,

escalating overdue receivables through email and SMS on policies you control.

ECOSIRE scopes, builds, installs, and supports it on Odoo 17, 18, or 19.

What is Customer Payment Follow-up & Dunning?

A build-to-order Odoo module that automates multi-level payment reminders and dunning letters, escalating overdue receivables through email and SMS on policies you control. ECOSIRE scopes, builds, installs, and supports it on Odoo 17, 18, or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Custom follow-up policy model with per-level day offsets, minimum-balance thresholds, and channel selection, assignable per `res.partner` or partner category
Multi-level escalation ladder (reminder, firm notice, formal dunning letter, final demand / legal flag) with copy and timing you define per policy
Scheduled `ir.cron` job that scans open, overdue `account.move.line` receivables nightly and advances each customer to the correct dunning level
Automated email dispatch via `mail.template` with per-level, per-language templates and dynamic invoice/aging placeholders
SMS reminder channel built on Odoo's native `sms` framework with opt-out handling and per-policy enable/disable
Branded dunning-letter QWeb PDF reports themed to your letterhead, including an itemized overdue-invoice statement
`@api.depends` computed fields for days overdue, current dunning level, and next-action date, surfaced on the partner and invoice forms
Aged-receivable trigger thresholds that branch behavior by balance band, days overdue, or salesperson
`base.automation` rules to notify the account owner, create a follow-up activity, or place an account on credit hold on threshold breach
Promise-to-pay and dispute holds that pause escalation without losing history, preventing double-chasing
Filterable list/kanban dunning cockpit plus an aged-dunning pivot/graph view for the collections team
Full follow-up audit trail — every reminder, channel, timestamp, and level change logged on the record and in the chatter
`ir.model.access.csv` and record rules so collectors see only assigned accounts, with multi-company boundaries enforced
XML-RPC / JSON-RPC exposure of dunning level and collection status for external portals, BI, or a payment gateway
Configurable working-day / weekend and holiday-calendar handling so reminders never fire on non-business days

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Overdue receivables quietly drain working capital, and by the time a collections team notices, the invoice is already 60 days late. Odoo's core account app ships a basic Follow-up feature — you can define follow-up levels on account.followup.followup.line and print a reminder report — but it runs on a single global policy per company, triggers only on a manual "Follow-up Reports" review or one blunt daily cron, and has no native per-customer escalation, no SMS channel, and no way to branch behavior by customer segment, salesperson, or risk band. Credit-control teams end up exporting aged balances to a spreadsheet and chasing by hand, which is exactly where recovery slips.

This is a build-to-order module that ECOSIRE designs, builds, installs, and supports specifically for your dunning process — not a one-size download. Technically, we extend the accounting stack with configurable follow-up policies (a custom model carrying per-level day offsets, minimum-balance thresholds, channels, and template links), attach a policy to each res.partner or partner category, and wire a scheduled ir.cron that scans account.move / account.move.line for open, overdue receivables and advances each customer through their escalation ladder. Reminders are dispatched as mail.template emails and, where you use the SMS channel, via Odoo's sms framework; each step is stamped on the record with @api.depends computed fields (days overdue, current dunning level, next action date) so the state is always auditable. Dunning letters are rendered as branded QWeb PDF reports you can theme to your letterhead, and every touch is logged so a customer is never double-chased or escalated past a promise-to-pay hold.

Escalation is genuinely multi-level: a gentle reminder at day 7, a firmer notice at day 30, a formal dunning letter at day 60, and a final-demand / hand-to-legal flag beyond that — with thresholds and copy you define per policy. Automated actions (base.automation) let you fire a task, notify the account owner, or place an account on credit hold when a customer crosses a balance or age limit. Because everything is real Odoo data, the same fields drive filterable list/kanban views, an aged-dunning dashboard, and outbound triggers over the XML-RPC / JSON-RPC API so an external portal or BI tool can read collection status. Access is locked down with ir.model.access.csv plus record rules so collectors see only their assigned accounts and multi-company boundaries are respected.

Build-to-order means we start with a scoping call to map your reminder cadence, letter templates, channels, and approval rules, then deliver a working module on your target Odoo version (17.0, 18.0, or 19.0). We build and test on a staging copy of your database, run UAT with your collections team, and only then install to production with a rollback plan. Typical delivery is one working week from confirmed scope depending on how many policies, languages, and integrations you need. You receive the full source, documentation, a training session, and a post-go-live support window — and the git repository is handed to you so you own what we build.

What you get

  • Installable module source code targeting your exact Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including follow-up policies, templates, and cron setup
  • Technical documentation covering models, fields, security rules, cron schedule, and the QWeb report structure
  • User guide plus a live training session for your credit-control and collections team
  • UAT on a staging copy of your database with sign-off before production go-live
  • Documented rollback plan and a post-go-live support window for defect fixes and adjustments
  • Handover of the complete git repository so you own the code and its history
  • Sample dunning-letter and reminder-email templates configured to your branding and languages

Who this is for

Credit Control Manager

Owns DSO and cash collection targets. Needs a policy-driven, auditable escalation process instead of manual spreadsheet chasing, with clear reporting on who is at which dunning level and why.

Accounts Receivable / Collections Specialist

Works the daily queue of overdue accounts. Needs a single cockpit that shows exactly which customers to contact today, on which channel, with the letter or email already drafted and logged.

CFO / Finance Director

Wants working capital freed up and bad-debt risk contained. Needs threshold-based credit holds and escalation rules enforced consistently across entities, with BI-ready collection data over the API.

Odoo Administrator

Maintains the ERP and integrations. Needs a clean, upgrade-safe module with proper access rules, sensible cron scheduling, and documented code they can support long after handover.

How Customer Payment Follow-up & Dunning Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Escalation levelsFully multi-level ladder, configurable per policyWhatever you build and maintain yourselfOften fixed 2-3 levels, hard to changeBasic follow-up levels, one global policy
Reminder channelsEmail + SMS on native frameworksDepends on your build effortUsually email onlyEmail / printed report only
Per-customer policiesPer partner, category, or segmentPossible but you design itRarely; mostly one-sizeOne company-wide policy
Trigger automationCron + `base.automation` threshold rules + credit holdsYou wire the cron and rulesLimited automation, few triggersManual review or single daily cron
Fit to your processScoped and built to your cadence and lettersExact fit, at full build costAdapt your process to the appTake it as-is
Dunning lettersBranded QWeb PDFs to your letterheadYou design the reportGeneric template, limited stylingStandard follow-up report
Support & ownershipSupport window + full git repo handoverYou own and maintain itVendor SLA, no source controlCommunity forums / your own team
API / BI accessCollection status over XML-RPC / JSON-RPCIf you expose itRarely exposed cleanlyRaw data only, no dunning state

Frequently Asked Questions about Customer Payment Follow-up & Dunning

How long does delivery take?

Because this is build-to-order, we build it for your process rather than shipping a pre-made download. Typical delivery is one working week from confirmed scope, depending on how many follow-up policies, languages, channels, and integrations you need. The scoping call sets a firm timeline before any build starts.

How is this different from Odoo's built-in Follow-up feature?

Odoo core gives you one global follow-up policy per company, manual review or a single blunt cron, and email-only reminders. This module adds per-customer and per-segment policies, true multi-level escalation, an SMS channel, threshold-based credit holds, promise-to-pay pauses, a collections cockpit, and API access to collection status — the things core leaves you doing in a spreadsheet.

Which Odoo versions and editions are supported?

We build for Odoo 17.0, 18.0, or 19.0, on Community or Enterprise. Enterprise's native accounting adds features like batch follow-up reports and studio, but this module works on Community as well; we confirm your exact version and edition during scoping so the code targets it precisely.

What do support and updates look like after go-live?

Every engagement includes a post-go-live support window for defect fixes and adjustments. Because you receive the full git repository, you own the code and can maintain it in-house or retain ECOSIRE for ongoing support and version upgrades. We can quote a longer support or SLA arrangement separately if you want one.

Will it work with our existing SMS and email setup?

Yes. Email uses Odoo's standard `mail.template` and outgoing mail servers, and SMS is built on Odoo's native `sms` framework, so it uses whatever gateway you already have configured. If you use a specific SMS provider or transactional email service, we confirm it during scoping and wire it in.

Can escalation branch by customer, salesperson, or balance?

Yes. Follow-up policies attach per partner or partner category, and aged-receivable triggers can branch on days overdue, outstanding balance band, or salesperson. High-value or high-risk accounts can follow a stricter ladder while small balances follow a lighter one, all configured without touching code.

Is the customer data and access properly secured?

Access is enforced with `ir.model.access.csv` and record rules so collectors see only their assigned accounts, and multi-company record rules keep entities separated. All follow-up actions are logged in the chatter and on the record for a complete audit trail.

Request a quote

Customer Payment Follow-up & Dunning

A build-to-order Odoo module that automates multi-level payment reminders and dunning letters, escalating overdue receivables through email and SMS on policies you control. ECOSIRE scopes, builds, installs, and supports it on Odoo 17, 18, or 19.

  • Custom follow-up policy model with per-level day offsets, minimum-balance thresholds, and channel selection, assignable per `res.partner` or partner category
  • Multi-level escalation ladder (reminder, firm notice, formal dunning letter, final demand / legal flag) with copy and timing you define per policy
  • Scheduled `ir.cron` job that scans open, overdue `account.move.line` receivables nightly and advances each customer to the correct dunning level
  • Automated email dispatch via `mail.template` with per-level, per-language templates and dynamic invoice/aging placeholders

Request a Quotation

Tell us about your Customer Payment Follow-up & Dunning requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.