Integration of Azure DevOps in Microsoft Teams and why is it useful?

A lot of customers asked about the options that Microsoft Teams offers to integrate Azure DevOps into it. In this post I want to give you a brief overview of the possible uses:

  • Using Azure DevOps Connectors to get notifications in a Microsoft Teams channel
  • Integrate Azure DevOps with predefined Applications which are like small Chat Bots
  • Integrate Azure DevOps Dashboard in a Microsoft Teams channel tab

Contents

How to combine Teams and Azure DevOps?

Let us now start with the main goal of this blogpost. To answer the question “How can we integrate Azure DevOps in Teams?” and maybe more important “Is it really useful?”

An answer to the first question – we have different options to integrate Azure DevOps in Teams. As a little reminder, a team in Microsoft Teams can consist of different channels. In a channel you can write, group call and there is a file storage for each channel. You can additionally connect other services or applications provided in a dedicated Apps hub to a channel or a whole team.

So, to handle the integration, it depends on what functionality we want to use. There are three direct options which I will present you.

First, we need some Prerequisites and Clarifications

To do the following steps, you will need:

  • An Azure DevOps organization with a Project
  • The needed access rights in Azure DevOps
  • A Microsoft Teams channel or team

Also, I want to clarify some wording for the following explanation. There are different mentions of the word “Team”. First, there is the product Microsoft Teams. Moreover, you can create groups called “Teams” in Microsoft Teams. In Azure DevOps, you can create one or more teams in a project. This may be confusing at first, but you will get used to it. Please note that if you create an Azure DevOps project, there is always one standard team created which has the same name as the project itself. But how to configure and use them is another story. Let’s just say we have an Azure DevOps team, the product Microsoft Teams and a normal team which is created in Microsoft Teams.

For our explanation below I created a Demo Azure DevOps organization and used the SonarCube Project from the Azure DevOps Demo Generator. The project uses the SCRUM framework and brings predefined work items as well as two predefined teams with it.

Azure DevOps Project Settings view
You can create Teams in the Project Settings Teams tab

Then I configured the Backlog, where the work items (Product Backlog Items in this case) are created and managed for each of the two Azure DevOps Teams and assigned the work items to the respective Team Backlogs. It is possible to use different backlog levels for each work item like a feature or the Product Backlog Items, but we go with the feature level for our demonstration. Following you can see the Backlog of Team 1 in the SonarCube Project.

Each team can have an own Backlog structure with individual Backlog levels and work items

I additionally created very rudimentary Azure Dashboards for the different Azure DevOps teams as well as a dashboard for the overview of the whole project and all teams overall.

Overall Project Dashboard
Individual Dashboard for Team 1

Now we have our Azure DevOps organization, a project, and Azure DevOps team, and work items we can get notifications on which means finally…

…Ready, Steady, Go!

Option 1: Use Azure DevOps or Azure DevOps Server connector to get notifications in a Microsoft Teams channel

With Azure DevOps connectors in Teams, you will be able to get notifications based on different events happening in Azure DevOps.

The information about changes will be posted in the channel where the connector is set up. Note that you can configure more than one connector. You need to configure one connector for each event you want to get notified on.

Channel Settings

If you navigate to the channel menu via the three dots right of the channels name, you can select the Connectors Option:

Configure the Azure DevOps connector

Then we configure the needed Connector. In our case the one for Azure DevOps. It may be needed to add your Azure DevOps account or reconnect to it before the set up starts working. We use the demo project in our demo organization and want to set up a notification if a work item is created in the scope of Team 1. We will see that all selections of teams, organizations and projects will be prompted automatically for as long as our account has the needed access rights. You will also get an error message if the connector is already connected.

Input details for the Azure DevOps connector

To test our newly set up connector, we go to the Azure DevOps in the Azure DevOps Team 1 backlog and create a new work item.

Creating a demo feature to test the connector functionality

And after a short delay of about ten seconds, the notification is automatically created in our channel.

We can now create connectors for each Azure DevOps teams, work item or the whole project.

You can create additional connectors for each work item on the same channel

Option 2: Use Applications to manage Pipelines, Repositories, Boards and get notified

We can achieve the same functionality as in option two and more with the use of the provided apps for Microsoft Teams.

  • Azure Boards provides us with the functionality to create or manage work items and get notified if changes occur
  • Azure Repos allows us to manage and get notified if code changes, pull requests or other changes in the repositories happen
  • Azure Pipelines allow us to track and manage pipeline runs
  • Azure DevOps allows to integrate notifications of Azure DevOps in messages, search for work items and manage Azure DevOps
Using the Microsoft Teams Application view to find the needed Apps

How can we set up the applications?

To integrate the applications, you simply search for Azure in the bottom left Apps tab and click on the desired app you want to add. Then the options to add them to a channel or a whole team is provided together with a short functionality introduction.

Note that not all apps can be added to individual chats. But you can select channels which is done with the “Add to Team” option.

General connector for Azure DevOps
Specific Connector for the Boards Service in Azure DevOps

After we selected the desired app extension, we need to connect the Azure DevOps organization and do additional configurations like selecting dashboards to show, select teams, repositories with branches or pipeline features to manage and track. All depending on the selected application.

We switch now to the channel where the extension is active. From here, we can now use the predefined commands.

Test the Connector by typing @Azure
List of commands and functionality

Each application has its own unique set of commands and functionality. As its functionality may change, I will provide the links to the official documentations for each application. Also, the set-up is explained there in more details. I will not go further into the detail of the commands in this blogpost.

Now let us get into two small examples

As an example, we set up the same functionality with the connectors above with the Azure Boards application. For this we need to type in @Azure Boards subscriptions. After that, the active subscriptions are shown, and we can set up a new one or manage our existing subscriptions.

Subscribe to the information you want to get

Here, we can select a little less than the connector provides but get all necessary information on work item events like Comment, Create, Delete, Updated or Restored. Also, we can specify a bit more details on which work item we want tracked.

Configure the Boards Application

After we create a new work item in Azure DevOps, we get notified about the creation of this team by the Azure Boards feature. As we set up the Azure DevOps connector before, it also notifies us, which shows the difference between the notifications.

Test the configuration by adding an additional feature in the Backlog
See the outcome in the Channel where the application is active

Option 3: Integrate Azure Boards or Dashboards into Microsoft Teams

To track different Azure DevOps teams across organizations you can integrate the dashboards into a sperate Microsoft Teams channel tab. This may look as shown below:

View an Azure DevOps dashboard from a Microsoft Teams tab
View an Azure DevOps Board in Microsoft teams as an additional tab

As said before, there are different command palettes for the other applications, so just try it out and see what fits your needs.

Summary

In conclusion, I want to state my opinion on the provided topics. I think that the options to integrate Azure DevOps in Microsoft Teams are very useful. Especially if you want to get an update on bugs, service requests or such issues in one communication medium. Also, you can get notified on work items assigned to yourself which is quite useful. especially if working in different projects or organizations for different customers. Same goes for tracking pipeline runs, get notified on fails, approve different steps of those pipeline runs or manage pull requests in the repository app. On the other hand, it should be evaluated what kind of notifications you subscribe to as many notifications may get a bit confusing as they add up. Also, it is a bit of a personal preference if you want to create work items from a Teams channel in Azure DevOps. I personally go for that directly into Azure DevOps and do it there directly. Also, for most of the notifications, if you are mentioned in a work item, you receive per default an e-mail from Azure DevOps. Keep in mind to switch off those notifications if you use it in Microsoft Teams. The possibility to show dashboards is quite handy, for instance, if one does not want to access Azure DevOps directly, but wants to track different projects or teams across Azure DevOps organizations.