Heroku ChatOps: Slack Interactive Commands, No Teams Equivalent
Heroku ships Heroku ChatOps — a Slack app that lets developers run deploy commands directly from Slack channels. heroku deploy, heroku rollback, heroku releases — all executable from Slack without opening the Heroku Dashboard.
There is no equivalent Teams integration. The Heroku Elements marketplace has no Teams app. Heroku Dashboard has no Teams notification option. Heroku documentation makes no mention of Teams.
Two Different Problems: Command Execution vs. Event Notification
Before bridging the gap, it's worth being precise about what Heroku ChatOps does, what Heroku webhooks do, and what SyncRivo does.
Heroku ChatOps (Slack only): Interactive command execution from chat. A developer types /heroku releases --app myapp in Slack and gets a list of recent releases. This is a two-way interactive loop — the Slack app authenticates to Heroku's API and executes commands on your behalf.
Heroku webhooks: Event notification. When Heroku fires a release webhook — release succeeded, release failed, build failed, dyno crashed — the payload goes to any HTTPS URL you configure. To get it into Teams, that URL has to be a Teams-side flow (Teams Workflows or an incoming webhook) or a small relay you host that formats and posts the message.
SyncRivo: Bridges the human conversation between Slack, Teams, Google Chat, Webex, and Zoom. It is not a webhook target — it has no inbound endpoint for Heroku events, no routing rules, and it does not relay messages posted by bots or apps.
These solve different problems. Developers keep ChatOps in Slack, Teams gets Heroku events through a Teams-side webhook, and SyncRivo keeps the conversation about a release in one place across both platforms.
Heroku Webhook Events
Heroku's webhook system fires on these event types:
api:release— a new release was created (deploy succeeded or release rollback)api:build— a build completed (succeeded or failed)api:dyno— a dyno crashed or restartedapi:formation— dyno formation changed (scale up/down)pipeline:promotion— a pipeline promotion was triggered
The webhook payload includes the app name, release version, release description, release status, build output URL, dyno type, and git commit SHA.
Configuring Heroku → Teams
Step 1: Create a Teams-side webhook target (a Teams Workflows flow or incoming webhook for the Engineering Leads or Engineering Releases channel) and copy its URL.
Step 2: Add the webhook to Heroku via the Dashboard or CLI.
Dashboard: Navigate to your app → Settings → Webhooks → Add Webhook. Enter the Teams-side URL. Select event types: api:release, api:build, api:dyno.
CLI:
heroku webhooks:add \
--app APP_NAME \
--events "api:release,api:build,api:dyno" \
--url https://YOUR-TEAMS-SIDE-ENDPOINT \
--secret YOUR_SIGNING_SECRET
Step 3: In the Teams-side flow, format the payload (app, version, status, commit) into the message and post it. If you want different channels per event type, add a second webhook in Heroku with its own URL or branch inside the flow.
Step 4: Keep Heroku ChatOps and any Slack notifications in place for the developer channels.
Step 5: Trigger a test deploy. Verify the event appears in Slack and in Teams.
Notification Matrix for Mixed Slack/Teams Engineering Orgs
| Event | Context | Slack | Teams |
|---|---|---|---|
| api:release succeeded | Production | #deploys | Engineering Releases |
| api:release failed | Any | #on-call | Engineering Leads |
| api:build failed | Any | #on-call | Engineering Leads |
| api:dyno crashed | Any | #on-call | Engineering Leads |
| api:dyno restarted | Any | #platform | — |
| pipeline:promotion | Any | #deploys | Engineering Releases |
| Review app deploy | Preview | #frontend-devs | — |
Where SyncRivo Fits (and Where It Doesn't)
Bridge the Slack and Teams channel pairs in the table with SyncRivo, and the conversation around a failed release — the developer's "rolling back now" in Slack, the lead's "was this customer-facing?" from Teams, the decision about the postmortem — is visible on both platforms, in both directions, with threads, edits, files, and @mentions kept in sync. The Heroku notifications themselves still arrive through ChatOps or the Teams-side webhook; SyncRivo does not copy them across.
Heroku, Vercel, Netlify: The Same Teams Gap
All three major PaaS/deployment platforms have the same structural gap: native Slack integrations (or Slack apps in Heroku's case), no native Teams integration.
If your organization runs multiple deployment platforms — Heroku for application servers, Vercel for Next.js frontends, Netlify for marketing sites — each can POST to the same Teams-side webhook so all deploy events land in one Teams channel for engineering leadership visibility, while the discussion about them is bridged to the engineers' Slack channel.
For the Heroku webhook setup reference, see the Heroku Deploy Notifications in Slack & Teams integration guide.
Ready to connect your messaging platforms?