How to integrate Microsoft Teams with other apps

Microsoft’s new collaboration is more than messaging—it’s a platform with three choices for integration into a work hub

How to integrate Microsoft Teams with other apps
Thinkstock

Back in the late 1990s, as instant messaging became popular, you could tell who’d been on what team by seeing which consumer IM tools they’d been using. Eventually, of course, everyone had an account on every service, and the first decision a new project team had to make was which IM tool it’d use for group chats.

That problem is back, as teams decide between collaboration platforms like Slack and HipChat. Now, of course, there’s Microsoft’s entry in the collaboration space: Teams.

Microsoft’s recently released service builds on its existing Office 365 and Skype for Business framework to give you a way to handle ad hoc collaboration and chat in existing teams. Like Slack, it’s a free-form channel-based app where Office 365 accounts are used to control access to team discussions, with easy options for adding new Teams members and sharing common documents and information. Users can dip in and out of threaded conversations, and they can quickly receive notifications from colleagues, with the option of changing to real-time video and voice where necessary.

Although an ad hoc channel for conversation is useful, it’s only part of the story. Teams can also bring other applications and services into one informal team-focused hub. Like Slack and HipChat, it can connect to external services, working with web standards to simplify the development and integration process.

Teams offers three options for integration: tabs, cards, and bots.

Teams integration option 1: Tabs

Tab-level integration brings an entire site or service into Teams. This approach works well where you need to work with significant amounts of information, like a Kanban board in an agile development process, a sales funnel for marketing, or a list of outstanding tickets for a support team. Pages are displayed in an iframe hosted in Teams, and although you’re unlikely to have to redesign your content for use in Teams, it’s worth considering what information needs to be displayed and how you want to lay it out for use inside a collaboration app.

Tab-level integrations are simple enough; all you need to do is create an appropriate manifest for your content, which you host as normal. A link to a configuration page is included with the manifest to help users choose options, and you’ll also need to bundle small and large icons for use inside Teams. Manifests are simple XML files, and the whole package is delivered as a Zip file and added to a Teams gallery in your Office 365 tenant.

Authentication for tabs is an issue, and although Microsoft encourages you to take advantage of Azure Active Directory to give users a simple single-sign-on experience, you can also work with third-party authenticators. These can be handled via Teams-specific markup that is parsed by mobile, desktop, and web Teams apps to create appropriate iframe-based pop-ups for user logins.

Building apps into Teams tabs is a useful option, but if you want to get the benefits of the ad hoc nature of working with collaboration tooling, the other two options Microsoft offer make a lot more sense, allowing you to embed interactions directly in channels, either using cards to display information or via chatbots.

Teams integration option 2: Cards

Adding cards to Teams is easy enough, especially if you’ve been working with Office 365’s Groups feature and its application connectors. Microsoft makes it easy to reuse connectors between Groups and Teams. If you employ Groups for more formal team collaboration, the same connectors can quickly be repurposed as part of a channel in a team; for example, developers can quickly see the output from a test or a build running a continuous integration tool like Jenkins, or a sales team can get its latest pipeline information from Salesforce. If you can create a webhook, you can build a connector.

Webhooks are a simple way of building asynchronous connections into web applications, offering an easier route to integration than using JavaScript-based callback functions. Teams currently offers support for incoming webhooks as part of a publish-and-subscribe mechanism. Teams subscribes to a webhook URL, and services use it to publish content wrapped as a JSON-formatted document.

Connectors can be manually configured in Teams or delivered from the Office Store. The latter option allows you to preconfigure images and icons, as well as making them available to other collaborators. Manually configuring connectors is currently more complex, but can be handled with a set of basic online documentation and the URL of an appropriate webhook.

Putting a JSON payload on a webhook is easy enough; there are plenty of libraries and toolkits that can be used to add functionality to existing apps. The JSON document can be constructed to include different sections, including formatting and links. To keep it simple, they’re constructed with the common Markdown formatting syntax, which makes building and managing content relatively easy. Once formatted, cards let users click on links and hit action buttons to access external content from inside Teams. Other options let you build card sections from lists of images and from simple key/value pairs.

Teams integration option 3: Bots

If you want to go further, you can connect Teams to a bot built using Microsoft’s Bot Framework. This lets you take advantage of a range of cloud-hosted machine learning services for natural language parsing. Going from chat to actionable data is relatively easy, and users can interact with bots in Teams with text or images.

Working with bots lets you start incorporating Teams into a chat ops strategy; users can interact with services via chat in Teams channels—for example, creating and launching virtual machines or subscribing to services.

But chat is only one way of working with bots in Teams. The can also deliver a richer card experience, with more interaction options. If you don’t want to have a free-form chat approach to your bots, this interactive card approach could be the basis of a more structured set of interactions between a user in Teams and an external application.

Microsoft needs to make its Teams service as much of a platform as its competition. Although its key differentiator is its integration with the Office graph that’s built around Office 365 users and their content, it needs to offer access to other tools and services. Using web standards like webhooks and Markdown makes a lot of sense, giving organizations an on-ramp to Teams from other collaboration platforms.