How to Send Payment Reminders per Invoice in Odoo · Calibre Consulting

Send payment reminders on each invoice's own due date.

Odoo follow-ups remind the customer, not the invoice. Here is how they schedule reminders, and how to run a separate schedule for every invoice.

This guide explains how Odoo decides when to send a payment reminder, and how to give every invoice its own schedule, for example 3 days before the due date and 3, 7 and 15 days after it. The short answer: standard follow-ups work per customer. Odoo tracks each invoice's progress, but the reminder date and the email belong to the customer, so one email covers all of their open invoices. For independent schedules, create one automation rule per reminder step on the invoice due date, with no custom code.

It is written for accountants, credit controllers and owners, and was verified in the Odoo 19 source code. Odoo 18 was not checked, so compare labels with your screens if you use it.

Before you start

How standard follow-ups choose what to send

Levels are set in the Accounting app under Configuration > Invoicing > Follow-up Levels. Each has Due Days, which can be negative to remind before the due date, and an Automatic option that lets Odoo send it unattended. A daily job then works like this:

A worked example: levels at -3, +3, +7 and +15 days, all Automatic, and one customer with invoices due on 5, 10 and 15 September. Per-invoice schedules would remind on 7, 13, 17 and 25 September for the second invoice and 12, 18, 22 and 30 September for the third. Assuming no payments arrive, standard follow-ups send:

Four emails, all timed by the first invoice. The other two never get reminders on their own dates.

Create a reminder email template

  1. With developer mode on, open the Settings app and go to Technical > Email > Email Templates. Click New.
  2. Enter a Template Name, such as Invoice due in 3 days, and set Applies to to Journal Entry, which is how Odoo stores invoices.
  3. Write the Subject and, on the Body tab, the message. Typing /field inserts invoice details such as the due date.
  4. On the Settings tab, leave Default Recipients ticked so the email goes to the customer on the invoice. Save, and repeat for each wording you need.

Set up one rule per reminder step

  1. Open the Settings app and go to Technical > Automation > Automation Rules. Click New and name the rule, such as Reminder 3 days before due.
  2. Set Model to Journal Entry. The Trigger field appears.
  3. Set Trigger to Based on date field, then choose Due Date in the date field selector next to it. The Delay fields appear.
  4. Set Delay to 3, the unit to Days and the mode to Before. Odoo only accepts a positive delay, so reminders ahead of the due date use Before.
  5. In Apply on, add three conditions: Type is Customer Invoice, Status is Posted, and Payment Status is Not Paid or Partially Paid.
  6. On the Actions To Do tab, add an action with Type set to Send Email and choose your template in Email Template.
  7. Change Send Email As to Email. It starts on Message, which posts the text on the invoice and only notifies that invoice's followers.
  8. Save. Create three more rules the same way, with Delay 3, 7 and 15 and the mode After.

Each unpaid invoice is now judged on its own due date, so a customer with three overdue invoices receives three reminders. If follow-ups also run, the customer gets both; set Reminders to Manual in the Invoice Follow-ups section of the customer's Accounting tab, or untick Automatic on your levels.

Check that it worked

  1. Before creating the first rule, create and post an invoice for a test customer whose email address is your own, with a Due Date three days from today.
  2. When you create the rule, add a fourth condition to Apply on: Partner is that test customer.
  3. In the Settings app, go to Technical > Automation > Scheduled Actions, open Automation Rules: check and execute and click Run Manually.
  4. Go to Technical > Email > Emails. A new email to your address with the template's subject should be listed. It is delivered when the outgoing mail queue next runs.
  5. Remove the test condition and save.

Pitfalls to plan for

What changes in Odoo 20

In Odoo 20, follow-ups are switched on with the Automatic Invoice Reminders setting in the Accounting settings. They remain customer-level: Odoo picks each customer's open invoice with the earliest due date and uses its progress to decide the next reminder. The automation rule labels above are unchanged.

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

Are Odoo follow-up levels set per customer or per invoice?

Per customer. Odoo records a level on each open invoice, but the customer gets one level, one next reminder date and one email listing all open items. The invoice furthest along the ladder sets the customer's level.

Can an Odoo follow-up level send a reminder before the due date?

Yes. The Due Days on a follow-up level can be negative, for example -3 to remind three days before the due date. The reminder still goes to the customer and covers all of their open invoices.

How do I send a reminder for each invoice on its own due date?

Create an automation rule on Journal Entry triggered by the Due Date field, with a delay in days set to Before or After, filtered to posted, unpaid customer invoices, and a Send Email action. Create one rule for each reminder step.

Why did my automation rule post a message instead of emailing the customer?

The Send Email action starts with Send Email As set to Message, which posts the text on the record and notifies only its followers. Change it to Email to send the template to its recipients.

Do automation rules need Odoo Enterprise?

No. Automation Rules is a Community app, so it works in both editions. Follow-ups, the built-in reminder ladder, are an Enterprise feature.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →