Skip to main content
All Use Cases
Finance

Invoice Chaser

Unpaid Stripe invoices get polite, aging-appropriate reminders — 3/7/14/30-day tone ladder, per-customer caps, quiet hours, and nothing sends without you.

Best forEcommerceAgencyB2BSaaSServices
Agents9 required
Duration3-5 minutes to stage; drafts await approval

This recipe chases receivables without the awkward surprises: it pulls Stripe invoices in unpaid/overdue state, re-verifies each against fresh Stripe reads so money paid between runs is never chased, and buckets the rest by days overdue. Each invoice resolves to a billing contact and account owner, then passes a hard cap check — at most three reminders per invoice with a five-day minimum gap by default, quiet hours respected from the customer's timezone (holding rather than risking an off-hours send), collections holds honored, all fail-closed with the rule shown. Drafts escalate by bucket: a gentle 3-day heads-up, a friendly 7-day nudge with the pay link, a firmer 14-day note with the consequence line when applicable, and a direct 30-day final notice that never turns threatening. Everything stages as Gmail drafts behind one approval gate, payment status and caps are rechecked at dispatch, and every send returns a receipt. Reruns update existing drafts and drop paid invoices with a receipt line.

How it runs

Multi-agent orchestration — here's the flow, step by step.

01

Pull Stripe invoices in unpaid/overdue state with amount, due date, days overdue, attempt count, and customer. Reads the read-only Stripe ledger via stripe_list_charges and stripe_get_customer only — payment mutation tools are never in scope for this phase.

payment scanner
01

Re-verify each invoice against fresh Stripe reads and exclude anything settled since the last run with a receipt line — never chase paid money.

reconciliation checker
02

Resolve billing contact, account owner, communication preferences, and collections-hold flags; hold unverifiable customers with a named reason.

crm scanner
02

Compute per-invoice cap state (3 reminders max, 5-day gap default), quiet-hours windows from customer timezones, and next-eligible send times — fail-closed.

payment followup orchestrator
03

Draft one escalating reminder per in-scope invoice: bucket-appropriate tone, exact invoice number, amount, due date, and pay link, written for the owner's signature.

email writer
04

Assemble the send plan — drafts, buckets, cap states, send windows — and gate the staged package for approval.

workflow orchestrator
04

Stage all drafts as Gmail drafts behind one approval gate; recheck payment status and caps at approval and dispatch, holding failures with named reasons.

distributor
04

Arm the next aging-bucket check for every sent reminder so escalation continues on schedule.

follow up reminder agent
04

Assemble the aging summary, drafts, held list with exclusion rules, and dispatch receipts.

report formatter

Required Agents

9
  • payment-scanner
  • reconciliation-checker
  • crm-scanner
  • email-writer
  • payment-followup-orchestrator
  • follow-up-reminder-agent
  • workflow-orchestrator
  • distributor
  • report-formatter

Connections

Required

gmailhubspotstripe

Optional

gmailhubspot

What it does

  • Unpaid/overdue Stripe invoices bucketed by aging: 3/7/14/30 days
  • Paid-between-checks re-verification before drafting AND before dispatch
  • Tone ladder per bucket — gentle nudge to direct final notice, never threatening
  • Every draft names the invoice number, exact amount, due date, and pay link
  • Per-customer caps (3 per invoice, 5-day gap default) computed fail-closed
  • Quiet hours from the customer's timezone — holds rather than risks off-hours sends
  • Staged Gmail drafts behind one approval gate with dispatch receipts
  • Idempotent per invoice + bucket: reruns update drafts, paid invoices drop out

Example prompt

Chase my overdue Stripe invoices — draft polite reminders for each, firmer the longer they've been unpaid, but skip anyone we've already reminded recently.

Ready to deploy Invoice Chaser?

Start free. One click, full agent orchestration.

Get Started Free →