Skip to main content
Back to Insights
DevOps

CircleCI Has a First-Class Slack Orb. There Is No Teams Equivalent.

blog.posts.circleci-microsoft-teams-integration-guide.description

min read
CircleCI Has a First-Class Slack Orb. There Is No Teams Equivalent.

CircleCI's Slack orb is one of the most widely used orbs in the CircleCI ecosystem. In your .circleci/config.yml, you declare the orb, configure a Slack bot token, and use the slack/notify step or the on_fail / on_success hooks to send build status to a Slack channel. It is clean, pipeline-native, and well-documented.

orbs:
  slack: circleci/slack@4.12.5

jobs:
  build:
    steps:
      - slack/notify:
          event: fail
          channel: C0123456789
          mentions: '@oncall'

Teams users get nothing from this. The orb authenticates against the Slack API. It has no mechanism to post to Teams, Webex, Google Chat, or Zoom.

What the Teams Gap Looks Like in Practice

A build fails on the main branch at 2:47 AM. The CircleCI Slack orb fires. The on-call engineer sees the Slack alert. The engineering manager — who uses Teams — sees nothing until they check CircleCI directly or get a Slack forward in their morning standup.

For a 5-engineer team all on Slack, this is fine. For an organization where engineers are on Slack and engineering leadership, PMs, or stakeholders are on Teams, the notification gap means Teams users are always one step behind the build status.

The Two Configuration Approaches

Option 1 — CircleCI project webhook (no pipeline changes required):

In CircleCI, go to Project Settings → Webhooks. Add a webhook with your SyncRivo inbound endpoint URL as the receiver URL. Subscribe to workflow-completed and job-completed events. SyncRivo routes the payload to Slack, Teams, Webex, Google Chat, and Zoom based on your routing configuration.

No changes to your .circleci/config.yml. The webhook fires at the project level for every pipeline run.

Option 2 — run step with curl (pipeline-controlled):

In your .circleci/config.yml, add a run step that POSTs to your SyncRivo endpoint in an on_fail or on_success context:

- run:
    name: Notify SyncRivo on failure
    when: on_fail
    command: |
      curl -X POST $SYNCRIVO_WEBHOOK_URL \
        -H "Content-Type: application/json" \
        -d '{"event":"build.failed","job":"'"$CIRCLE_JOB"'","branch":"'"$CIRCLE_BRANCH"'"}'

Store the SyncRivo webhook URL as a CircleCI environment variable (SYNCRIVO_WEBHOOK_URL). This approach gives you full control over the payload — include the branch name, commit SHA, job name, and any custom context you want in the notification.

Routing Configuration

In SyncRivo, configure routing rules per event:

  • workflow-completed (status: failed) → on-call Slack channel + engineering leadership Teams channel simultaneously
  • workflow-completed (status: success, deploy workflow) → release Teams channel + engineering Slack channel
  • job-completed (status: failed, test job) → dev Slack channel
  • manual approval required → approver's native platform (Slack DM or Teams DM)

For the complete CircleCI webhook setup, run step configuration examples, and routing matrix by workflow type, see the CircleCI 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.