Skip to main content
Back to Insights
DevOpsGuide

Azure DevOps Has Both Slack and Teams Integrations — They Do Not Talk to Each Other

Azure DevOps supports separate Slack and Teams notification apps, but each only routes to its own platform. For engineering organizations where developers use Slack and managers use Teams, here is how to route Azure DevOps events to both simultaneously from a single service hook.

6 min read
Alex Morgan

Alex Morgan is a senior integration engineer at SyncRivo with expertise in DevOps pipelines, CI/CD systems, and cross-platform notification routing for engineering organizations.

Azure DevOps Has Both Slack and Teams Integrations — They Do Not Talk to Each Other

The Azure DevOps Dual-Integration Problem

Azure DevOps is the Microsoft-native DevOps platform — used heavily by organizations on Microsoft 365, .NET shops, and enterprises standardized on the Azure cloud. Unlike most enterprise tools that have only a Slack integration and nothing for Teams, Azure DevOps has the opposite problem: it has both.

The Azure DevOps Slack app routes build completions, pull request notifications, and pipeline events to Slack channels. The Azure DevOps Teams app (built into the Teams app store) routes the same events to Teams channels. Both apps work. Neither one routes to both platforms simultaneously.

For engineering organizations where this platform split exists — developers on Slack, managers and stakeholders on Teams — the result is fragmented visibility. A build failure visible in the #engineering Slack channel is invisible to the engineering manager in Teams. A release deployment visible in the Teams project channel is invisible to the developers in Slack who built it.

Azure DevOps Service Hooks Architecture

Azure DevOps service hooks are the outbound notification mechanism. A service hook fires a webhook payload to a configured URL when a specified event occurs. Available event types include:

Build and Release

  • build.complete — build succeeded, failed, or was cancelled
  • ms.vss-release.deployment-completed-event — release pipeline deployment completed
  • ms.vss-release.deployment-started-event — deployment started (useful for long-running deployments)

Code and Pull Requests

  • git.pullrequest.created — new PR opened for review
  • git.pullrequest.updated — PR updated: new commits pushed, reviewers changed, policies updated
  • git.pullrequest.merged — PR approved and merged (completion event)

Work Items

  • workitem.created — new work item created
  • workitem.updated — work item state change, assignment change, field update

The standard approach: configure one service hook per event type, pointing to the Azure DevOps Slack app webhook URL for Slack routing, and a second service hook per event type pointing to the Teams app webhook URL for Teams routing. Result: 2x service hooks per event type, two configurations to maintain, two places to update when routing rules change.

Replacing Two Service Hooks with One SyncRivo Endpoint

SyncRivo's approach collapses the two-hook pattern into one. Configure a single service hook per event type, pointing to the SyncRivo endpoint. SyncRivo receives the Azure DevOps payload and routes it to both platforms simultaneously — developer channels in Slack, manager channels in Teams — with a single configuration point.

Build failed routing Route to: #dev-alerts Slack channel (developer awareness) + Engineering Teams channel (manager awareness). Optional: for failure in a main/release branch, escalate to the engineering lead in Teams via direct message.

PR created routing Route to: the author's Slack direct message (confirmation) + the assigned reviewer's preferred platform (Slack or Teams, based on their profile in SyncRivo). Optional: route all PRs to a #code-review Slack channel so the team sees review queue load.

Release deployment completed Route to: the release Teams channel (stakeholder visibility) + #deployments Slack channel (developer record). Include deployment environment (staging vs. production), duration, and release name in the formatted message.

Work item assignment Route to: the assigned developer's preferred platform via direct message. Keep the team lead informed via a Teams summary channel for sprint tracking.

Azure DevOps vs. GitHub Actions vs. Jenkins

For organizations running multiple CI/CD systems — Azure DevOps for .NET and enterprise projects, GitHub Actions for open-source or new services — SyncRivo provides a unified routing layer. Azure DevOps service hooks and GitHub Actions webhooks both route through the same SyncRivo instance. Routing rules (failures go to Slack, releases go to Teams) apply uniformly regardless of which CI system generated the event.

This is the primary advantage over native integrations: native integrations are per-tool. SyncRivo routing rules are per-rule, applied across all connected tools simultaneously.

For the complete Azure DevOps service hook configuration, per-event routing matrix, and build failure escalation setup, see the Azure DevOps Notifications in Slack & Teams integration guide.

Ready to connect your messaging platforms?

Bridge your messaging platforms in 15 minutes

Connect Slack, Teams, Google Chat, Webex, and Zoom with any-to-any routing. No guest accounts. No migration. SOC 2 & HIPAA ready.