The Bot Framework in Microsoft Teams links applications and services to instant messaging and group chat. Microsoft launched Teams, a collaborative platform in Office 365, in March 2017 and has recently added new functionality enabling use for ChatOps. It has also announced that Teams will replace Skype for Business.
ChatOps allows multiple users to participate in a single chat channel or room and query and drive services such as build automation and application performance management from within the group chat window. For example, an incident management team may want to swarm in a chat room and receive monitoring alerts, query release tools for change, and fault diagnosis and drive deployments to remedy the situation. Alternatively, an agile team may wish to use a Teams room to collaborate, real-time, on the continuous delivery pipeline and observe the progress of a new feature through the testing gates and trigger the deployment when the software is confirmed to be in a releasable state.
Microsoft Teams has the elements needed to set up ChatOps: bots, rich messaging (attachments, fields, buttons, drop-downs and most importantly, dialog inputs), a documented API with publicly available wrappers and defined auth scopes, mobile, web and desktop presence and Public Channels and Private Groups.
Dialogs inputs allow users to command a bot through input boxes rather than text commands. The input boxes are more akin to web and mobile interfaces that we use every day and improve adoption due to the familiarity of the user experience.
ChatOps requires applications to publish content directly into team conversations so that multiple users can see the same information in the conversation thread at the same time (rather than individual users accessing the applications themselves and only seeing their own view). The kind of applications people typically want to integrate into their ChatOps solution include JIRA, GitHub, Jenkins, Dynatrace, Pagerduty, Nagios, Splunk – essentially all the components in a DevOps toolchain.
Microsoft Teams messaging extensions can be used for this integration. The process starts with the registration of a bot, which then provides the ID and endpoints needed to link code to Teams. Creating an app manifest for the bot adds support for the messaging extensions. Messaging extensions can be scoped to individuals or a team, using commandIDs to handle routing queries to the appropriate code and generating cards in response that display in a Teams room.
Applications offering messaging extensions are listed in AppSource viewed through the Teams app. When an application has been installed, a messaging extension can be called from the More Options button on the message compose box.