# Chase overdue ERPNext invoices with escalating reminders

> Every weekday morning, review your unpaid ERPNext invoices, email each customer a reminder that gets firmer as the debt ages, and brief finance in Slack.

- Workflow type: agent
- Services: ERPNext, Gmail, Slack
- Categories: Finance
- Published: 2026-08-04

## What it does

- Checks your ERPNext invoices every weekday morning and finds every one that is past its due date and still unpaid, ignoring balances too small to be worth chasing.
- Sorts each overdue account by how late it is, then writes a payment reminder in a tone that matches: gentle and factual in the first two weeks, noticeably firmer once an account passes 60 days.
- Emails each customer their own reminder from Gmail, naming the exact invoice numbers, amounts and due dates so there is nothing for them to look up.
- Posts one Slack summary to your finance channel covering who was chased, the total value in play, and which accounts now need a phone call instead of another email.

## What you'll need

- An ERPNext account with permission to view sales invoices
- A Gmail account to send the reminders from
- A Slack workspace and the finance channel where you want the summary posted
- Customer contact email addresses filled in on your invoices, so reminders reach a real person

## Prompt

Every weekday at 8am, review my accounts receivable in ERPNext and run collections outreach for me.

Start with ERPNext List Documents on the Sales Invoice DocType to pull every overdue invoice. Filter to submitted invoices only (docstatus = 1), outstanding_amount greater than 0, and due_date earlier than today. Request the name, customer, customer_name, grand_total, outstanding_amount, due_date, currency and contact_email fields. Page through the full result set instead of stopping at the default page length, so a long list of overdue invoices is never silently truncated.

Group the invoices by customer and total their outstanding amounts. Skip any customer whose combined outstanding sits below a minimum balance I can configure at the top of the workflow, defaulting to 100 in the invoice currency, so we never chase trivial balances. Skip any customer that has no contact email on their invoices, and list them separately in the Slack summary so someone can fill the address in rather than guessing at one. To avoid emailing the same customer every single morning, only contact a customer when the age of their oldest overdue invoice is a multiple of 7 days or when that account has just crossed into a new age bucket, and let me adjust that cadence.

Bucket each overdue invoice by how many days past due it is: 1 to 14 days, 15 to 30 days, 31 to 60 days, and over 60 days. For each remaining customer, write one payment reminder email whose tone escalates with the oldest bucket they fall into. In the first two weeks stay warm, polite and factual, assume the invoice was simply missed, and make it easy to pay. Firm up gradually through the middle buckets. Past 60 days be direct and unambiguous that the account is seriously overdue and about what happens next, while staying professional and never threatening. Every email must name the specific invoice numbers, their individual amounts and due dates, and state the customer's total outstanding balance.

Send each reminder with Gmail Send a Message to that customer's contact email, using a clear subject line that includes the invoice numbers or the total amount due.

Finish by posting one summary with Slack Send a Message to my finance channel. The summary should list every customer contacted along with the amount chased, the total value chased across the whole run, the accounts that have crossed 60 days and need a human phone call rather than another email, and any customers skipped either for a missing contact email or for falling under the minimum balance.

## How to customize

- Set the minimum balance you care about, so small leftover amounts never trigger an email.
- Change the timing: run it every weekday, or only on Mondays if weekly chasing suits your customers better.
- Adjust the age brackets and how sharp the tone gets at each one, or add your payment link and bank details to every reminder.

## FAQ

### Will it email customers who have already paid?

No. It only looks at invoices that still show an outstanding balance at the moment it runs, so anything settled overnight drops out of the list automatically.

### Does each customer get one email per overdue invoice?

No. Invoices are grouped by customer, so someone with four late invoices gets a single email listing all four with their numbers, amounts and due dates, plus their total balance.

### Can I stop it chasing very small amounts?

Yes. You set a minimum balance, and any customer whose total outstanding falls under it is skipped entirely. It is one of the first things you can change.

### ERPNext already has a payment reminder feature. How is this different?

The built-in reminders are fixed templates on a fixed schedule. This writes a fresh email per customer whose tone is matched to how late they actually are, and it adds the part ERPNext does not do: a Slack escalation list telling your team which accounts have gone far enough that someone should pick up the phone.

### How firm does the tone actually get?

Early reminders assume the invoice was simply missed and stay warm and factual. Past 60 days the email is direct about the account being seriously overdue and about next steps. It stays professional throughout and is never threatening.

Use this prompt in General Input: https://www.generalinput.com/prompts/chase-overdue-erpnext-invoices-with-escalating-reminders