The client operated a service business with a recurring billing cycle. Overdue invoices were a consistent problem, not because clients refused to pay, but because the follow-up process was entirely manual and therefore inconsistent. Someone on the finance team had to pull up Stripe, identify overdue invoices, decide which ones warranted a message, write that message, send it, and then remember to check back if there was no response.
The gaps in that process were expensive. Some clients received follow-ups too late. Others received generic messages that felt impersonal and were easy to ignore. High-risk accounts, those with a pattern of late payment or unusually large outstanding balances, were not being treated differently from clients who were simply a few days behind. There was no risk stratification and no visibility at the leadership level without someone manually compiling a report.
The first design decision was what "risk" actually meant for this client. Overdue-by-days is a simple metric but it misses context. A client who has paid on time for two years and is three days late is a different situation from a new client who has missed two consecutive invoices. I worked with the finance lead to define three risk tiers: low (minor delay, good history), medium (repeat delay or first miss), and high (significant outstanding balance or pattern of non-payment).
That tiering became the foundation of the prompt design. Each tier had its own email tone and content. Low-risk messages were friendly and brief. Medium-risk messages were firm but professional. High-risk messages escalated to a senior contact name rather than a generic team address. The AI was not just generating emails. It was making relationship-appropriate communication decisions at scale.
I chose Groq for the language model layer because the volume of invoices meant latency mattered. Processing dozens of invoices in sequence with a slower model would have made the daily run uncomfortably slow. Groq's inference speed meant the entire workflow ran in under two minutes regardless of invoice volume.
The most immediate change was that the finance team stopped spending their mornings in Stripe. The daily digest gave them everything they needed in one view. Outstanding balances were visible by risk tier, follow-ups had already gone out, and high-risk accounts had been flagged before the team sat down.
The personalised email tone made a measurable difference to response rates. The client reported that medium and high-risk clients responded more quickly to the AI-generated messages than they had to previous generic follow-ups. The most common feedback from clients who did reply was that the message "felt personal," which was exactly the intended effect.
The Slack alerts for high-risk invoices changed how the finance lead prioritised their day. Rather than discovering a significant outstanding balance at the end of the week, they were notified the morning it crossed into high-risk territory, giving them time to make a personal call before the situation escalated further.
Book a free 30-minute discovery call. I'll map your current workflow and show you exactly what's possible.
Book a call See other case studies