How to Automate Invoice and Payment Reminders
How the Workflow Operates
The workflow runs daily on a schedule. Each run, it queries your database for invoices that are past due and have not been paid. For each unpaid invoice, the workflow checks how many days overdue it is and which reminders have already been sent. Based on those values, it sends the appropriate message or escalation.
This is a loop-based workflow: the scheduled trigger runs the query, and a loop block iterates through each unpaid invoice, applying the reminder logic to each one individually. See How to Loop Through Data in a Workflow for details on loop blocks.
Step-by-Step Setup
Each invoice record needs at minimum: customer name, email, phone (if using SMS), invoice amount, due date, payment status, and a field tracking which reminders have been sent. If you are using the platform's database, structure your records with a clear sortkey per invoice. If your invoices live in an external system, use the external API connector to query them.
Set the workflow trigger to run once daily, ideally in the morning when people check their email. The first block queries your database for all invoices where the due date has passed and payment status is "unpaid." Store the results in a variable that the loop block will iterate through.
Add a loop block that processes each unpaid invoice. Inside the loop, add a condition block that checks the number of days past due. Route to different actions based on the tier:
- 3 days past due, no reminder sent: Send a friendly email reminder. "Just a reminder that invoice #123 for $500 was due on March 10. Please let us know if you have any questions."
- 10 days past due, first reminder sent: Send a firmer email and an SMS. "Invoice #123 for $500 is now 10 days past due. Please arrange payment at your earliest convenience."
- 21 days past due, second reminder sent: Send a final notice and alert your accounts receivable team. "This is a final reminder for invoice #123. Please contact us immediately to discuss payment."
- 30+ days past due: Send an internal alert to your team with the customer's full history. At this point, a human needs to decide the next step.
After sending a reminder, update the invoice record to note which reminder tier was sent and when. This prevents the workflow from sending the same reminder again tomorrow. The update block runs inside the loop, so each invoice is tracked individually.
If your payment system sends a webhook when payment is received, create a separate simple workflow that receives the webhook and updates the invoice status to "paid." This prevents the reminder workflow from sending messages to customers who have already paid between the last check and the next run.
Message Tone and Timing
The escalation should feel natural and professional, not aggressive. Most late payments are due to oversight, not refusal. The first reminder should assume the customer simply forgot. The second reminder should be direct but polite. Only the final notice should convey urgency.
Timing matters too. Sending a reminder the day after the due date feels pushy. Waiting 30 days means you have lost a month of cash flow. A common pattern is 3 days, 10 days, 21 days, and 30 days, but adjust based on your industry norms and customer relationships.
Adding AI Personalization
For a more sophisticated approach, add an AI step that drafts the reminder message based on the customer's history. Pass the AI model the customer name, invoice details, days overdue, and any notes about the account. The AI can generate a message that feels personal rather than templated. It can also adjust tone based on whether this customer has a history of prompt payment (gentler reminder) or repeated late payments (more direct language). This AI step costs 2-5 credits per invoice processed.
Never chase a late payment manually again. Automate your invoice reminders today.
Get Started Free