Create a service hook for Azure DevOps with Slack

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

In this article, learn how to post messages to Slack in response to events in your Azure DevOps organization, such as completed builds, code changes, pull requests, releases, work items changes, and more.

Note

For Azure DevOps Services, we recommend you use the following suite of apps which offer features to integrate with Slack.

Azure Boards app for Slack

Azure Boards app for Slack helps to easily create and monitor work items from your Slack channels. You can create work items using a slash command, or use message actions to convert conversations in the channel into work items. You can also set up and manage subscriptions to get notifications in their channel whenever work items are created or updated.

Azure Pipelines app for Slack

The Azure Pipelines app for Slack helps to easily monitor the events in your pipelines. You can set up and manage subscriptions for completed builds, releases, pending approvals and more from the app and get notifications for these events in their channels. You can also approve release deployments from your channels.

Azure Repos app for Slack

The Azure Repos app for Slack helps to easily monitor the events in your repositories. You can set up and manage subscriptions for code commits, PR creation and updates, and more, and get notifications for these events in their channels.

Prerequisites

Refer to the Slack documentation, Sending messages using Incoming Webhooks to understand the process of using Web Hooks to push information to a Slack channel.

Create a custom app in Slack

  1. Create a new Slack app Create slack app

  2. Activate incoming Web Hook and add a new Web Hook to the desired workspace Screenshot of incoming Web Hook.

    Screenshot of Toggle Web Hook.

  3. Select the channel for which Web Hook must be created.

    Screenshot of Create Web Hook.

  4. Copy the Web Hook URL and go to Azure DevOps.

    Screenshot of Copy Web Hook.

Create a service hook subscription in your organization

  1. Go to your project Service Hooks page.

    https://{orgName}/{project_name}/_settings/serviceHooks

    Screenshot of the Project administration page.

    Select Create Subscription.

  2. Choose the types of events you want to appear in your Slack channel.

    You can filter each of the triggers in specific ways. For example, filter the pull request created trigger on the repository in which the pull request occurs, the target branch it applies to, and the team members required or invited to review the request.

  3. Paste the Web Hook URL from the Slack integration that you created and select Finish.

    Screenshot of the Action dialog box with the Web Hook URL.

    When the event occurs in your project, a notification appears in your team's Slack channel.

    Screenshot showing a notification in a Slack channel.

  1. Go to your project Service Hooks page.

    https://dev.azure.com/{orgName}/{project_name}/_apps/hub/ms.vss-servicehooks-web.manageServiceHooks-project

    Screenshot of the Project administration page.

    Select Create Subscription.

  2. Choose the types of events you want to appear in your Slack channel.

    You can filter each of the triggers in specific ways. For example, filter the pull request created trigger on the repository in which the pull request occurs, the target branch it applies to, and the team members required or invited to review the request.

  3. Paste the Web Hook URL from the Slack integration that you created and select Finish.

    Screenshot of the Action dialog box with the Web Hook URL.

  4. When the event occurs in your project, a notification appears in your team's Slack channel.

    Screenshot that shows a notification in a Slack channel.

FAQs

Q: Why don't I have the pull request events as an option when I configure my trigger?

A: Pull requests are only available with projects that use Git. If your project uses TFVC, pull event triggers aren't available, and your code event is called "Code checked in" instead of "Code pushed."

Q: How can I get multiple events to show up in my Slack channel?

A: Create a new subscription for each type of event you want. For example, if you want to see build failures and new work items in your Slack channel, create two more subscriptions.