Working examplesInvoice reminders
Invoice reminders for a cleaning company
Cannon River Cleaning is made up for this example. The code is real and open: read it or run it.
The problem
Invoices go out, a few go quiet, and chasing them is awkward and easy to forget. Money sits unpaid for weeks.
What it does
- Reads the open-invoices export from QuickBooks, Wave, Square or a spreadsheet
- A friendly reminder 3, 7 and 14 days after the due date, on weekdays in business hours
- Partial payments shown plainly: “$100.00 of $180.00 left”
- At 30 days late, a note to the owner to step in, instead of a fourth email; a list of what’s owed every Monday
The messy parts it handles
- Dates written as 10/02/2026, Oct 25 2026 or 2026-10-20
- Money written as “$1,240.00”; names typed “Chen, Wei”
- An impossible due date (13/45/2026) or a missing email: passed to the owner, never guessed
- The week the clocks change: reminders still go out at 9 a.m.
The week, line by line
Cannon River Cleaning
- Mon 10:00ownerInvoice 1046 has no email: passed to you, not guessed
- Mon 10:00ownerInvoice 1047’s due date reads 13/45/2026: passed to you
- Mon 10:00customerFriendly reminder: invoice 1041, $1,240.00
- Mon 10:00customerFriendly reminder: invoice 1042, $100.00 of $180.00 left
- Mon 10:00ownerInvoice 1048 is 36 days late: time for a personal call
- Mon 10:00ownerThis week: 4 late invoices, $2,410.50 owed
- Tue 10:00customerSecond reminder: invoice 1042
- Sat 10:00quietWeekend: no customer emails
- Mon 09:00customerSecond reminder: invoice 1043 (9 a.m. after the clock change)
npm run demo), word for word.- 6usable invoices
- 2bad rows passed to the owner
- 6reminders
- 2late notes to the owner
- 2Monday lists
- 0weekend emails
Speed: A 5,000-row invoice export read and checked in 0.18 seconds on a desktop PC (npm run bench). A small business’s whole year fits in under a second.
For your business
Your invoicing tool’s own reminders are switched on first where they exist; this runs where they can’t, from the export you already have.
More examples
- Booking reminders for a dog groomerClients call to book while the groomer’s hands are full, so calls go unanswered, and the ones who do book sometimes forget and don’t show.
- Lead follow-up for a plumberA plumber on a job can’t answer email or the website form. Inquiries sit for hours, and the customer books the next plumber on Google.
- Review requests for a salonHappy clients mean to leave a review and forget, and asking in person feels awkward.