Daily Heroku dyno and add-on inventory digest in Slack
Every weekday morning, get a Slack rundown of every Heroku app, its running dynos, and add-on plans, so you can see what you're running and paying for at a glance.
Every weekday at 8am, post a Heroku resource inventory digest to Slack so the team can eyeball what we are running and paying for. This is a deterministic workflow: just list, format, and send. No AI reasoning or judgement is required at any step.
Trigger: run on a cron schedule every weekday (Monday through Friday) at 8am. Cron needs no poll support.
Step 1. Call Heroku's List Apps to get every app the connected account can access. If the account has many apps, paginate using Heroku's Range header pattern: when a response comes back partial (HTTP 206) with a Next-Range header, send that exact value as the Range header on the next request and repeat until every app has been collected.
Step 2. For each app, gather its paid resources with two calls. Use Heroku's List App Add-ons to collect the installed add-ons, capturing each add-on's name and its plan name. Use Heroku's List Dynos to collect the running dynos, capturing each dyno's type (for example web or worker), its size (for example Standard-1X, Standard-2X, or Performance-M), and the quantity of dynos of that type and size. Apply the same Range header pagination to these calls if a per-app response is partial.
Step 3. Format the collected data into a per-app inventory grouped by app. For each app, show the app name as a heading, then a dynos section listing type, size, and quantity, and an add-ons section listing add-on name and plan name. Because Slack does not render markdown tables, lay each app's dynos and add-ons inside a preformatted code block (triple backticks) so the columns line up and the sizes and plan names are easy to scan. Keep dyno sizes and add-on plan names as the prominent columns, since those are the paid resources. Note any app with zero dynos or zero add-ons so nothing looks skipped.
Step 4. Post the finished digest to Slack with the Slack Bot Send a Message action, sending it to the ops channel. Use Slack mrkdwn formatting (single asterisks for bold). If the digest is long, split it across multiple messages so nothing is truncated.
Example output
Additional information
What does this prompt do?
- Posts a Slack digest every weekday morning listing every Heroku app the connected account can access.
- Shows each app's running dynos with their sizes and counts, plus every installed add-on and its plan name.
- Groups everything by app so the paid resources are easy to scan in one place.
- Runs automatically on a schedule, with no dashboard hopping and no manual copy-paste.
What do I need to use this?
- A Heroku account with access to the apps you want to track.
- A Slack workspace and a channel where the daily digest should be posted.
How can I customize it?
- Change the timing or days, for example run at 7am or include weekends.
- Pick which Slack channel receives the digest, or send it as a direct message instead.
- Narrow it to specific apps or teams if you only want part of your fleet.
Frequently asked questions
When does the digest arrive?
Does this show how much I'm paying?
Will it cover all of my Heroku apps?
Can I send it somewhere other than one channel?
Does it change anything in Heroku?
Related templates
Stop clicking through Heroku app by app.
Get a daily inventory of every dyno and add-on delivered to Slack, so you always know what you're running and paying for.