In previous posts, we’ve shown you how to effectively use Channels within Microsoft Teams, and how to utilize other key features of Teams in order to stay organized. Today, we’d like to introduce the concept of extensibility as it relates to Microsoft Teams. Microsoft has always done a great job of opening up their products so that if there is a gap in functionality, you or someone else in the broader community, can fill in that gap. Microsoft is able to accomplish this by offering APIs for many of their products and platforms, and also providing “hooks”, which provide a simple messaging and event protocol between applications. Today, we’d like to introduce you to the ABCs of extending Teams – Apps, Bots, and Connectors.
At this point, we’re all quite familiar with the concept of Apps – there’s an App Store for almost any type of device, and we’re all utilizing Apps on a daily basis to make consuming information easy and more efficient on the devices we use. Apps within Teams aren’t much different – they provide content and services to the user, and can utilize key Teams features such as Tabs and Chat. At the end of the day, Microsoft Teams apps are web apps that run in the context of Teams, and that you obtain from the Teams store. They contain one more of the following parts:
- Messaging Extensions
- Activity Feed Integrations
- Outgoing web hooks
A couple of these we will discuss in more detail later in this post, but let’s provide a quick introduction to the others:
Tabs in Microsoft Teams provide a way to display content to the user from the service you are interacting with. Because they are web apps, you can either utilize an existing web interface (especially if it is already responsive), or build something from scratch to accommodate the Teams environment. Tabs can either have a team scope (same view for the entire team) or a personal scope (unique view for each person). A tab can also get context information, such as information about the user, team, or company.
Figure 1 - Simple Form running in a Tab
Messaging extensions are a powerful way for you to interact with cloud-hosted services. Services are integrated via the Bot Framework, which we’ll talk more about in a minute. Once everything is wired up, the messaging extensions appear along the bottom of the compose box – a couple built-in examples include Giphy and Sticker, but it’s easy enough to add others like News. You can also add your own custom messaging extensions that can integrate with any service that is publicly accessible or that you expose yourself that may surface business data and content.
Figure 2 - The News messaging extension easily pulls relevant information
Activity Feed Integrations
The Activity Feed in Teams pulls together all of the important updates and information from across your Teams and Channels. If you are @ mentioned, or you are following a particular channel, messages or cards will show up in your Activity Feed. It’s also possible to send messages directly to the Activity Feed from your app, allowing you to see a summary of the app’s activity, or other important updates from the app. For example, if you are using a source control system, and you would like to know when a pull request is made from one of your developers, your app can push a message directly to your activity feed indicating that has happened.
Figure 3 - This custom-built app pushes messages when pull requests are made from a source control repo
As a standard for integration, outgoing webhooks allow any service to process messages and post responses in the form of rich content, cards, and the like. Imagine being able to @ mention someone, and then kick off a workflow, or kick off a build within your integration environment. Outgoing webhooks provide an easier mechanism for extending teams without going through the full process of creating a bot using the Bot Framework. To create an outgoing webhook, simply click “Manage Team” from your Team, then go to the Apps tab. The link in the bottom right will allow you to create an outgoing webhook – walk through the process, and be sure to copy off the security token once it is created – you will not be able to retrieve this again. Once the webhook is created, it looks and acts just like a bot, so it will listen for messages using @mention, and will respond with messages from the service you’ve configured for it.
Figure 4 - The process of creating an outgoing webhook is quick and easy
As you can see, apps provide a multitude of ways for you to integrate with third-party and in-house services and applications. Next, we’ll look at a particular component of apps that provides intelligence to your Teams environment – bots.
At the end of the day, Bots are only one component of an app for Teams, but what makes Bots unique is that they bring intelligence to chat within your Teams Channel or to your own personal conversation with a particular bot. Bots appear just like any other team member in your organization, except their avatar is a hexagon instead of the traditional circle, and they are always online.
To show a simple example of the power of Bots, take the RememberThis bot as an example. By adding this Bot to your Team, your can have the Bot remind you to do certain tasks directly within the context of the Team chat.
Figure 5 - Having a bot remind me to prep for a demo
Since this is a team, you could have the same bot remind someone else of a particular task as well.
Figure 6 - Bots can interact with team members
The larger Microsoft Bot Framework is actually based in Azure, and so your Bot will not only work in Teams, but in the larger Microsoft ecosystem. Bots have a wealth of cognitive capabilities, such as:
- Translating written and spoken information into other languages
- User recognition within photos
- Answer extraction based on unstructured data for a specific query
- Searching across Web, Video, Images, Entities, etc
A Bot developed using the Bot Framework can be leveraged not only within Teams, but also in other third-party services such as Slack, Facebook Messenger, Kik, and Telegram, just to name a few. This is a powerful element to your app, and one that can be enhanced and leveraged in many, many ways.
Connectors are proactive services outside of Teams that send information and content directly into your Teams Channel where everyone can see it, and then potentially take action. There are a ton of services you can connect your Team to like Facebook, Salesforce, and Survey Monkey, just to name a few.
Figure 7 - So many options for services we can connect to
What’s really powerful about this is when we turn simple messages into actionable messages, where you can approve something to keep a workflow moving, or maybe update a task status.
Figure 8 - Updating a Task in Wrike
Teams is a powerful hub that brings together all of your Office 365 collaboration needs – Audio, Video, Chat, Office, Tasks, and Files. Teams then brings together all of your workspaces within Office 365 into a single, cohesive environment. With the ability to extend your Teams with external applications and services using Apps, Bots, Connectors and more – you can see why we say “Teams is the place to get work done within the organization”