Episode #119 – Microsoft Teams Extensibility (from a developer’s viewpoint)

Here you can find the transcript of Episode #119 of PiaSys TechBites.

Welcome back to PiaSys Tech Bites. Today, I want to talk with you about the extensibility model of Microsoft Teams from a developer point of view. In fact, Microsoft Teams is not only a modern workplace and collaboration tool, it is also a tool for developing and hosting real business solutions.

Laura Kokkarinen, a friend of mine, created a very good blog post a few months ago about what the extensibility points of Microsoft Teams are. Today, I want to have a point of view of a developer, and I want to explain you what the tools and SDKs are that you can use to develop those extensions for Microsoft Teams. And, specifically, we will see what you can do using SharePoint Framework, using yo teams, and the Microsoft Teams Toolkit provided by Microsoft.

From a UI point of view, Microsoft Teams can be extended creating, for example, channel tabs or configurable tabs, which are just extensions that you can add to the UI of a channel to provide custom content, and custom UI elements to the end-users. They are called configurable tabs because they are customizable with custom settings, which will be stored in the site, backing the team in which you are. You can also create static tabs and personal apps. Static Tabs because they don’t have, out-of-the-box, the capability to configure settings. But, at the same time, using Static Tabs and Personal Apps, you can create really good experiences, which can be docked in the left navigation bar of Microsoft Teams. And, from there, you can start custom applications made of multiple tabs, multiple modules, and UI elements that you can use to collect, or provide information to the end-users.

Moreover, we can create messaging extensions. With a messaging extension, we can extend the search experience, as well as the experience of composing a message in the chat area. As well as to add actions when we want to click on the three dots, just beside the feedback icons, or beside the actions that you have in the message editor in Teams. We can also create Bot to extend the experience from an end-user perspective, and to provide interactive support to our users in a chat, or in a channel.

Moreover, we can create webhooks, which can be incoming or outgoing webhooks. With an incoming webhook, you can send a message to Microsoft Teams, to a channel and the message can be, for example, an Adaptive Card to request the users to execute a specific action. With the outgoing webhooks you can, on the contrary, send a message with the @mention approach to an external service running outside Microsoft Teams, which can eventually reply back to the users providing, again, an Adaptive Card. You can create connectors, which can be the old and well-known Office 365 Connectors, or can be connectors specifically built for Microsoft Teams. And you can register those connectors in the Connectors Developer Dashboard. We can create task modules, which allow us to create popup dialog UI elements, which you can use to provide content and information to the users, or even to collect information from users. And, of course, we can use the Adaptive Cards model to create the custom UI elements of a bot, connectors, and incoming webhooks.

So, from a developer point of view, what can we use to create such kind of extensions? As you can see in this table, SharePoint Framework is very useful, and is my primary choice, whenever I need to create a configurable tab, or a static tab because I can use the development experience of SPFx. I can easily consume Microsoft Graph and any backend API when I create my SPFx solutions. I can use yo teams for any other options. And actually yo team covers all of the extensibility models of Microsoft Teams. Or you can use the Microsoft Teams toolkit to create almost any kind of extension, except the outgoing webhooks. You can also consider using the App Studio app together with Microsoft Teams Toolkit to have the capability to manually edit and manage the manifest of your Teams apps. And at the URL you can see on this slide, you can find the entry point for the section of the Microsoft documentation about how you can use Microsoft Teams to build solutions and to host solutions.

But there’s more. Microsoft, at Ignite 2020, announced a lot of new capabilities, which will come out pretty soon. First of all, we will be able to play with Teams’ templates. So, we will be able to use out-of-the box templates, or we will be able to create our own templates, meaning that we will be able to define a pre-cooked template for a team, including custom tabs, including apps. And we will be able to allow our users to create a new team starting from any of those templates. We will have the capability to create apps in meeting. So, we will be able to extend the meeting experience for end-users. And here, we can imagine a lot of capabilities that we can create extending the meeting experience. Last but not least, we will be able to use the in Teams approvals capability, through which we will be able to start an approval flow in a chat, for example, or in a channel. And we will be able, also, to use the Approvals app, which will become available in Microsoft Teams really soon.

So, plenty of news, and plenty of extensibility points for developing real business solutions in Microsoft Teams. Like always, thank you for watching this video. I hope you found it interesting. And I’m really looking forward to seeing you next week. And remember to subscribe to this channel. Thank you.