Back to Alchemy
Alchemy RecipeBeginnerautomation

Freelancer invoice and payment chasing automation with reminder escalation

You've just finished a project. The client loved it. You've sent the invoice. Two weeks pass. No payment. Three weeks. Still nothing. You send a polite follow-up email. Another week goes by. Now you're chasing them, writing increasingly assertive messages, and meanwhile you've lost billable hours that could have gone to actual work. The problem isn't that invoices get lost or forgotten; it's that chasing them manually consumes time that should be spent earning money. Most freelancers adopt a haphazard approach: a mental note, maybe a calendar event, occasionally a spreadsheet updated sporadically. The result is inconsistent follow-up, delayed payments, and friction with clients who genuinely want to pay but need a reminder. What if your invoices chased themselves, escalating from friendly reminders to firmer requests without you writing a single follow-up message? This workflow automates invoice tracking and payment chasing with escalating reminder emails. The system monitors invoice status, generates contextually appropriate follow-up messages based on how overdue an invoice is, and sends them at the right intervals. Once set up, it requires almost no ongoing attention until payment arrives.

The Automated Workflow

We'll build this using Zapier as the orchestration tool, combined with a productivity app (such as Notion or Airtable), ChatGPT Writer, and HyperWrite. The flow works like this: a new invoice record triggers the workflow, which calculates days overdue, generates an appropriate message through an AI layer, and sends it via email at escalating intervals. For more on this, see Wispr Flow AI vs ChatGPT Writer vs HyperWrite: AI Writing....

Step 1: Create your invoice database

Start in Notion, Airtable, or similar. Your database needs these fields: - Invoice number

  • Client name
  • Invoice date
  • Due date
  • Amount
  • Payment received (yes/no)
  • Last reminder sent (date)
  • Reminder count (number) Each new invoice record becomes the trigger point. When you add an invoice, the automation begins.

Step 2: Set up the Zapier trigger

Use the productivity app trigger: "New database item created" or "Record created". This detects when you've added a fresh invoice to your database.

Trigger: Notion / Airtable
Event: New item in database [Your Invoices Table]
Filter: Payment received = false

Add a filter so the workflow only runs on unpaid invoices. This saves API calls.

Step 3: Calculate days overdue

Before deciding what message to send, you need to know how many days past due the invoice is. Zapier can do this with a basic calculation step.

Formatter: Date
Operation: Date difference
From: Today
To: Invoice Due Date
Result: Days overdue

Store this in a variable; you'll use it to branch the logic next.

Step 4: Branch based on overdue status

Your message changes depending on how late the payment is. Use Zapier's Path tool or conditional branching: - 1-7 days overdue: Friendly reminder ("just following up on...")

  • 8-14 days overdue: Slightly firmer tone ("we notice...")
  • 15+ days overdue: Formal payment request ("payment is now overdue...") Create three separate paths in Zapier, each with its own condition.

Step 5: Generate contextual emails with AI

This is where ChatGPT Writer and HyperWrite come in. Rather than hardcoding email templates, use an AI text generation step to create contextually appropriate messages. Connect ChatGPT Writer via Zapier's native integration. For the first path (1-7 days), your prompt might look like this:

Prompt to ChatGPT Writer:
You are a professional freelancer. Write a friendly payment reminder email (3-4 sentences) for a client named [Client Name]. The invoice number is [Invoice Number], dated [Invoice Date], for amount [Amount]. Keep the tone warm and assume the payment was simply overlooked.
Do not include a signature.

For the 15+ days path, adjust the prompt:

Prompt to ChatGPT Writer:
You are a professional freelancer. Write a formal payment demand email (4-5 sentences) for a client named [Client Name]. The invoice number is [Invoice Number], dated [Invoice Date], for amount [Amount]. Payment is now [Days Overdue] days overdue. Mention that continued non-payment may affect future project engagement. Keep the tone professional but firm. Do not include a signature.

HyperWrite can refine these outputs if you want to add a second pass for tone or grammar adjustments, though ChatGPT Writer output is usually production-ready.

Step 6: Check reminder frequency

Before sending, verify that you haven't already sent a reminder within the last 3 days. This prevents spamming your client.

Condition: Last reminder sent (date)
If: Days since last reminder > 3
Then: Continue to email step
Else: Update Zapier notification only (optional)

This avoids multiple emails in a short window.

Step 7: Send the email

Use Gmail or your email provider's Zapier integration. Map the AI-generated message into the email body.

To: [Client Email]
Subject: Payment Reminder - Invoice [Invoice Number]
Body: [ChatGPT Writer output]

Step 8: Update your database

After sending, record that the reminder was sent. Update the "Last reminder sent" field to today's date and increment "Reminder count" by 1.

Update: Notion / Airtable record
Set: Last reminder sent = NOW()
Set: Reminder count = Reminder count + 1

Step 9: Schedule rechecks

Set up a second automation that runs daily or every 3 days. It checks for overdue unpaid invoices that haven't been reminded recently, and triggers the flow again. This creates the escalation loop.

Trigger: Schedule (every 3 days)
Action: Find all records where Payment received = false AND Days overdue > 1
For each record: Run steps 3-8 above

This ensures that invoices don't slip through the cracks and that escalation happens naturally over time.

Optional: Integrate a payment status webhook

If your invoicing platform (like Stripe, FreshBooks, or Wave) supports webhooks, set up a listener that marks an invoice as paid automatically when payment is received. This stops reminder emails immediately.

Webhook endpoint: your-zapier-webhook-url
Event: payment.completed
Action: Update corresponding invoice record
Set: Payment received = true

This eliminates manual status updates.

The Manual Alternative

If you prefer finer control over each message or want to review messages before they send, skip the automation. Instead, create a simple Zapier workflow that simply notifies you when an invoice becomes overdue. Use your productivity app's reminder feature to alert you at specific intervals, then manually compose and send follow-up emails using HyperWrite or ChatGPT Writer for drafting. You retain full control but lose the "set it and forget it" benefit. This suits freelancers who work with only a few clients or prefer a personal touch in every communication.

Pro Tips

Watch your email sending rate.

Gmail and other providers rate-limit outbound emails.

If you have dozens of overdue invoices and trigger them all at once, some emails may be delayed or flagged as spam. Stagger the scheduled check using Zapier's delay step; set it to send reminders 2-3 minutes apart.

Add a retry logic for failed sends.

If an email bounces (invalid address, server error), Zapier should catch it and alert you. Set up an error notification in your productivity app so you can correct the client's email address and retry manually.

Cost optimisation: use GPT-4o mini instead of GPT-4.1.

ChatGPT Writer can use cheaper models for email generation. GPT-4o mini is nearly as capable as GPT-4.1 for straightforward email composition and costs roughly 90% less per token. Reserve GPT-4.1 for more complex prompts if needed.

Track which clients need follow-up most frequently.

After a few months, analyse your reminder logs. Some clients might consistently pay late. Use this data to adjust due dates or payment terms going forward, rather than just automating reminders.

Set a hard stop rule.

Decide in advance what happens after X reminders with no payment. Some freelancers pause future work for that client; others refer the account to a collections service. Automate this too: if Reminder count > 4 and Payment received = false, create a task in your project management tool to review the account.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
ZapierStarter or Professional$29–$99Professional tier needed for multi-step zaps and advanced filtering; Starter works for very simple flows
Notion or AirtableFree or Pro$0–$10Free tier sufficient for under 1,000 rows; Pro adds more automation features
ChatGPT WriterIncluded with ChatGPT Plus or API pay-as-you-go$20 (Plus) or ~$0.50–$2 per month (API)API via Zapier is cheapest if email volume is low; Plus is better if you use ChatGPT elsewhere
HyperWriteFree or HyperWrite Pro$0–$20Optional for refining drafts; free tier often sufficient
Gmail or email providerIncluded$0Most providers included with your existing account