Daily Heroku dyno and add-on inventory digest in Slack

By General Input

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.

Integrations

  • Heroku
  • Slack Bot

Type

Deterministic Code

Categories

  • Engineering
  • Operations

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them