Weekly ServiceTitan accounts receivable aging snapshot
Every Monday morning, every unpaid invoice gets sorted into aging buckets, logged to a spreadsheet, and summarized in Slack so nothing ages past 90 days.
Every Monday at 7am, build my accounts receivable aging snapshot from ServiceTitan so nothing slips past 90 days without me seeing it. Use a cron trigger for the weekly schedule. Keep this strictly deterministic with no judgement calls: it is date math and formatting over structured invoice data.
Start with the ServiceTitan "List Invoices" operation to pull every invoice that still has a remaining balance greater than zero, paging through all results until there are no more. Then use the ServiceTitan "List Customers" operation to resolve the customer for each of those invoices, and attach the customer name to every outstanding invoice record.
For each outstanding invoice, work out its age in days as the difference between the run date and the invoice date, then sort the balance into one of four standard aging buckets: 0 to 30 days, 31 to 60 days, 61 to 90 days, and over 90 days. Base the bucketing on the invoice date.
Append one row per outstanding invoice to my Google Sheet using the "Append Values" operation. Each row should carry the run date, invoice number, invoice date, customer name, remaining balance, age in days, and the aging bucket it landed in. Always append and never overwrite, and stamp every row in the run with the same run date, so the sheet accumulates a week over week trend I can group and chart later rather than replacing last week's numbers.
Finally, post a summary to my accounts receivable channel with the Slack "Send a Message" operation, using the Slack Bot integration so it posts as a bot rather than as me. The message should show the total amount owed in each of the four buckets, the overall total outstanding, and then the five largest overdue balances sorted from largest to smallest, each listing the customer name, invoice number, amount owed, and days outstanding. Format currency amounts consistently and use Slack mrkdwn formatting.
What does this prompt do?
- Pulls every ServiceTitan invoice that still has money owing on it and attaches the right customer name to each one.
- Sorts every balance into standard aging buckets: 0 to 30 days, 31 to 60 days, 61 to 90 days, and over 90 days.
- Adds one row per outstanding invoice to a Google Sheet and stamps it with the run date, so the sheet builds a week over week trend instead of overwriting itself.
- Posts a Slack summary showing the total owed in each bucket plus the five largest overdue balances.
What do I need to use this?
- A ServiceTitan account with access to your invoices and customers.
- A Google account and a spreadsheet where the weekly rows should collect.
- A Slack workspace and the channel where the summary should land.
How can I customize it?
- The day and time it runs. Monday at 7am is the default, but any weekly slot works just as well.
- The aging bucket boundaries, if your team tracks something other than 30, 60, and 90 days.
- Which Slack channel gets the summary, and how many of the largest overdue balances it lists.
FAQs
Will this overwrite my spreadsheet every week?
Does it include invoices that are already paid?
What decides which aging bucket an invoice lands in?
Can I run it more often than weekly?
Do I need to set up the spreadsheet first?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop letting invoices quietly age past 90 days.
Get your full receivables picture sorted, logged, and delivered to your team every Monday morning without anyone building a report by hand.