Epic Visio Skills produced this cool illustration of Microsoft Teams extensibility!

Extending Microsoft Teams is now officially awesome

This post was most recently updated on March 28th, 2023.

4 min read.

This article is something of a combination of a technology overview and an opinion piece, detailing my thoughts about extending Microsoft Teams. To me, extending Microsoft Teams has pretty much only now become relevant.

Before, the palette was still quite unfinished, but now we’re definitely getting to a point where there are meaningful and cost-effective extension scenarios to cover most of the relevant use cases for most organizations.

Don’t take this for an inflammatory or disrespectful post – I’m writing this from my personal point of view, as someone who’s been following the space for a while. And I’m definitely hyped about the latest developments.

What makes extending Teams cool and important now?

Already before, you could create chatbots and all kinds of tabs, but for a lot of organizations, the introduction of Teams-integration in SPFx version 1.8 might be the first big thing, that makes it sensible for them to develop their own extensions for Teams.

Wait, what do I mean by that – there’s been a lot of things you can do for a long time already! Like Chatbots – they’re definitely useful, although only preferred by a subset of users. Tabs? Simple, often useful, and even custom scenarios are possible. Outgoing web hooks? Absolutely, for a number of scenarios. But what really finally makes the difference for me, is the opportunity to develop custom functionality for both SharePoint and Teams at once using SPFx. This way, you can cover multiple, widely used platforms with one-time development work.

However, this post doesn’t go into the details of the technical implementation. That’s a topic for another article. In this one, I’ll give you an overview of extending Microsoft Teams.

How can I extend Microsoft Teams?

  • Bots for conversational tasks
  • Outgoing webhooks for calling external URLs with a simple payload from Teams
  • Connectors for importing data to your teams through notifications and actionable messages
  • Activity feed integrations to push new messages to the user’s activity feed
  • Messaging extensions for enriching your messages with data pulled from other sources
  • Your custom Tabs for showing pretty much any information in Teams channels

These different options work in fairly different ways – perhaps for simplicity’s sake, we could split them into different scenarios based on the type of interaction they and the users have. Note, that this is completely unofficial, and I just made the grouping up to organize my own thoughts.

I mean, that applies to most of the posts on this site anyway! :)

(1) Microsoft Teams extensions for conversational scenarios

Bots are definitely the most obvious case for conversational extensions (and probably the most hyped form of extensions in general), and they can power a number of interactive scenarios or simple automation tasks. Additionally, Outgoing web hooks are essentially a different flavour of bots – you can register your custom API to receive messages from Teams with Teams context, execute actions, and deliver responses back.

What is a Teams bot, exactly? Well, there's no simple answer, as it could be anything - as long as it's ready to react to your messages or tagging!
What is a Teams bot, exactly? Well, there’s no simple answer, as it could be anything – as long as it’s ready to react to your messages or tagging!

(2) Microsoft Teams extensions for capturing users’ attention

This category, at least for me, contains Activity Feed Integrations and Connectors, although the proactive messages from bots could be considered this type as well. This category of extensions is all about shoving data into your users’ faces – in a good way.

One, very classical example of bringing this external data into your teams as notifications are using a connector to subscribe to updates of a RSS feed. The connector configuration is shown below.

Configuring RSS feed connector in Microsoft Teams.
Configuring RSS feed connector in Microsoft Teams.

Connectors import data to your channels as notifications – see below!

RSS connector in Microsoft Teams.
RSS connector in Microsoft Teams.

Simple, but useful. Below, is an example of an Activity Feed extension:

(3) Microsoft Teams extensions for displaying external information and functionality directly in Teams

Messaging extensions enrich the messages with external information, and Tabs enable you to show (somewhat) interactive tabs for your different channels. These, to me, are the coolest kinds of extensions. Anyone can build a bot (yes, it is that easy!), and they’re useful, but the extremely seamless integration directly in the messages (in the case of Messaging Extensions) and the powerful things you can do with custom Tabs take the cake any day of the week. Plus they are worth a few screenshots.

Below, I’m showing an example of Messaging extension, where you can add images from online using Bing Image Search to your messages without leaving Teams – without actually leaving the message field!

Pulling images from Bing using the message extension.
Pulling images from Bing using the message extension.

Pulled images fit nicely in a Teams message.
Pulled images fit nicely in a Teams message.

While Messaging extensions are cool, the most flexible and rich experience can be – in my mind – achieved by using interactive tabs. This way, you can embed pretty much any custom SPFx webpart you’ve built for SharePoint to your Teams channel instead.

Below, I’m showing a simple screenshot of a custom SPFx webpart added to a Team’s General channel. The perhaps coolest part is, that this works both in the desktop client, browser and the (for the most part) mobile app!

A custom SPFx webpart displaying a calendar for a Modern Team Site in SharePoint - but actually as a tab directly in Microsoft Teams!
A custom SPFx webpart displaying a calendar for a Modern Team Site in SharePoint – but actually as a tab directly in Microsoft Teams!

But how does this all happen in practice?

Using SPFx to craft a Teams tab

I’ll be posting about creating Teams extensions with SPFx later on – and I’ll be speaking about this topic at SharePoint Saturday Nashville on the 15th of June 2019. I’ve prepared a couple of cool demos for the event – hopefully, I’ll have time to post about them afterwards! It’s a free event, come check it out!

In the meantime, I’ve posted about creating a (non-SPFx) Teams tab before – you can check that out already if you’re interested.

What do you think? Does this grouping of extensibility options make sense? (1) Conversational extensions, (2) pushing data to users and (3) displaying external data and functionality.

Oh – and there are some useful links and resources below!


0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments