Keep your app top of mind and top of chat with message extensions in Microsoft Teams and Microsoft 365 Copilot

Daniel Carrasco

You’ve developed a great app that users love. But you’d like to see it used more. So, why not make it easy for people to use it right in Microsoft Teams—one of the most popular places in the workplace today, with more than 300 million monthly active users.

That’s where Teams message extensions come in.

In this post, we answer the most common questions about using message extensions in Teams.

What is a message extension?

A message extension allows users to interact with your app directly from the Teams chat interface. So instead of navigating away from the conversation to access your app, they can simply click a button or type in the search bar to trigger an action from your app. For example, you could create a message extension that allows users to quickly search for and share relevant information in a chat, or one that enables them to create and track tasks or look up orders without leaving Teams.

A message extension consists of a web service that you host and an app manifest, which defines where your web service is invoked from in the Teams client.


Image MsgExtAction


What are the different commands for message extensions?

Message extensions can have search commands, action commands, or both.

  • Search commands enable people to query your service and post that information as a card right into a chat message. They just bring up a search bar and share—without ever leaving Teams.


PRO TIP: Provide suggested search results while users type. This way, they can find the content they need faster.

  • Action commands allow people to trigger actions and process requests in external services without clicking out of Teams. For example, if your app tracks orders, a user could create a new one using the contents of a chat message. Often, these types of message extensions ask users to complete a form or some other kind of configuration in a modal.


PRO TIP: Include action commands that make sense in the context of your app. Message actions should relate to what a user is looking at. For example, provide users a shortcut for creating an issue or work item using the text in someone’s post.

What are some tips for designing a message extension?

For the most part, users are going to interact with your message extension where they type. If they add a link, consider using link unfurling functionality, which provides a preview of the URL. Learn more about designing message extensions.



Why create a message extension? Hint: plugins for Microsoft 365 Copilot

Message extensions not only offer convenience to your users. They also boost the discoverability of your app by displaying it in the Teams interface right where the chat happens. With a message extension, you can serve up your app to users who may not be aware of it, plus it’s easy for them to start using it.

Yet the functionality of message extensions extends even further. It serves as a dual-purpose tool, simultaneously enhancing your Teams experience and functioning as a plugin for Microsoft 365 Copilot.

Plugins extend Microsoft 365 Copilot capabilities allowing it to access apps, data, and services, facilitating user actions across a plethora of surfaces. When you build a message extension, Copilot understands how to interact with it, so when your user turns to Copilot for assistance in natural language, it now understands these requests and effectively translate them into tangible actions your message extension is capable of. In essence, your users’ words become the catalyst for Copilot’s actions, calling the appropriate plugin for their request.



In simple terms, Teams message extensions serve as plugins for Microsoft 365 Copilot. So, when you build a message extension, you’re not only improving the app experience for your Teams users, but you’re also creating plugins that expand the features of Microsoft 365 Copilot.

You have several options to expand Microsoft 365 Copilot. You can use ChatGPT plugins, create new plugins from Power Platform Connectors or an OpenAPI specification endpoint, or link to outside data with Microsoft Graph Connectors. However, if you’re working on a Teams message extension, you’re already serving your users in Teams today and at the same time, you’re getting a head start for when Microsoft 365 Copilot is generally available. Plugins for Microsoft 365 Copilot will be available soon.

How to get started?

Creating message extensions is straightforward and simple. With the Teams Toolkit you can easily integrate message extension functionality into your existing app with just a few lines of code.

You can check out the following resources to get started:

Code samples: Check out this page for code snippets and build your first message extension in a few minutes.

Tutorial: Check out this video tutorial to see how to create a Teams message extensions.

Building for a new era of Teams apps…

Message extensions are not only a great way to improve the user experience of your Teams app today, but also a powerful tool to showcase your app’s functionality and value in Microsoft 365 Copilot in the upcoming months. By enabling users to interact with your app directly from the message compose box, the message itself or via plugins in Microsoft 365 Copilot, you can provide them with relevant information, rich content, and seamless workflows. Whether you want to create a search-based or an action-based message extension, you can use the Microsoft Teams Toolkit for Visual Studio Code or Visual Studio to simplify the development process and get started quickly.

It is time to build message extensions if you want to enhance your Teams app experience and attract new users in the era of AI. Your users will thank you for it!

More resources:


Discussion is closed.

Feedback usabilla icon