Overdue Invoice Reminder Sequence

Never chase a late payment manually again

Automatically detects overdue invoices and sends a 3-tier escalation sequence: a friendly reminder at 7 days, a firm follow-up at 14 days, and an urgent notice at 30 days. Each email is personalized with the client's name, invoice number, and outstanding amount.

At 8:00 AM every day, Nora queries Odoo for unpaid invoices past their due date. It sorts these into 7-day, 14-day, and 30-day buckets. For the first two groups, Nora extracts the client name, invoice number, and outstanding balance, then sends a personalized reminder directly through Gmail. For the 30-day invoices, it drafts an urgent escalation email and leaves it in Gmail for review. It then logs a follow-up note on each processed Odoo invoice.

The finance manager reviews the 30-day drafts in Gmail, deciding whether to send them, edit the text, or call the client directly. They no longer spend mornings running aging reports or copying data into email templates. The operator keeps control over sensitive accounts while the routine notices go out on schedule.

Runs daily at 8:00 am using Odoo and Gmail, run by your Finance Manager.

How it works

  1. Scan Odoo for overdue invoices — At 8:00 AM, Nora queries Odoo via XML-RPC for invoices with an unpaid balance and a due date in the past. It retrieves the invoice number, amount, client contact details, and the exact number of days overdue.
  2. Categorize by aging buckets — Nora filters the retrieved records into three specific groups: exactly 7 days, 14 days, and 30 days overdue. Invoices falling outside these exact thresholds are ignored to prevent spamming clients on the wrong days.
  3. Draft personalized email text — Using the client data from Odoo, Nora writes the email body. The 7-day text assumes an oversight, the 14-day text asks for a payment date, and the 30-day text sets a firm deadline. All include the specific balance and invoice number.
  4. Send early reminders automatically — For the 7-day and 14-day buckets, Nora calls the Gmail API to send the drafted emails directly to the client. The emails originate from the connected Gmail account, keeping the thread in the sender's sent folder.
  5. Stage late escalations for review — For the 30-day bucket, Nora does not send the email. Instead, it uses the Gmail API to create a draft message. The finance manager can read, edit, or delete these drafts before they reach the client.
  6. Log activity in Odoo — After processing the emails, Nora updates the corresponding invoice records in Odoo. It adds an internal note stating which tier of reminder was generated and on what date, keeping the system of record current.

What this replaces

A finance operator manually generates an accounts receivable aging report in Odoo every morning. They filter the list for specific overdue thresholds, open their email client, paste the client details and balance into a template, and send the reminder. Finally, they return to Odoo to log that the email was sent.

Rough estimate rather than a measured figure: about 30 minutes a day, assuming 20 overdue invoices requiring 90 seconds each to verify, draft, and log.

What it needs to run

Accounts and plans

Access it asks for

What Nora reads

What Nora writes

When it goes wrong

Who this is for

Worth it if

Not worth it if

A worked example

A 20-person commercial cleaning company runs this daily. At 8:00 AM, Nora finds invoice INV-2023-081 for Harbor Office Supplies is exactly 14 days past its net-30 due date with a $1,200 balance.

Subject: Follow-up: Invoice INV-2023-081 is overdue

Hi Sarah,

I am writing to follow up on invoice INV-2023-081 for $1,200.00, which was due on October 15th. We previously sent a reminder last week.

Could you please confirm receipt of this email and let us know when we can expect payment? I have attached a link to the invoice for your convenience.

Thank you,
Accounts Receivable

[Odoo internal note added: 14-day reminder sent via Gmail on Oct 29]

Frequently asked questions

Can I change the days the reminders go out?

Yes. You tell Nora in your chat channel what thresholds you want. If you prefer to send reminders at 5, 10, and 20 days instead of 7, 14, and 30, you just state that in plain language, and Nora updates the schedule for the next run.

What happens if a client pays the invoice at 7:30 AM?

Nora pulls the live data from Odoo exactly at 8:00 AM. If the payment was registered in the Odoo system before that time, the invoice balance reads as zero, and Nora skips it entirely. It only acts on invoices marked unpaid at the exact moment it runs.

Does Nora read all my previous emails with the client?

No. For this specific sequence, Nora only uses the Gmail API to send and draft new messages. It does not search your inbox history or read prior correspondence to determine if a client has replied, relying solely on the Odoo invoice status to make its decisions.

How do I stop a reminder for a specific client who asked for an extension?

You can tell Nora in chat to exclude a specific company or invoice number from the sequence. Alternatively, if you change the due date in Odoo to reflect the agreed extension, Nora respects the new date and waits until that specific threshold is crossed.

Connects to

Related automations

Start a 2-week free trial · Browse all automations