# Chase overdue Stripe invoices from your Front billing inbox

> Every weekday morning, we email customers with overdue Stripe invoices from your shared Front inbox, so when someone replies it reaches a real person on your team.

- Workflow type: agent
- Services: Front, Stripe, Slack Bot
- Categories: Finance, Operations
- Published: 2026-08-14

## What it does

- Every weekday morning, finds the Stripe invoices that are past their due date and works out how many days late each one is.
- Looks up the billing contact on each account so the reminder goes to a real person by name, not to a generic billing alias.
- Checks your Front inbox first and skips anyone your team has already spoken to in the last seven days, so no customer gets chased twice.
- Emails a short, polite reminder from your shared billing inbox naming the amount, the due date, and how late it is, with the wording firming up gently at the three, seven, and fourteen day marks.
- Tags each thread as an overdue invoice and posts one Slack summary to your finance channel with the total value at risk and a callout for any invoice over $2,000.

## What you'll need

- A Stripe account you can create an API key for, holding the invoices you want chased.
- A Front account with a shared inbox, and admin access so you can create an API token.
- A Front channel you are happy to send billing emails from, ideally the address your customers already reply to.
- A Slack workspace with a finance channel where the daily summary will be posted.
- A sense of how late is too late in your business, so you can set the reminder stages and the escalation amount.

## Prompt

Every weekday at 9am, chase my overdue Stripe invoices by emailing each customer from our shared Front billing inbox, instead of relying on Stripe's automatic no-reply dunning emails. The whole point is that when a customer replies, the reply lands in Front where a teammate can pick up the conversation and save the account. Trigger: cron, every weekday at 9am in my local timezone.

Step 1. Pull the overdue invoices from Stripe. Call Stripe List Invoices with status set to open, and paginate through every page. Stripe list responses use a data array with has_more, and the default limit is only 10, so set limit to 100 and keep paging with starting_after until has_more is false. Note that Stripe has no past due status: an invoice is overdue when its status is open and its due_date is earlier than today. due_date is a Unix epoch timestamp, so compute days overdue from it. Ignore invoices that have no due_date set, and ignore anything not yet past its due date.

Step 2. Decide who to chase. Skip anything less than 3 days overdue so nobody gets chased the moment an invoice slips. For everyone else, call Stripe Retrieve Customer with the invoice's customer id to get the billing contact's name and email address. If the customer record has no email address, skip that invoice and include it in the final Slack summary as needing a billing contact on file. If one customer has several overdue invoices, treat them as a single person to contact: send one email listing every overdue invoice, never one email per invoice.

Step 3. Check we are not double chasing. Before writing to anyone, call Front Search Conversations to look for an existing conversation with that contact's email address in the last 7 days. Front's search uses its own query filter syntax and supports filtering by contact and by date range. If there is any recent or open thread with that contact, skip them entirely for this run, including both the email and the tag. This 7 day quiet window is what keeps the workflow from feeling like spam, so make it an obvious value to change at the top of the workflow.

Step 4. Send the reminder. Use Front Send Message (New Conversation) from our billing channel. Keep it short and politely worded, and always name the invoice amount, the original due date, and how many days overdue it is. Stripe returns amounts in the smallest currency unit, so an amount_due of 250000 is $2,500.00: divide by 100 and format it with the invoice currency before putting any number in front of a customer. Escalate the tone gently by age. At 3 to 6 days overdue, a light friendly heads up that assumes it was simply missed. At 7 to 13 days, a clearer reminder that asks for a payment date. At 14 days or more, a direct but still courteous note asking them to confirm when payment will be made and offering to sort out any problem with the invoice. Never threaten service suspension or late fees unless I add that language myself.

Step 5. Tag the conversation. Apply an overdue-invoice tag using Front Add Tags to Conversation so finance can filter the queue. Important: Front's send endpoint returns 202 Accepted with only a partial message envelope and a temporary message id, because the conversation is created asynchronously. Do not assume the send response contains a usable conversation id. Resolve the real conversation id before tagging, for example by searching Front for the conversation with that contact immediately after sending. Look up the tag id for overdue-invoice once at the start of the run and reuse it for every conversation.

Step 6. Post one Slack summary. Use Slack Bot Send a Message to post a single message to our finance channel. List every account contacted with the amount and how many days overdue it is, give the total value at risk across everyone chased, and separately call out any single invoice above $2,000 so a person can pick up the phone instead of waiting on email. Also list anyone who was skipped and why, either recently contacted or no billing contact on file. The $2,000 threshold should be easy to change.

Notes for the workflow author:

- Use the Slack Bot integration rather than Slack user auth, since the finance summary is automated output and not a person-authored message.

- Respect Front's rate limits. They are per company and start at 50 requests per minute on the Starter plan, and Search Conversations counts 2.5 times against the quota, so pace the search calls and honor the retry-after header on a 429.

- Be defensive. If Stripe returns no overdue invoices, still post a short Slack message saying every account is current. If a Front send fails for one customer, carry on with the rest and report the failure in the Slack summary rather than aborting the run.

## How to customize

- Change the schedule. It runs every weekday at 9am by default, but you can move it to a different time of day or run it weekly instead.
- Adjust the reminder ladder. The default firms up the tone at three, seven, and fourteen days overdue, but you can match it to your own collections policy.
- Change the seven day quiet window that stops a customer being contacted twice, or widen it if your team already emails those accounts often.
- Raise or lower the $2,000 threshold that triggers a phone call callout, or point the daily summary at a different Slack channel.

## FAQ

### Why not just use Stripe's built in payment reminders?

Stripe's automatic reminders come from a no-reply address, so when a customer writes back with a question or a promise to pay, nobody sees it. Sending the same nudge from your Front inbox means the reply lands in the shared inbox where a teammate can answer and save the account.

### Will a customer ever get chased twice?

No. Before writing to anyone, the workflow checks Front for a conversation with that contact in the last seven days and skips them if it finds one. It also groups several overdue invoices for the same customer into a single email rather than sending one per invoice.

### Does it send automatically, or can I approve the emails first?

By default it sends automatically each weekday morning. Many teams start by pointing it at only their largest invoices or only the first reminder stage while they get comfortable with the wording, then widen it from there.

### What happens to customers with no email address on file?

They are skipped rather than guessed at, and they appear in the Slack summary as needing a billing contact, so someone can add one.

### Do the reminders read like an obvious template?

Each reminder is written fresh for that account and names the invoice amount, the original due date, and how many days late it is. The tone stays light for an invoice a few days overdue and becomes more direct at two weeks, without ever threatening late fees unless you ask for that.

Use this prompt in General Input: https://www.generalinput.com/prompts/chase-overdue-stripe-invoices-from-your-front-billing-inbox