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.

Deterministic Code
HerokuSlack BotEngineeringOperationsDaily Digests
PromptCreate

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.

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.

FAQs

When does the digest arrive?
By default it posts every weekday at 8am in your workspace's time zone. You can change the time and the days when you set it up.
Does this show how much I'm paying?
It lists the paid resources behind your bill: each app's dyno sizes and counts and each add-on's plan name. That makes your spend easy to eyeball at a glance, though it does not pull exact dollar amounts.
Will it cover all of my Heroku apps?
Yes. It includes every app the connected Heroku account can access, and it pages through the full list so large fleets are covered too.
Can I send it somewhere other than one channel?
Yes. You can point it at any channel your Slack account can post to, or send it as a direct message.
Does it change anything in Heroku?
No. It only reads your apps, dynos, and add-ons to build the report. It never restarts, scales, or modifies anything.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

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.