How to Automate Your Invoice Follow-Ups (Without Being Annoying)

We all know the feeling: you’ve sent an invoice, waited two weeks, and now you’re wondering if you should nudge the client without sounding pushy. It’s awkward, time-consuming, and honestly, it’s the worst part of running your own business.

But it doesn’t have to be. You can automate the entire follow-up process with a simple Python script. No, it won’t write heartfelt emails for you, but it will send them on schedule, with the right tone, and escalate automatically if the payment is really late.

Here’s how I built mine. It’s nothing fancy—just a script that checks my accounting app’s API (I use FreshBooks, but you can adapt it) and sends an email via Gmail’s SMTP server. The logic is simple: if an invoice is 7 days overdue, send a friendly reminder; if it’s 14 days, send a firmer one; at 21 days, add a link to pay immediately and mention potential late fees.

The key is to write the email templates in advance, so you’re not typing on the fly. For the first nudge, something like:

“Hi [Name], just checking in on invoice #123 for $500. If you’ve already paid, ignore this—thanks! If not, here’s the payment link again: [link].”

Short, polite, and to the point. The second one can be a bit more direct, but still friendly. The third really needs to convey urgency, but without being rude.

Once you’ve got the script running, you’ll never have to manually chase another invoice. You’ll also save the mental energy that goes into feeling awkward about it. Instead of dreading the task, you know it’s handled.

I’ve packaged this exact script for Kintly, with the email templates ready to customize and clear setup instructions. If you’re spending more than 15 minutes a week on follow-ups, it’s worth grabbing.

But even if you don’t use my script, take the principle with you: automate the repetitive parts of your business, especially the ones you dread. You’ll be surprised at how much time you get back.