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.

Agentic Task
FrontStripeSlack BotFinanceOperationsEmail AutomationNotifications & Alerts
PromptCreate

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.

What does this prompt do?

  • 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 do I need to use this?

  • 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.

How can I customize it?

  • 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.

FAQs

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.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Clear your Guru verification backlog in one weekly app

A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.

Guru
Slack Bot
App

Stop letting a no-reply robot chase your customers.

Connect Stripe, Front, and Slack once, and every overdue invoice gets a real email from your billing inbox that a customer can actually reply to.