Updates from: 04/28/2022 01:12:55
Service Microsoft Docs article Related commit history on GitHub Change details
platform Enable And Configure Your App For Teams Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/enable-and-configure-your-app-for-teams-meetings.md
Teams meetings provide a collaborative experience for your organization. Configu
### Before a meeting
-Before a meeting, users can add tabs, bots, and messaging extensions. Users with organizer and presenter roles can add tabs to a meeting.
+Before a meeting, users can add tabs, bots, and message extensions. Users with organizer and presenter roles can add tabs to a meeting.
To add a tab to a meeting:
To add a tab to a meeting:
1. In the tab gallery that appears, select the app that you want to add and follow the steps as required. The app is installed as a tab.
-To add a messaging extension to a meeting:
+To add a message extension to a meeting:
1. Select the ellipses ●●● located in the compose message area in the chat.
-1. Select the app that you want to add and follow the steps as required. The app is installed as a messaging extension.
+1. Select the app that you want to add and follow the steps as required. The app is installed as a message extension.
To add a bot to a meeting:
The `meetingSidePanel` enables you to customize experiences in a meeting that al
To use the `userContext` API to route requests, see [Teams SDK](../tabs/how-to/access-teams-context.md#user-context). For more information, see [Teams authentication flow for tabs](../tabs/how-to/authentication/auth-flow-tab.md). Authentication flow for tabs is similar to the authentication flow for websites. So tabs can use OAuth 2.0 directly. For more information, see [Microsoft identity platform and OAuth 2.0 authorization code flow](/azure/active-directory/develop/v2-oauth2-auth-code-flow).
-Messaging extension works as expected when a user is in an in-meeting view. The user can post compose message extension cards. AppName in-meeting is a tooltip that states the app name in-meeting U-bar.
+Message extension works as expected when a user is in an in-meeting view. The user can post compose message extension cards. AppName in-meeting is a tooltip that states the app name in-meeting U-bar.
> [!NOTE] > Use version 1.7.0 or higher of [Teams SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), as versions prior to it do not support the side panel.
platform Meeting App Extensibility https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/meeting-app-extensibility.md
Title: Unified meetings apps
-description: Learn about Teams meeting lifecycle and user's meeting experience in desktop and mobile environment, participant and user roles and types, integrate bots and messaging extension in meeting lifecycle.
+description: Learn about Teams meeting lifecycle and user's meeting experience in desktop and mobile environment, participant and user roles and types, integrate bots and message extension in meeting lifecycle.
ms.localizationpriority: none
Teams unified meetings apps are based on the following concepts:
* There are three distinct participant roles in a meeting: organizer, presenter, and attendee. For more information, see [roles in a Teams meeting](https://support.microsoft.com/office/roles-in-a-teams-meeting-c16fa7d0-1666-4dde-8686-0a0bfe16e019). * There are various [user types](/microsoftteams/non-standard-users#:~:text=An%20anonymous%20user%20is%20a,their%20Microsoft%20or%20organization's%20account.) in a meeting: in-tenant, [guest](/microsoftteams/guest-access), [federated](/microsoftteams/manage-external-access), and anonymous users.
-This article covers the information about meeting lifecycle and how to integrate tabs, bots, and messaging extensions. It identifies different participant roles and user types.
+This article covers the information about meeting lifecycle and how to integrate tabs, bots, and message extensions. It identifies different participant roles and user types.
## Meeting lifecycle
-A meeting lifecycle consists of pre-meeting, in-meeting, and post-meeting app experience. You can integrate tabs, bots, and messaging extensions in each stage of the meeting lifecycle.
+A meeting lifecycle consists of pre-meeting, in-meeting, and post-meeting app experience. You can integrate tabs, bots, and message extensions in each stage of the meeting lifecycle.
> [!NOTE] > Meeting extensions such as bots, cards, message extensions, and message actions are supported in the web client. However, hosted experiences such as tabs, content bubbles, and share to stage are not currently fully supported.
The following image displays the **Contoso** tab with results of poll and feedba
Bots that are enabled in group chat scope start functioning in meetings. To implement bots, start with [build a bot](../build-your-first-app/build-bot.md) and then continue with [create apps for Teams meetings](../apps-in-teams-meetings/API-references.md#meeting-apps-api-references).
-### Integrate messaging extensions into the meeting lifecycle
+### Integrate message extensions into the meeting lifecycle
-To implement messaging extension, start with [build a messaging extension](../messaging-extensions/how-to/create-messaging-extension.md) and then continue with [create apps for Teams meetings](../apps-in-teams-meetings/API-references.md#meeting-apps-api-references).
+To implement message extension, start with [build a message extension](../messaging-extensions/how-to/create-messaging-extension.md) and then continue with [create apps for Teams meetings](../apps-in-teams-meetings/API-references.md#meeting-apps-api-references).
The Teams unified meetings apps allow you to design your app based on participant roles in a meeting.
A guest or anonymous user can't add, remove, or uninstall apps.
The following table provides the user types and lists the features that each user can access:
-| User type | Tabs | Bots | Messaging extensions | Adaptive Cards | Task modules | In-meeting dialog | Meeting stage |
+| User type | Tabs | Bots | Message extensions | Adaptive Cards | Task modules | In-meeting dialog | Meeting stage |
| :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | | Anonymous user | Not available | Not available | Not available | Interactions in the meeting chat are allowed. | Interactions in the meeting chat from Adaptive Card are allowed. | Not available | Not available | | Guest, part of the tenant Azure AD | Interaction is allowed. Create, update, and delete aren't allowed. | Not available | Not available | Interactions in the meeting chat are allowed. | Interactions in the meeting chat from Adaptive Card are allowed. | Available | Can start, view, and interact with app on the meeting stage only on Teams desktop client |
The following table provides the user types and lists the features that each use
* [Tab](../tabs/what-are-tabs.md#understand-how-tabs-work) * [Bot](../bots/what-are-bots.md)
-* [Messaging extension](../messaging-extensions/what-are-messaging-extensions.md)
+* [Message extension](../messaging-extensions/what-are-messaging-extensions.md)
* [Design your app](../apps-in-teams-meetings/design/designing-apps-in-meetings.md)
platform Teams Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
The following illustration gives you an idea of the meeting app extensibility fe
This article provides an overview of meeting app extensibility, API references, enable and configure apps for meetings, and custom Together Mode scenes in Teams.
-Enhance your meeting experience by using the meeting extensibility feature. This feature enables you to integrate your apps within meetings. It also includes different stages of a meeting lifecycle, where you can integrate tabs, bots, and messaging extensions. You can identify various participant roles and user types, get meeting events, and generate in-meeting dialogs.
+Enhance your meeting experience by using the meeting extensibility feature. This feature enables you to integrate your apps within meetings. It also includes different stages of a meeting lifecycle, where you can integrate tabs, bots, and message extensions. You can identify various participant roles and user types, get meeting events, and generate in-meeting dialogs.
To customize Teams with apps for meetings, enable your apps for Teams meetings by updating the app manifest and also configure the apps for meeting scenarios.
platform Bot Basics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-basics.md
The list of Teams activity handlers called from the `OnInvokeActivityAsync` Team
| task/fetch | `OnTeamsTaskModuleFetchAsync` | This method can be overridden in a derived class to provide logic when a task module is fetched. | | task/submit | `OnTeamsTaskModuleSubmitAsync` | This method can be overridden in a derived class to provide logic when a task module is submitted. |
-The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to messaging extensions. For more information, see [what are messaging extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
+The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to message extensions. For more information, see [what are message extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
# [JavaScript](#tab/javascript)
The list of Teams activity handlers called from the `onInvokeActivity` Teams act
| task/fetch | `handleTeamsTaskModuleFetch` | This method can be overridden in a derived class to provide logic when a task module is fetched. | | task/submit | `handleTeamsTaskModuleSubmit` | This method can be overridden in a derived class to provide logic when a task module is submitted. |
-The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to messaging extensions. For more information, see [what are messaging extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
+The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to message extensions. For more information, see [what are message extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
# [Python](#tab/python)
The list of Teams activity handlers called from the `on_invoke_activity` Teams a
| task/fetch | `on_teams_task_module_fetch` | This method can be overridden in a derived class to provide logic when a task module is fetched. | | task/submit | `on_teams_task_module_submit` | This method can be overridden in a derived class to provide logic when a task module is submitted. |
-The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to messaging extensions. For more information, see [what are messaging extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
+The invoke activities listed in this section are for conversational bots in Teams. The Bot Framework SDK also supports invoke activities specific to message extensions. For more information, see [what are message extensions](https://aka.ms/azure-bot-what-are-messaging-extensions).
platform Bot Features https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-features.md
The [Bot Framework](https://dev.botframework.com/) is a rich SDK used to create
* Use specialized card types like the Office 365 connector card. * Set Teams-specific channel data on activities.
-* Process messaging extension requests.
+* Process message extension requests.
> [!IMPORTANT] > You can develop Teams apps in any web programming technology and call the [Bot Framework REST APIs](/bot-framework/rest-api/bot-framework-rest-overview) directly. But you must perform token handling in all cases.
platform Calls Meetings Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/calls-meetings-bots-overview.md
Calls in Teams can be purely audio or audio and video. Instead of audio or video
Calls are either peer-to-peer between a person and your bot, or multiparty between your bot and two or more people in a group call.
-![Calling types](~/assets/images/calls-and-meetings/call-types.png)
Following are the different call types and permissions required for the call:
There are two types of signals, incoming call and in-call. Following are the dif
* To receive an incoming call, you enter an endpoint in your bot settings. This endpoint receives a notification when an incoming call is initiated. You can answer the call, reject it, or redirect it to someone else.
- ![Call handling](~/assets/images/calls-and-meetings/call-handling.png)
+ :::image type="content" source="~/assets/images/calls-and-meetings/call-handling.png" alt-text="Call handling"border="true":::
* When a bot is in a call, there are APIs for muting and unmuting the bot and to start or stop sharing video or desktop content with other participants. * The bot can also access the list of participants, invite new participants, and mute them.
platform Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/design/bots.md
DonΓÇÖt forget: In the bot command menu (**What can I do?**), you must also prov
### Tours
-You can include a tour with welcome messages and if the bot responds to something like a ΓÇ£helpΓÇ¥ command. A tour is the most effective way to describe what your bot can do. If applicable, theyΓÇÖre also great for describing your appΓÇÖs other features. For example, include screenshots of your messaging extension.
+You can include a tour with welcome messages and if the bot responds to something like a ΓÇ£helpΓÇ¥ command. A tour is the most effective way to describe what your bot can do. If applicable, theyΓÇÖre also great for describing your appΓÇÖs other features. For example, include screenshots of your message extension.
> [!IMPORTANT] > Tours should be accessible without having to sign in.
platform Bots Filesv4 https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/bots-filesv4.md
To upload a file to a user:
The following desktop message contains a simple attachment object requesting user permission to upload the file:
-![Consent card requesting user permission to upload file](../../assets/images/bots/bot-file-consent-card.png)
The following mobile message contains an attachment object requesting user permission to upload the file:
The following table describes the content properties of the attachment:
Fetch inline images that are part of the message using the Bot's access token.
-![Inline image](../../assets/images/bots/inline-image.png)
The following code shows an example of fetching inline images from message:
platform Channel Messages With Rsc https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/channel-messages-with-rsc.md
The `ChannelMessage.Read.Group` RSC permission is extended to bots. With user co
## Update app manifest For your bot to receive all channel messages, RSC must be configured in the Teams app manifest with the `ChannelMessage.Read.Group` permission specified in the `webApplicationInfo` property.+ ![Update app manifest](~/bots/how-to/conversations/Media/appmanifest.png) + The following is an example of the `webApplicationInfo` object: * **id**: Your Microsoft Azure Active Directory (Azure AD) app ID. This can be the same as your bot ID.
To sideload in a team to test, whether all channel messages in a team with RSC a
![Managing apps in team](~/bots/how-to/conversations/Media/managingteam.png)
+ :::image type="content" source="Media/managingteam.png" alt-text="managing team"border="true":::
+ 1. Select **Apps**. Multiple apps appear. 1. Select **Upload a custom app** from the lower right corner.
- ![Uploading custom app](~/bots/how-to/conversations/Media/uploadingcustomapp.png)
-
+ :::image type="content" source="Media/uploadingcustomapp.png" alt-text="uploading custom app":::
+
1. Select the app package from the **Open** dialog box. 1. Select **Open**.
- ![Selecting app package](~/bots/how-to/conversations/Media/selectapppackage.png)
+ :::image type="content" source="Media/selectapppackage.png" alt-text="Select the app package"lightbox="Media/selectapppackage.png"border="true":::
1. Select **Add** from the app details pop-up, to add the bot to your selected team.
- ![Adding the bot](~/bots/how-to/conversations/Media/addingbot.png)
+ :::image type="content" source="Media/addingbot.png" alt-text="Adding bot"lightbox="Media/addingbot.png"border="true":::
1. Select a channel and enter a message in the channel for your bot. The bot receives the message without being @mentioned.
- ![Bot receives message](~/bots/how-to/conversations/Media/botreceivingmessage.png)
+ :::image type="content" source="Media/botreceivingmessage.png" alt-text="Bot receiving message"lightbox="Media/botreceivingmessage.png"border="true":::
## Code snippets
platform Conversation Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/conversation-messages.md
Form completion message appears in Adaptive Cards while sending a response to th
* **Error**: When a response sent to the bot is unsuccessful, **Something went wrong, Try again** message appears.
- ![Error message](~/assets/images/Cards/error-message.png)
+ :::image type="content" source="../../../assets/images/Cards/error-message.png" alt-text="Error message"border="true":::
* **Success**: When a response sent to the bot is successful, **Your response was sent to the app** message appears.
- ![Success message](~/assets/images/Cards/success.PNG)
You can select **Close** or switch chat to dismiss the message.
platform Subscribe To Conversation Events https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
async def on_installation_update(self, turn_context: TurnContext):
## Uninstall behavior for personal app with bot
-When you uninstall an app, the bot is also uninstalled. When a user sends a message to your app, they receive a 403 response code. Your bot receives a 403 response code for new messages posted by your bot. The post uninstall behavior for bots in the personal scope with the Teams and groupChat scopes are now aligned. You cannot send or receive messages after an app has been uninstalled.
+> [!NOTE]
+> Uninstall behavior for personal app with bot is currently available only in [public developer preview](../../../resources/dev-preview/developer-preview-intro.md).
+When you uninstall an app, the bot is also uninstalled. When a user sends a message to your app, they receive a 403 response code. Your bot receives a 403 response code for new messages posted by your bot. The post uninstall behavior for bots in the personal scope with the Teams and groupChat scopes are now aligned. You cannot send or receive messages after an app has been uninstalled.
-<img src="~/assets/images/bots/uninstallbot.png" alt="Uninstall event" width="900" height="900"/>
## Event handling for install and uninstall events
platform Create A Bot Commands Menu https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/create-a-bot-commands-menu.md
A prerequisite to create a command menu for your bot is that you must edit an ex
> [!NOTE] > If you do not have **App Studio**, you can download it. For more information, see [installing App Studio](~/concepts/build-and-test/app-studio-overview.md#installing-app-studio).
- ![App Studio](./conversations/media/AppStudio.png)
+ :::image type="content" source="/media/AppStudio.png" alt-text="Installing app studio"lightbox="media/AppStudio.png"border="true":::
2. In **App Studio**, select the **Manifest editor** tab. If you do not have an existing app package, you can create or import an existing app. For more information, see [update an app package](~/get-started/deploy-csharp-app-studio.md).
A prerequisite to create a command menu for your bot is that you must edit an ex
4. In the right pane of the **Manifest editor** and in the **Commands** section, select **Add**. The **New Command** screen appears.
- ![App Studio commands menu Add button](./conversations/media/AppStudio-CommandMenu-Add.png)
+ :::image type="content" source="/media/AppStudio-CommandMenu-Add.png" alt-text="Select the app package"lightbox="/media/AppStudio-CommandMenu-Add.png"border="true":::
5. Enter the **Command text** that must appear as the command menu for your bot.
A prerequisite to create a command menu for your bot is that you must edit an ex
7. Select the **Scope** check boxes to select where this command menu must appear, and select **Save**.
- ![App Studio new commands menu button](./conversations/media/AppStudio-NewCommandMenu.png)
### Create a command menu for your bot by editing Manifest.json
platform Locally With An Ide https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/debug/locally-with-an-ide.md
For more information, see [complete instructions on the Bot Framework Emulator](
> [!Important] > Talking to your bot by ID is intended for basic testing purposes only. Any Teams-specific functionality you have added to your bot fails to work.
-You can also initiate a conversation with your bot by using its ID. When a bot has been added through one of these methods it is not addressable in channel conversations and you cannot take advantage of other Microsoft Teams app capabilities like tabs or messaging extensions. You can initiate a conversation in one of the following ways:
+You can also initiate a conversation with your bot by using its ID. When a bot has been added through one of these methods it is not addressable in channel conversations and you cannot take advantage of other Microsoft Teams app capabilities like tabs or message extensions. You can initiate a conversation in one of the following ways:
* On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Channels**, select **Add to Microsoft Teams**. Microsoft Teams launches a personal chat with your bot.
platform What Are Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/what-are-bots.md
A bot is also referred to as a chatbot or conversational bot. It is an app that
Conversational bots allow users to interact with your web service using text, interactive cards, and task modules.
-![Invoke bot using text](~/assets/images/invokebotwithtext.png)
-![Invoke bot using card](~/assets/images/invokebotwithcard.png)
-<img src="~/assets/images/task-module-example.png" alt="Invoke bot using task module" width="400"/>
Conversational bots are incredibly flexible. Bots can handle a few basic commands or complex tasks that involve artificial intelligence and natural language processing. Bots can be part of a larger application or be standalone.
platform App Fundamentals Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/app-fundamentals-overview.md
Understanding the user and their concern are the first indicators of how a Teams
:::image type="content" source="../assets/images/overview/teams-solution.png" alt-text="Conceptual representation of the Teams solution." border="true":::
- Your apps appear on Teams as Tabs, Bots, Messaging Extensions, Connectors and Webhooks, or as a multi-capability app. These capabilities are powered at the backend by Azure, Microsoft Graph, SharePoint, and Power apps that help automate tasks and processes.
+ Your apps appear on Teams as Tabs, Bots, Message Extensions, Connectors and Webhooks, or as a multi-capability app. These capabilities are powered at the backend by Azure, Microsoft Graph, SharePoint, and Power apps that help automate tasks and processes.
Together, these capabilities bring your app solution to life.
The following table includes Teams features and availability for GCC, GCC-High,
| Custom or Lob tab apps | ✔️ | ✔️ | ✔️ | | Sideloading apps | ✔️ | ❌ | ❌ | | Custom or Lob bots | ✔️ | ❌ | ❌ |
-| Custom messaging extensions | ❌ | ❌ | ❌ |
+| Custom message extensions | ❌ | ❌ | ❌ |
| Custom connectors | ❌ | ❌ | ❌ | The following list helps to identify the availability of GCC, GCC-High, and DOD for the features:
platform Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/authentication/authentication.md
In Teams, there are two different authentication flows for the app. Perform a tr
## Web-based authentication flow
-Use the web-based authentication flow for [tabs](~/tabs/what-are-tabs.md) and choose to use it with [conversational bots](~/bots/what-are-bots.md) or [messaging extensions](~/messaging-extensions/what-are-messaging-extensions.md). Use the [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client) in a web content page to enable authentication. After enabling authentication, embed the content page in a tab, a configuration page, or a task module. For more information on web-based authentication flow, see:
+Use the web-based authentication flow for [tabs](~/tabs/what-are-tabs.md) and choose to use it with [conversational bots](~/bots/what-are-bots.md) or [message extensions](~/messaging-extensions/what-are-messaging-extensions.md). Use the [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client) in a web content page to enable authentication. After enabling authentication, embed the content page in a tab, a configuration page, or a task module. For more information on web-based authentication flow, see:
* [Add authentication to the Teams bot](~/bots/how-to/authentication/add-authentication.md) describes how to use web-based authentication flow with a conversational bot. * [Authentication flow in tabs](~/tabs/how-to/authentication/auth-flow-tab.md) describes how tab authentication works in Teams. This shows a typical web-based authentication flow used for tabs.
provides Bot authentication v3 SDK sample.
| **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | ||||-|| | Bot authentication | This sample shows how to get started with authentication in a bot for Microsoft Teams. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/46.teams-auth) |
-| Tab, Bot and Messaging Extension (ME) SSO | This sample shows SSO for Tab, Bot and ME - search, action, linkunfurl. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/nodejs) | Not available |
+| Tab, Bot and Message Extension (ME) SSO | This sample shows SSO for Tab, Bot and ME - search, action, linkunfurl. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/nodejs) | Not available |
## Configure the identity provider
After the iOS 14 update, Apple has blocked the [third-party cookie](https://webk
* [Microsoft Teams authentication flow for tabs](~/tabs/how-to/authentication/auth-flow-tab.md) * [Single sign-on support for bots](~/bots/how-to/authentication/auth-aad-sso-bots.md)
-* [Add authentication to your messaging extension](~/messaging-extensions/how-to/add-authentication.md)
+* [Add authentication to your message extension](~/messaging-extensions/how-to/add-authentication.md)
platform App Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/app-studio-overview.md
After you have supplied your bot's information, you can now optionally define a
This section allows you to add a connector to your app. If you already have registered an Office 365 connector, choose **Set up** and enter the name and ID of the connector. If you want a new connector click **Register** to be taken to the Connector Developer Dashboard in your browser.
-##### Messaging Extensions
+##### Message Extensions
-[Messaging extensions](~/messaging-extensions/what-are-messaging-extensions.md) are a powerful way for users to engage with your app within Microsoft Teams. Users can query for information from your service and post that information in the form of cards, right into the channel or chat conversation.
+[Message extensions](~/messaging-extensions/what-are-messaging-extensions.md) are a powerful way for users to engage with your app within Microsoft Teams. Users can query for information from your service and post that information in the form of cards, right into the channel or chat conversation.
-Messaging extensions are powered by Bot Framework bots, so they require a configured bot to operate. If you have the name and Bot Framework ID of the bot you would like to power the messaging extension, enter it. Otherwise, click **Register** to create one and enter the information afterward. Select whether the configuration of a messaging extension can be updated by the user.
+Message extensions are powered by Bot Framework bots, so they require a configured bot to operate. If you have the name and Bot Framework ID of the bot you would like to power the message extension, enter it. Otherwise, click **Register** to create one and enter the information afterward. Select whether the configuration of a message extension can be updated by the user.
-Once you have the underlying bot configured, define the commands and parameters which the messaging extension can accept.
+Once you have the underlying bot configured, define the commands and parameters which the message extension can accept.
Each command requires a title and an ID. The command can optionally contain a description for the user. Each command can support up to five parameters, each of which requires:
Each command requires a title and an ID. The command can optionally contain a de
* An optional description. > [!NOTE]
-> To create messaging extension using app studio, see [create messaging extension using app studio](~/resources/create-messaging-extension-using-appstudio.md).
+> To create message extension using app studio, see [create message extension using app studio](~/resources/create-messaging-extension-using-appstudio.md).
#### Test and Distribute
platform Apps Package https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/apps-package.md
When publishing to the Teams store, make sure your manifest references to the la
Your app package must include two .png versions of your app icon: A color and outline version. > [!Note]
-> If your app has a bot or messaging extension, your icons also will be included in your Microsoft Azure Bot Service registration.
+> If your app has a bot or message extension, your icons also will be included in your Microsoft Azure Bot Service registration.
For your app to pass Teams store review, these icons must meet the following size requirements.
Teams automatically crops your icon to display a square with rounded corners in
An outline icon displays in two scenarios: * When your app is in use and ΓÇ£hoistedΓÇ¥ on the app bar on the left side of Teams.
-* When a user pins your app's messaging extension.
+* When a user pins your app's message extension.
The icon must be 32x32 pixels. It can be white with a transparent background or transparent with a white background (no other colors are permitted). The outline icon should not have any extra padding around the symbol.
Here's how app icons appear in different Teams capabilities and contexts.
:::image type="content" source="../../assets/images/icons/bot-icon-example.png" alt-text="Example showing how an app icon looks on a bot inside channel." border="false":::
-#### Messaging extension
+#### Message extension
:::image type="content" source="../../assets/images/icons/messaging-extension-icon-example.png" alt-text="<alt text>" border="false":::
platform Deep Links https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/deep-links.md
Provide the following fields:
> * Personal tabs have a `personal` scope, while channel and group tabs use `team` or `group` scopes. The two tab types have a slightly different syntax since only the configurable tab has a `channel` property associated with its context object. See the [manifest](~/resources/schem) reference for more information on tab scopes. > * Deep links work properly only if the tab was configured using the v0.4 or later library and because of that has an entity ID. Deep links to tabs without entity IDs still navigate to the tab but cannot provide the sub entity ID to the tab.
-Use the following format for a deep link that you can use in a bot, connector, or messaging extension card:
+Use the following format for a deep link that you can use in a bot, connector, or message extension card:
`https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>`
As an example use case, if youΓÇÖre returning an Office 365 user profile from yo
### Generate a deep link to a chat
-Use this format for a deep link that you can use in a bot, connector, or messaging extension card:
+Use this format for a deep link that you can use in a bot, connector, or message extension card:
`https://teams.microsoft.com/l/chat/0/0?users=<user1>,<user2>,...&topicName=<chat name>&message=<precanned text>`
To use this deep link with your bot, specify this as the URL target in your card
## Generate deep links to file in channel
-The following deep link format can be used in a bot, connector, or messaging extension card:
+The following deep link format can be used in a bot, connector, or message extension card:
`https://teams.microsoft.com/l/file/<fileId>?tenantId=<tenantId>&fileType=<fileType>&objectURL=<objectURL>&baseUrl=<baseURL>&serviceName=<Name>&threadId=<threadId>&groupId=<groupId>`
The query parameters are:
> [!NOTE] > You can see `threadId` and `groupId` in the URL from the channel.
-The following deep link format is used in a bot, connector, or messaging extension card:
+The following deep link format is used in a bot, connector, or message extension card:
`https://teams.microsoft.com/l/file/<fileId>?tenantId=<tenantId>&fileType=<fileType>&objectURL=<objectURL>&baseUrl=<baseURL>&serviceName=<Name>&threadId=<threadId>&groupId=<groupId>`
Create deeplinks for the app after the app is listed in the Teams store. To crea
## Deep linking for SharePoint Framework tabs
-The following deep link format can be used in a bot, connector or messaging extension card:
+The following deep link format can be used in a bot, connector or message extension card:
`https://teams.microsoft.com/l/entity/<AppId>/<EntityId>?webUrl=<entityWebUrl>/<EntityName>` > [!NOTE]
You can create deep links to the Teams built-in scheduling dialog. This is espec
### Generate a deep link to the scheduling dialog
-Use the following format for a deep link that you can use in a bot, Connector, or messaging extension card:
+Use the following format for a deep link that you can use in a bot, Connector, or message extension card:
`https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...` Example: `https://teams.microsoft.com/l/meeting/new?subject=test%20subject&attendees=joe@contoso.com,bob@contoso.com&startTime=10%2F24%2F2018%2010%3A30%3A00&endTime=10%2F24%2F2018%2010%3A30%3A00&content=ΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïtest%3AcontentΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇïΓÇï`
platform Apps Publish Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/apps-publish-overview.md
For more information, see [manage your apps in the Teams admin center](/Microsof
In GCC Teams environments, compliant Microsoft apps are enabled by default. Before publishing an app, however, make sure that all the app's endpoints comply with your GCC organization's requirements. For more information, see [Government Community Cloud](../app-fundamentals-overview.md#government-community-cloud). > [!IMPORTANT]
->If your app includes a bot or messaging extension, you must select the **Microsoft Teams for Government** option when setting up a channel between your bot and Teams in Azure. For more information, see [connect a bot to channels](/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0&preserve-view=true).
+>If your app includes a bot or message extension, you must select the **Microsoft Teams for Government** option when setting up a channel between your bot and Teams in Azure. For more information, see [connect a bot to channels](/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0&preserve-view=true).
## Publish your app to the Teams store
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/post-publish/overview.md
If you make any of the following changes to your app, however, your existing use
* Change the bot ID. * Modify a bot's one-way notification configuration. * Modify a bot's support for uploading and downloading files.
-* Add or remove a messaging extension.
+* Add or remove a message extension.
* Add a personal tab. * Add a channel and group tab. * Add a connector.
platform Teams Store Validation Guidelines https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md
Apps running on the iOS or Android version of Teams must adhere to the following
:::image type="icon" source="../../../../assets/icons/certificate-icon-16.png" border="false"::: This section is inline with [Microsoft commercial marketplace policy number 1140.3.2](/legal/marketplace/certification-policies#114032-bots-and-messaging-extension).
-For apps that use the Microsoft Azure Bot Service (such as bots and messaging extensions), you must follow all requirements defined in the Microsoft [Online Services Terms](https://www.microsoftvolumelicensing.com/DocumentSearch.aspx?Mode=3&DocumentTypeId=46).
+For apps that use the Microsoft Azure Bot Service (such as bots and message extensions), you must follow all requirements defined in the Microsoft [Online Services Terms](https://www.microsoftvolumelicensing.com/DocumentSearch.aspx?Mode=3&DocumentTypeId=46).
Bots must always ask permission to upload a file and display a confirmation message.
Teams apps must respond within a reasonable timeframe or show a loading or typin
* Tabs must respond within two seconds or display a loading message or warning. * Bots must respond to user commands within two seconds or display a typing indicator.
-* Messaging extensions must respond to user commands within two seconds.
+* Message extensions must respond to user commands within two seconds.
* Notifications must display within two seconds of the user action. ## App package and store listing
App packages must be correctly formatted and include all required information an
The Teams app manifest defines your app's configuration. * Your manifest must conform to a publicly released manifest schema. For more information, see [manifest reference](~/resources/schem). Don't submit your app using a preview version of the manifest.
-* If your app includes a bot or messaging extension, details in the app manifest must be consistent with Bot Framework metadata including bot name, logo, privacy policy link, and terms of service link.
+* If your app includes a bot or message extension, details in the app manifest must be consistent with Bot Framework metadata including bot name, logo, privacy policy link, and terms of service link.
* If your app uses Azure Active Directory for authentication, include the Microsoft Azure Active Directory (Azure AD) Application (client) ID in the manifest. For more information, see the [manifest reference](~/resources/schem#webapplicationinfo). ### App icons
Icons are one of the main elements people see when browsing the Teams store. You
* The color version of your icon must be 192x192 pixels. Your icon symbol can be any color or colors, but it must sit on a solid or fully transparent square background. * The outline version of your icon is displayed in the following scenarios: * When your app is in use and **hosted** on the app bar on the left side of Teams.
- * When a user pins your app's messaging extension.
+ * When a user pins your app's message extension.
* The outline must be 32x32 pixels and can be white with a transparent background or transparent with a white background. The icon must not have any extra padding around the symbol.
Design your app with [basic](~/concepts/design/design-teams-app-basic-ui-compone
* If your app functionality requires changes in settings, include a **Settings** tab. [*Suggested Fix*] * Tabs must follow Teams interaction design such as, in-page navigation, position and use of dialogs, information hierarchies, and so on. For more information, see [Microsoft Teams Fluent UI kit](~/concepts/design/design-teams-app-basic-ui-components.md)
-* Tab content in the iframe must not include features that mimic Teams core capabilities. For example, bots, messaging extensions, calling, meeting, and so on.
+* Tab content in the iframe must not include features that mimic Teams core capabilities. For example, bots, message extensions, calling, meeting, and so on.
* Content in the landing page of the configurable tabs must be contextually same for all members of the channel.
Apps that provide only notifications with content such as **You have a new notif
> [!TIP] > Preview information and provide basic inline user actions in the posted card so that the user is not required to navigate outside Teams for all actions (irrespective of complexity).
-## Messaging extensions
+## Message extensions
:::image type="icon" source="../../../../assets/icons/certificate-icon-16.png" border="false"::: This section is inline with [Microsoft commercial marketplace policy number 1140.4.4](/legal/marketplace/certification-policies#114044-messaging-extensions).
-If your app includes a messaging extension, ensure it adheres to these guidelines.
+If your app includes a message extension, ensure it adheres to these guidelines.
> [!TIP]
-> For more information on creating a high-quality app experience, see the [Teams messaging extension design guidelines](~/messaging-extensions/design/messaging-extension-design.md).
+> For more information on creating a high-quality app experience, see the [Teams message extension design guidelines](~/messaging-extensions/design/messaging-extension-design.md).
### Action commands
-Action-based messaging extensions must do the following:
+Action-based message extensions must do the following:
* Allow users to trigger actions on a message without completing intermediate steps, such as sign in.
Action-based messaging extensions must do the following:
### Preview links (link unfurling)
-Messaging extensions must preview recognized links in the Teams compose box. Don't add domains that are outside your control (either absolute URLs or wildcards). For example, `yourapp.onmicrosoft.com` is valid but `*.onmicrosoft.com` isn't valid. Top-level domains also are prohibited. For example, `*.com` or `*.org`. [*Mandatory Fix*]
+Message extensions must preview recognized links in the Teams compose box. Don't add domains that are outside your control (either absolute URLs or wildcards). For example, `yourapp.onmicrosoft.com` is valid but `*.onmicrosoft.com` isn't valid. Top-level domains also are prohibited. For example, `*.com` or `*.org`. [*Mandatory Fix*]
### Search commands
-* Search based messaging extensions must provide text that helps the users to search effectively. [*Mandatory Fix*]
+* Search based message extensions must provide text that helps the users to search effectively. [*Mandatory Fix*]
:::row::: :::column span="":::
Messaging extensions must preview recognized links in the Teams compose box. Don
:::column-end::: :::row-end:::
-### Search based messaging extension only apps
+### Search based message extension only apps
[*Mandatory Fix*]
-Apps that consist of search-based messaging extension provide user value by sharing cards that allow for contextual conversations without context switching.
+Apps that consist of search-based message extension provide user value by sharing cards that allow for contextual conversations without context switching.
-To pass validation for a search-based message extension only app, the following are required as baseline to ensure the user experience isn't broken. A card shared via a messaging extension provides value in Teams if:
+To pass validation for a search-based message extension only app, the following are required as baseline to ensure the user experience isn't broken. A card shared via a message extension provides value in Teams if:
1. Posted card provides adequate details requiring no further user action. 1. Posted card provides adequate preview information for a user to take action or decide to view further details in a link opening outside Teams.
Use the following guidelines for meeting extensions:
:::column-end::: :::row-end:::
-* Messaging extensions must function the same during meetings as they do outside meetings.
+* Message extensions must function the same during meetings as they do outside meetings.
### In-meeting tabs
platform App Structure https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/app-structure.md
ms.localizationpriority: medium
-keywords: wireframe channel chat meeting messaging extensions mobile desktop
+keywords: wireframe channel chat meeting message extensions mobile desktop
# Understand the Microsoft Teams app structure
Bots are conversational apps that integrate with Teams native messaging features
:::image type="content" source="../../assets/images/design-guidelines/app-structure-bots-desktop.png" alt-text="Conceptual image showing the front-end areas in Teams that developers can customize for bots on desktop." border="false":::
-## Messaging extensions
+## Message extensions
-Messaging extensions are shortcuts for inserting app content or acting on a message without navigating away from the conversation. Action-based messaging extensions give you more control of the experience, while Teams handles much of what renders for search-based messaging extensions.
+Message extensions are shortcuts for inserting app content or acting on a message without navigating away from the conversation. Action-based message extensions give you more control of the experience, while Teams handles much of what renders for search-based message extensions.
***Supported scopes**: Personal, Channels, Chats, Meetings* ### Mobile ### Desktop ## Meeting extensions
platform Design Teams App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-overview.md
Understand how people add, use, and manage Teams apps to make the most of each c
* [Personal apps](../../concepts/design/personal-apps.md) * [Tabs](../../tabs/design/tabs.md)
-* [Messaging extensions](../../messaging-extensions/design/messaging-extension-design.md)
+* [Message extensions](../../messaging-extensions/design/messaging-extension-design.md)
* [Bots](../../bots/design/bots.md) * [Meeting extensions](../../apps-in-teams-meetings/design/designing-apps-in-meetings.md)
platform Map Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/map-use-cases.md
Apps to interact with your data
| **If you want to...** | **Try ...** | | | |
-| Search external systems and share the results as an interactive card. | Messaging extensions with search commands |
-| Collect information to insert into a data store or run advanced searches. | Messaging extensions with action commands |
+| Search external systems and share the results as an interactive card. | Message extensions with search commands |
+| Collect information to insert into a data store or run advanced searches. | Message extensions with action commands |
| Create embedded web experiences to view, work with and share data. | Tabs | | Push data and send data out of the Teams client. | Connectors and webhooks| | Interactive modal forms from wherever you need them to collect or display information. | Task modules |
A quick way to start a process or workflow in an external system.
| **If you want to...** | **Try ...** | | | |
-| Trigger messages, allowing your users to quickly send the contents of a message to your web services. | Messaging extensions action commands |
-| Open messages from a tab, a bot, or a messaging extension to collect information before initiating a workflow. | Task modules |
+| Trigger messages, allowing your users to quickly send the contents of a message to your web services. | Message extensions action commands |
+| Open messages from a tab, a bot, or a message extension to collect information before initiating a workflow. | Task modules |
| Interact with your users through text and rich cards. | Conversational bots | | A good choice for a simple back-and-forth interaction when you don't need to build an entire conversational bot. | Outgoing webhooks |
Let's look at how Teams capabilities enable different features for your app.
For example: * Use the **tab** capability to display task modules, request device permissions, display <`iframe`> content, or using deep links.
-* Use the **messaging extension** capability to send cards, unfurl links, or take action on messages.
+* Use the **message extension** capability to send cards, unfurl links, or take action on messages.
## See also
platform Plan Responsive Tabs For Teams Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/plan-responsive-tabs-for-teams-mobile.md
# Plan responsive tabs for Teams mobile
- Teams platform offers opportunity to build apps on mobile and desktop. Your app users can prefer either desktop or mobile, or both. The users can prepare data on desktop but consume and share more data using mobile. The key to build any app is to understand and meet users' needs. There are capabilities like bots, messaging extensions, and connectors that work seamlessly on desktop and mobile. However, building tabs and task modules require planning for hosting your web experience on Teams mobile. The article guides to plan your responsive web pages on Teams mobile.
+ Teams platform offers opportunity to build apps on mobile and desktop. Your app users can prefer either desktop or mobile, or both. The users can prepare data on desktop but consume and share more data using mobile. The key to build any app is to understand and meet users' needs. There are capabilities like bots, message extensions, and connectors that work seamlessly on desktop and mobile. However, building tabs and task modules require planning for hosting your web experience on Teams mobile. The article guides to plan your responsive web pages on Teams mobile.
## Identify apps scope
platform Planning Checklist https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/planning-checklist.md
Here's a checklist of questions to consider when you plan your app. Use it as a
| # | Consider... | | | | | 1 | What happens when a user first configures your tab in a channel? |
-| 2 | If you are sharing cards with a messaging extension, does it make sense to add a small link to a learn more page to help introduce users to what else your app can do? |
+| 2 | If you are sharing cards with a message extension, does it make sense to add a small link to a learn more page to help introduce users to what else your app can do? |
| 3 | Do you expect most people to already have some context of what your app is for, or to have already used your services in another context? | | 4 | Are they coming to your app with no prior knowledge? |
platform Understand Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/understand-use-cases.md
Conversations often result in the need to do something (generate an order, revie
:::column span="":::
-#### Messaging extensions
+#### Message extensions
-With [messaging extensions](../../messaging-extensions/what-are-messaging-extensions.md), you can search and share external information. You also can act on a message, such as creating a help ticket based on the content of a channel post.
+With [message extensions](../../messaging-extensions/what-are-messaging-extensions.md), you can search and share external information. You also can act on a message, such as creating a help ticket based on the content of a channel post.
:::column-end::: :::column span=""::: :::column-end::: :::row-end:::
platform Native Device Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/device-capabilities/native-device-permissions.md
You can enrich your Teams app with native device capabilities, such as camera, m
## Native device permissions
-You must request the device permissions to access native device capabilities. The device permissions work similarly for all app constructs, such as tabs, task modules, or messaging extensions. The user must go to the permissions page in Teams settings to manage device permissions.
+You must request the device permissions to access native device capabilities. The device permissions work similarly for all app constructs, such as tabs, task modules, or message extensions. The user must go to the permissions page in Teams settings to manage device permissions.
By accessing the device capabilities, you can build richer experiences on the Teams platform, such as: * Capture and view images.
platform Feedback https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/feedback.md
Submit issues and ask general questions related to SDK and samples using the com
| **Platform outages** | Check if your issue is already raised on [Teams platform outages](https://aka.ms/TeamsPlatform/Outages) before you raise one. | | **Samples** | Submit issues with samples to respective [Microsoft Teams Samples](https://github.com/OfficeDev/Microsoft-Teams-Samples) repository.| | **Teams Toolkit or TeamsFx SDK and CLI issues** | <ul><li> :::image type="icon" source="assets/icons/GitHub-icon.png" border="false"::: [GitHub Issues](https://github.com/OfficeDev/TeamsFx/issues): Create new issues on the [TeamsFx (Microsoft Teams Framework) GitHub repository](https://github.com/OfficeDev/TeamsFx) to report issues or raise feature request. We recommend using GitHub issues for queries and to receive community help. <li> :::image type="icon" source="assets/icons/stack-overflow-icon.png" border="false"::: [Stack Overflow](https://stackoverflow.com/questions/tagged/teams-toolkit): Use the `teams-toolkit` tag to post questions. Follow the Stack Overflow guidelines such as provide a descriptive title, a concise problem statement, and details to reproduce the issue. Feature requests or broad questions are off-topic. </li> </ul> |
-| **Bot and Messaging Extension SDK issues or suggestions** | Submit issues and feature requests to the SDK repository for your bot's language ([C#](https://github.com/Microsoft/botbuilder-dotnet/), [JavaScript](https://github.com/Microsoft/botbuilder-js), or [Python](https://github.com/Microsoft/botbuilder-python)). Post How-to questions at [Stack Overflow](https://stackoverflow.com/questions/tagged/botframework%20microsoft-teams) using the `botframework` and `microsoft-teams` tag. |
+| **Bot and Message extension SDK issues or suggestions** | Submit issues and feature requests to the SDK repository for your bot's language ([C#](https://github.com/Microsoft/botbuilder-dotnet/), [JavaScript](https://github.com/Microsoft/botbuilder-js), or [Python](https://github.com/Microsoft/botbuilder-python)). Post How-to questions at [Stack Overflow](https://stackoverflow.com/questions/tagged/botframework%20microsoft-teams) using the `botframework` and `microsoft-teams` tag. |
| **Tab SDK issues or suggestions** | Submit issues and feature requests to the SDK repository for [Microsoft Teams JavaScript Library](https://github.com/OfficeDev/microsoft-teams-library-js/issues). Use the `microsoft-teams` tag to post how-to questions about the SDK at [Stack Overflow](https://stackoverflow.com/questions/tagged/microsoft-teams). | ### Documentation feedback
platform Get Started Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/get-started-overview.md
Depending on the capabilities you want for your app, choose an appropriate devel
|--|-|--|--|--| | Tabs | A full-screen embedded web experience. | Microsoft Visual Studio Code with Teams Toolkit extension, or [TeamsFx CLI](https://github.com/OfficeDev/TeamsFx/blob/dev/docs/cli/user-manual.md) if you prefer using CLI | [TeamsFx SDK](/javascript/api/@microsoft/teamsfx/?view=msteams-client-js-latest&preserve-view=true) for core libs and [Teams client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true) for UI functionalities | Web technology in general, HTML, CSS, and JavaScript (incl. React). | | Bots | A chat bot that converses with members. | Visual Studio Code with Teams Toolkit extension, or [TeamsFx CLI](https://github.com/OfficeDev/TeamsFx/blob/dev/docs/cli/user-manual.md) | [TeamsFx SDK](/javascript/api/@microsoft/teamsfx/?view=msteams-client-js-latest&preserve-view=true) and [Bot Framework SDK](https://dev.botframework.com/) | Node.js, C#, Java, and Python. |
-| Messaging extensions | Shortcuts for inserting external content into a conversation or taking action on messages. | Visual Studio Code with Teams Toolkit extension, or [TeamsFx CLI](https://github.com/OfficeDev/TeamsFx/blob/dev/docs/cli/user-manual.md) | [TeamsFx SDK](/javascript/api/@microsoft/teamsfx/?view=msteams-client-js-latest&preserve-view=true) and [Bot Framework SDK](https://dev.botframework.com/) | Node.js, C#, Java, and Python. |
+| Message extensions | Shortcuts for inserting external content into a conversation or taking action on messages. | Visual Studio Code with Teams Toolkit extension, or [TeamsFx CLI](https://github.com/OfficeDev/TeamsFx/blob/dev/docs/cli/user-manual.md) | [TeamsFx SDK](/javascript/api/@microsoft/teamsfx/?view=msteams-client-js-latest&preserve-view=true) and [Bot Framework SDK](https://dev.botframework.com/) | Node.js, C#, Java, and Python. |
*You aren't limited to using these particular stacks!*
platform Glossary https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/glossary.md
Common terms and definitions used in Teams Developer Documentation.
| Term | Definition | | | |
-| [Action command](../messaging-extensions/how-to/action-commands/define-action-command.md) | A type of messaging extension app that uses a popup to collect or display information. <br>**See also**: [Messaging extension](#m); [Search commands](#s) |
-| [Adaptive Cards](../task-modules-and-cards/what-are-cards.md) | An actionable content snippet added to a conversation by a bot or messaging extension. Use text, graphics, and buttons with these cards for rich communication. |
+| [Action command](../messaging-extensions/how-to/action-commands/define-action-command.md) | A type of message extension app that uses a popup to collect or display information. <br>**See also**: [Message extension](#m); [Search commands](#s) |
+| [Adaptive Cards](../task-modules-and-cards/what-are-cards.md) | An actionable content snippet added to a conversation by a bot or message extension. Use text, graphics, and buttons with these cards for rich communication. |
| [Anonymous user](../apps-in-teams-meetings/meeting-app-extensibility.md#user-types-in-a-meeting) | A type of participant in a Teams meeting who doesn't have an Azure AD identity and isn't federated with a tenant. They are like external users in a meeting. <br>**See also**: [Federated user](#f) | | [App Catalog](../toolkit/publish.md) | A site that stores SharePoint and Office apps for an organization's internal use. <br>**See also**: [SPFx](#s) | | [App manifest](../resources/schem) | The Teams app manifest describes how the app integrates into the Microsoft Teams product. Your manifest must conform to the [manifest schema](https://developer.microsoft.com/json-schemas/teams/v1.11/MicrosoftTeams.schema.json). |
Common terms and definitions used in Teams Developer Documentation.
| Term | Definition | | | | | [Call bot](../bots/calls-and-meetings/calls-meetings-bots-overview.md) | A bot that participates in audio or video calls and online meetings. <br> **See also**: [Chat bot](#c); [Meeting bot](#m) |
-| [Capability](../toolkit/add-capability.md) | A Teams feature you can build into your app for interacting with app users. An app capability is used to extend Teams to fit your app needs. An app may have one or more core capabilities, such as tab, bot, and messaging extension. <br>**See also**: [Device capability](#d); [Media capability](#m) |
+| [Capability](../toolkit/add-capability.md) | A Teams feature you can build into your app for interacting with app users. An app capability is used to extend Teams to fit your app needs. An app may have one or more core capabilities, such as tab, bot, and message extension. <br>**See also**: [Device capability](#d); [Media capability](#m) |
| [Chat bot](../bots/how-to/conversations/conversation-basics.md) | A bot is also referred to as a chatbot or conversational bot. It's an app that runs simple and repetitive tasks by users such as customer service or support staff. <br> **See also**: [Conversational bot](#c) | | Channel | A single place for a team to share messages, tools, and files. You can use a channel for teamwork and communication. <br>**See also**: [Conversation](#c) | | [Client secret](../bots/how-to/authentication/add-authentication.md) | The Client secret/password or a public or private key pair that is Certificate. It isn't required for native apps. <br> **See also**: [Bot](#b) | | [Cloud resources](../toolkit/add-resource.md) | A service that is available on cloud through internet that your Teams app can use. It could be storage accounts, web apps, databases, and more. | | [Collaboration app](../concepts/extensibility-points.md) | An app with capabilities for a user to work in a collaborative workspace with other users. <br> **See also**: [Standalone app](#s) |
-| [Compose Extension](../resources/schem#composeextensions) | A property in app manifest (`composeExtensions`) that refers to messaging extension capability. It's used when your extension needs to either authenticate or configure to continue. <br>**See also**: [App manifest](#a); [Messaging extension](#m) |
-| [Command box](../resources/schem) | A type of context in app manifest (`commandBox`) that you can configure to invoke a messaging extension from Teams command box. |
+| [Compose Extension](../resources/schem#composeextensions) | A property in app manifest (`composeExtensions`) that refers to message extension capability. It's used when your extension needs to either authenticate or configure to continue. <br>**See also**: [App manifest](#a); [Message extension](#m) |
+| [Command box](../resources/schem) | A type of context in app manifest (`commandBox`) that you can configure to invoke a message extension from Teams command box. |
| [Connector](../webhooks-and-connectors/what-are-webhooks-and-connectors.md) | It lets users subscribe to receive notifications and messages from the web services. Connectors expose the HTTPS endpoint for the service to post messages to Teams channels, typically in the form of cards. <br> **See also**: [Webhook](#w) | | Conversation | A series of messages sent between your Microsoft Teams app (tab or bot) and one or more users. A conversation can have three scopes: channel, personal, and group chat. <br>**See also**: [One-on-one chat](#o); [Group chat](#g); [Channel](#c) | | [Conversational bot](../bots/how-to/conversations/conversation-messages.md) | It lets a user interact with your web service using text, interactive cards, and task modules. <br>**See also** [Chat bot](#c) |
Common terms and definitions used in Teams Developer Documentation.
| Term | Definition | | | |
-| [Link unfurling](../messaging-extensions/how-to/link-unfurling.md) | A feature used with messaging extension and meeting to unfold links pasted into a compose message area. The links expand to show additional information about the link in Adaptive Cards or in the meeting stage view. |
+| [Link unfurling](../messaging-extensions/how-to/link-unfurling.md) | A feature used with message extension and meeting to unfold links pasted into a compose message area. The links expand to show additional information about the link in Adaptive Cards or in the meeting stage view. |
| [Local environment](../toolkit/teamsfx-multi-env.md#create-a-new-environment) | A default development environment created by Teams Toolkit. <br>**See also**: [Environment](#e); [Dev environment](#d) | | [Local workbench](../sbs-gs-spfx.yml) | The default option to run and debug a Teams app in Visual Studio Code that is created using SPFx. <br>**See also**: [Workbench](#w); [Teams workbench](#t) | | [Location capability](../concepts/device-capabilities/location-capability.md) | A device capability that you can integrate with your app to know the geographical location of the app user for an enhanced collaborative experience. This feature is currently available only for Teams mobile clients only. <br>**See also**: [Capability](#c); [Media capability](#m); [Device Capability](#d); [Teams Mobile](#t) |
Common terms and definitions used in Teams Developer Documentation.
| | | | [Media capability](../concepts/device-capabilities/mobile-camera-image-permissions.md) | Native device capabilities, such as, camera and microphone, that you can integrate with your Teams app. <br>**See also**: [Capability](#c); [Device capability](#d) | | [Meeting bot](../bots/calls-and-meetings/calls-meetings-bots-overview.md) | Bots that interact with Teams calls and meetings using real-time voice, video, and screen sharing. <br>**See also**: [Call bot](#c); [Chat bot](#c) |
-| [Meeting lifecycle](../apps-in-teams-meetings/meeting-app-extensibility.md#meeting-lifecycle) | It spans from pre-meeting, in-meeting, and post-meeting app experience. You can integrate tabs, bots, and messaging extensions in each stage of the meeting lifecycle. <br>**See also**: [In-meeting experience](#i) |
+| [Meeting lifecycle](../apps-in-teams-meetings/meeting-app-extensibility.md#meeting-lifecycle) | It spans from pre-meeting, in-meeting, and post-meeting app experience. You can integrate tabs, bots, and message extensions in each stage of the meeting lifecycle. <br>**See also**: [In-meeting experience](#i) |
| [Meeting stage](../sbs-meetings-stage-view.yml) | A feature of meeting extension app. It's a shared space accessible to all participants during the meeting. It helps participants interact and collaborate with app content in real time. <br>**See also**: [Stage view](#s) |
-| [Messaging extension](../messaging-extensions/what-are-messaging-extensions.md) | Messaging extensions are shortcuts for inserting app content or acting on a message. You can use a messaging extension without navigating away from the conversation. <br>**See also**: [Search commands](#s); [Action commands](#a) |
+| [Message extension](../messaging-extensions/what-are-messaging-extensions.md) | Message extensions are shortcuts for inserting app content or acting on a message. You can use a message extension without navigating away from the conversation. <br>**See also**: [Search commands](#s); [Action commands](#a) |
| [Meeting extension](../apps-in-teams-meetings/design/designing-apps-in-meetings.md) | An app that is designed to be used during the meeting lifecycle to make it more productive, such as whiteboard, dashboard, and more. | | [Microsoft 365 account](../toolkit/accounts.md#microsoft-365-developer-account-types) | Microsoft 365 account includes 25 user licenses, including the administrator, for development purposes only. | | [Microsoft 365 developer program](../toolkit/accounts.md)| The Microsoft 365 Developer Program helps you build apps that extend Microsoft 365. |
Common terms and definitions used in Teams Developer Documentation.
| | | | [Office 365 Connector](../webhooks-and-connectors/how-to/connectors-creating.md) | It lets you create a custom configuration page for your Incoming Webhook and package them as part of a Teams app. You can send messages primarily using Office 365 Connector cards and have the ability to add a limited set of card actions to them. | | [Outgoing Webhook](../webhooks-and-connectors/how-to/add-outgoing-webhook.md) | It acts as a bot and search for messages in channels using @mention. It sends notifications to external web services and responds with rich messages, which include cards and images. <br>**See also**: [Webhook](#w); [Incoming Webhook](#i) |
-| [Outlook channel](../m365-apps/extend-m365-teams-message-extension.md#add-an-outlook-channel-for-your-bot) | A feature of Teams messaging extension app that lets the users interact with it from Microsoft Outlook. |
+| [Outlook channel](../m365-apps/extend-m365-teams-message-extension.md#add-an-outlook-channel-for-your-bot) | A feature of Teams message extension app that lets the users interact with it from Microsoft Outlook. |
| [One-on-one chat](../resources/bot-v3/bot-conversations/bots-conv-personal.md) | A type of chat between a Teams personal bot app and a single user. <br>**See also**: [Group chat](#g); [Chat bot](#c) | ## P
Common terms and definitions used in Teams Developer Documentation.
| Term | Definition | | | |
-| [Search commands](../messaging-extensions/how-to/search-commands/define-search-command.md) | A type of messaging extension app that lets users search external systems and include the search result into a message using a card. <br>**See also**: [Messaging extensions](#m); [Action commands](#a) |
+| [Search commands](../messaging-extensions/how-to/search-commands/define-search-command.md) | A type of message extension app that lets users search external systems and include the search result into a message using a card. <br>**See also**: [Message extensions](#m); [Action commands](#a) |
| [Sequential workflow](../task-modules-and-cards/cards/universal-actions-for-adaptive-cards/sequential-workflows.md) | A workflow that lets a bot carry out a conversation with a user based on the user response. | | [Shared app](../concepts/extensibility-points.md#shared-app-experiences) | An app that exists in a team, channel, or chat where users can collaborate and interact. <br>**See also:** Personal app | | [SharePoint site collection](../sbs-gs-spfx.yml) | A collection site for SharePoint apps. You need to have an administrator account for this site before you can deploy your SPFx-based app on the SharePoint site. <br>**See also**: SPFx |
Common terms and definitions used in Teams Developer Documentation.
| [Tab chat](../tabs/how-to/conversational-tabs.md) | A type of tab that lets a user have a focused conversation experience in dynamic tabs. | | [Task modules](../task-modules-and-cards/what-are-task-modules.md) | A feature of Teams app to create modal popup for completing tasks, displaying videos, or dashboard. | | [Thread discussion](../tabs/design/tabs.md#thread-discussion) | A conversation posted on a channel or chat between users. <br>**See also** [Conversation](#c); [Channel](#c) |
-| [Teams](../overview.md) | Microsoft Teams is the ultimate messaging app for your organization. It's a workspace for real-time collaboration and communication, meetings, file and app sharing. |
+| [Teams](../overview.md) | Microsoft Teams is the ultimate message app for your organization. It's a workspace for real-time collaboration and communication, meetings, file and app sharing. |
| [Teams Toolkit](../toolkit/teams-toolkit-fundamentals.md) | The Microsoft Teams Toolkit enables you to create custom Teams apps directly within the Visual Studio Code environment. | | [TeamsFx](../toolkit/teamsfx-cli.md) | TeamsFx is a text-based command line interface that accelerates Teams application development. It's also called TeamsFx CLI.| | [TeamsFx SDK](../toolkit/teamsfx-sdk.md) | TeamsFx SDK is pre-configured in scaffolded project using TeamsFx toolkit or CLI. |
platform Teams Bot Samples https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/bots/teams-bot-samples.md
For complete working samples demonstrating the functionality, see the following
| Teams conversation bot | Messaging and conversation event handling. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/57.teams-conversation-bot)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/57.teams-conversation-bot)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/python/57.teams-conversation-bot) | | Authentication with OAuthPrompt| Authentication and basic messaging in Bot Framework v4. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/46.teams-auth)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/46.teams-auth)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/python/46.teams-auth) | |Teams file upload | Exchanging files with a bot in a one-to-one conversation. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/56.teams-file-upload) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/56.teams-file-upload) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/python/56.teams-file-upload) |
-| Task module | Retrieving a task module and values from cards in it for a messaging extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/54.teams-task-module) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/54.teams-task-module) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/54.teams-task-module) |
+| Task module | Retrieving a task module and values from cards in it for a message extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/54.teams-task-module) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/54.teams-task-module) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/54.teams-task-module) |
| Start new thread in a channel | Creating a new thread in a channel. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/58.teams-start-new-thread-in-channel) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/58.teams-start-new-thread-in-channel) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/58.teams-start-thread-in-channel) |
platform Get Started Use App Studio https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/get-started/get-started-use-app-studio.md
Complete the following steps to setup your bot:
1. Update the **Bot endpoint address** to `https://yourteamsapp.ngrok.io/api/messages`, and replace `yourteamsapp.ngrok.io` with the URL that you used when hosting your app. 1. Now save your text file as you must add the information from the file to your hosted app to allow secure communication with your bot.
-#### Messaging extensions
+#### Message extensions
-Messaging extensions let users ask for information from your service and post that information. The information is posted in the form of cards into the channel conversation. Messaging extensions appear at the bottom of the compose box.
+Message extensions let users ask for information from your service and post that information. The information is posted in the form of cards into the channel conversation. Message extensions appear at the bottom of the compose box.
-Complete the following steps to setup your messaging extension:
+Complete the following steps to setup your message extension:
-1. Select **Messaging extensions** under **Capabilities** in the left-hand pane of App Studio to configure the messaging extension:
+1. Select **Message extensions** under **Capabilities** in the left-hand pane of App Studio to configure the message extension:
- <img width="450px" alt="Adding a messaging extension" src="~/assets/images/get-started/Messagingextensions.png"/>
+ <img width="450px" alt="Adding a message extension" src="~/assets/images/get-started/Messagingextensions.png"/>
- The sample messaging extension is listed in the **Messaging Extensions** pane.
+ The sample message extension is listed in the **Message Extensions** pane.
-1. Select **Delete** to remove the messaging extension, select **Set up**, and follow the same steps used for [bots](#bots). The **Messaging Extension** dialog box is displayed.
+1. Select **Delete** to remove the message extension, select **Set up**, and follow the same steps used for [bots](#bots). The **Message Extension** dialog box is displayed.
1. Select the **Use existing bot** tab and **Select from one of my existing bots**. 1. Select the bot you created from the drop-down menu. Add a **Bot name** and select **Save** to close the dialog box. 1. Under the **Command** section, select **Add**. To add a search-based command, select the **Allow users to query your service for information and insert that into a message** option.
Complete the following steps to setup your messaging extension:
After entering the details of your app, complete the following steps to register your app in Teams: 1. Use **Test and distribute** of App Studio to install your app in Teams.
-1. Update your hosted application with the App ID and password for your bot. For the sample app, use the same App ID and password for both bot and messaging extension.
+1. Update your hosted application with the App ID and password for your bot. For the sample app, use the same App ID and password for both bot and message extension.
1. Select **Test and distribute** under **Finish** in the left-hand pane of App Studio: <img width="450px" alt="Testing your app" src="~/assets/images/get-started/Testanddistribute.png"/> 1. To upload your app to Teams, select the **Install** button under **Test and Distribute**:
- <img width="450px" alt="Adding a messaging extension dialog" src="~/assets/images/get-started/InstallingHelloWorld.png"/>
+ <img width="450px" alt="Adding a message extension dialog" src="~/assets/images/get-started/InstallingHelloWorld.png"/>
> [!NOTE] > If you are unable to sideload the app, verify whether you have [enabled custom app uploading](../../get-started/get-started-dotnet-app-studio.md#enable-sideloading-option).
After entering the details of your app, complete the following steps to register
1. Select the **Search** box in the **Add to a team** section and select a team to add the sample app. You can set up a special team for testing. 1. Select the **Install** button at the bottom of the dialog box.
- Your app is now available in Teams. However, the bot and the messaging extension will not work until you update the hosted applications environment with the App IDs and passwords.
+ Your app is now available in Teams. However, the bot and the message extension will not work until you update the hosted applications environment with the App IDs and passwords.
<img width="450px" alt="The finished app" src="~/assets/images/get-started/Finishedhelloworld.png"/>
platform Messaging Extension Command Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/messaging-extension-command-schema.md
| `parameter.title` | Short user-friendly parameter title or label. | Yes | 1.0 | | `parameter.inputType` | Set to the type of input required. Possible values include `text`, `textarea`, `number`, `date`, `time`, `toggle`. Default is set to `text` | No | 1.4 | | `context` | Optional array of values that defines the context the message action is available in. Possible values are `message`, `compose`, or `commandBox`. Default is `["compose", "commandBox"]`. | No | 1.5 |
-|`taskInfo`||Specify the task module to preload when using a messaging extension command| No | 1.4 |
+|`taskInfo`||Specify the task module to preload when using a message extension command| No | 1.4 |
|`taskInfo.title`|Initial dialog title|No | 1.4 | |`taskInfo.width`|Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'|No | 1.4 | |`taskInfo.height`|Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'|No | 1.4 |
platform Learn More https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/messaging-extensions/learn-more.md
Try it out in a quickstart:
| **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | |||--|-|
- | Messaging extension with action-based commands | This sample illustrates how to build an Action-based Messaging Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) | [View]( https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/51.teams-messaging-extensions-action) |
- | Messaging extension with search-based commands | This sample illustrates how to build a Search-based Messaging Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/50.teams-messaging-extension-search) |
+ | Message extension with action-based commands | This sample illustrates how to build an Action-based Message Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) | [View]( https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/51.teams-messaging-extensions-action) |
+ | Message extension with search-based commands | This sample illustrates how to build a Search-based Message Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/50.teams-messaging-extension-search) |
platform Messaging Extensions Common https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/messaging-extensions/messaging-extensions-common.md
-## Add a messaging extension to your app
+## Add a message extension to your app
-A messaging extension is a cloud-hosted service that listens to user requests and responds with structured data, such as a [card](~/task-modules-and-cards/what-are-cards.md). You integrate your service with Microsoft Teams via Bot Framework `Activity` objects. Our .NET and Node.js extensions for the Bot Builder SDK can help you add messaging extension functionality to your app.
+A message extension is a cloud-hosted service that listens to user requests and responds with structured data, such as a [card](~/task-modules-and-cards/what-are-cards.md). You integrate your service with Microsoft Teams via Bot Framework `Activity` objects. Our .NET and Node.js extensions for the Bot Builder SDK can help you add message extension functionality to your app.
-![Diagram of message flow for messaging extensions](~/assets/images/compose-extensions/ceflow.png)
+![Diagram of message flow for message extensions](~/assets/images/compose-extensions/ceflow.png)
### Register in the Bot Framework
-If you havenΓÇÖt done so already, you must first register a bot with the Microsoft Bot Framework. The Microsoft app ID and callback endpoints for your bot, as defined there, will be used in your messaging extension to receive and respond to user requests. Remember to enable the Microsoft Teams channel for your bot.
+If you havenΓÇÖt done so already, you must first register a bot with the Microsoft Bot Framework. The Microsoft app ID and callback endpoints for your bot, as defined there, will be used in your message extension to receive and respond to user requests. Remember to enable the Microsoft Teams channel for your bot.
Record your bot app ID and app password, you will need to supply the app ID in your app manifest. ### Update your app manifest
-As with bots and tabs, you update the [manifest](~/resources/schem#composeextensions) of your app to include the messaging extension properties. These properties govern how your messaging extension appears and behaves in the Microsoft Teams client. Messaging extensions are supported beginning with v1.0 of the manifest.
+As with bots and tabs, you update the [manifest](~/resources/schem#composeextensions) of your app to include the message extension properties. These properties govern how your message extension appears and behaves in the Microsoft Teams client. Message extensions are supported beginning with v1.0 of the manifest.
-#### Declare your messaging extension
+#### Declare your message extension
-To add a messaging extension, include a new top-level JSON structure in your manifest with the `composeExtensions` property. Currently, you are limited to creating a single messaging extension for your app.
+To add a message extension, include a new top-level JSON structure in your manifest with the `composeExtensions` property. Currently, you are limited to creating a single message extension for your app.
> [!NOTE]
-> The manifest refers to messaging extensions as `composeExtensions`. This is to maintain backward compatibility.
+> The manifest refers to message extensions as `composeExtensions`. This is to maintain backward compatibility.
The extension definition is an object that has the following structure:
The extension definition is an object that has the following structure:
| `botId` | The unique Microsoft app ID for the bot as registered with the Bot Framework. This should typically be the same as the ID for your overall Teams app. | Yes | | `scopes` | Array declaring whether this extension can be added to `personal` or `team` scopes (or both). | Yes | | `canUpdateConfiguration` | Enables **Settings** menu item. | No |
-| `commands` | Array of commands that this messaging extension supports. You are limited to 10 commands. | Yes |
+| `commands` | Array of commands that this message extension supports. You are limited to 10 commands. | Yes |
#### Define commands
-Your messaging extension should declare one command, which appears when the user selects your app from the **More options** (**&#8943;**) button in the compose box.
+Your message extension should declare one command, which appears when the user selects your app from the **More options** (**&#8943;**) button in the compose box.
-![Screenshot of list of messaging extensions in Teams](~/assets/images/compose-extensions/compose-extension-list.png)
+![Screenshot of list of message extensions in Teams](~/assets/images/compose-extensions/compose-extension-list.png)
In the app manifest, your command item is an object with the following structure:
platform V3 To V4 Pointer Me https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/v3-to-v4-pointer-me.md
> [!Important]
-> The articles in this section are based on the v3 Bot Framework SDK. If you're looking for current documentation (version 4.6 or later version of the SDK) see the [Task-oriented interactions with Messaging Extensions](~/messaging-extensions/what-are-messaging-extensions.md) section.
+> The articles in this section are based on the v3 Bot Framework SDK. If you're looking for current documentation (version 4.6 or later version of the SDK) see the [Task-oriented interactions with Message Extensions](~/messaging-extensions/what-are-messaging-extensions.md) section.
platform V4 To V3 Pointer Me https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/v4-to-v3-pointer-me.md
> [!Important]
-> The code samples in this section are based on 4.6 and later versions of the Bot Framework SDK. If you're looking for documentation for earlier versions, see the [Messaging Extensions - v3 SDK](~/resources/messaging-extension-v3/messaging-extensions-overview.md) section in the Resources folder of the documentation.
+> The code samples in this section are based on 4.6 and later versions of the Bot Framework SDK. If you're looking for documentation for earlier versions, see the [Message Extensions - v3 SDK](~/resources/messaging-extension-v3/messaging-extensions-overview.md) section in the Resources folder of the documentation.
platform Extend M365 Teams Message Extension https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-teams-message-extension.md
Title: Extend a Teams messaging extension across Microsoft 365
-description: Here's how to update your search-based Teams messaging extension to run in Outlook
+ Title: Extend a Teams message extension across Microsoft 365
+description: Here's how to update your search-based Teams message extension to run in Outlook
Last updated 02/11/2022
-# Extend a Teams messaging extension across Microsoft 365
+# Extend a Teams message extension across Microsoft 365
> [!NOTE]
-> *Extending a Teams messaging extension across Microsoft 365* is currently available only in [public developer preview](../resources/dev-preview/developer-preview-intro.md). Features included in preview may not be complete, and may undergo changes before becoming available in the public release. They are provided for testing and exploration purposes only. They should not be used in production applications.
+> *Extending a Teams message extension across Microsoft 365* is currently available only in [public developer preview](../resources/dev-preview/developer-preview-intro.md). Features included in preview may not be complete, and may undergo changes before becoming available in the public release. They are provided for testing and exploration purposes only. They should not be used in production applications.
-Search-based [messaging extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions) allow users to search an external system and share results through the compose message area of the Microsoft Teams client. By [extending your Teams apps across Microsoft 365 (preview)](overview.md), you can now bring your search-based Teams messaging extensions to Outlook for Windows desktop and web experiences.
+Search-based [message extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions) allow users to search an external system and share results through the compose message area of the Microsoft Teams client. By [extending your Teams apps across Microsoft 365 (preview)](overview.md), you can now bring your search-based Teams message extensions to Outlook for Windows desktop and web experiences.
-The process to update your search-based Teams messaging extension to run Outlook involves these steps:
+The process to update your search-based Teams message extension to run Outlook involves these steps:
> [!div class="checklist"] >
The process to update your search-based Teams messaging extension to run Outlook
> * Add an Outlook channel for your bot > * Sideload your updated app in Teams
-The rest of this guide will walk you through these steps and show you how to preview your messaging extension in both Outlook for Windows desktop and web.
+The rest of this guide will walk you through these steps and show you how to preview your message extension in both Outlook for Windows desktop and web.
## Prerequisites
To complete this tutorial, you'll need:
> [!div class="nextstepaction"] > [Install prerequisites](prerequisites.md)
-## Prepare your messaging extension for the upgrade
+## Prepare your message extension for the upgrade
-If you have an existing messaging extension, make a copy or a branch of your production project for testing and update your App ID in the app manifest to use a new identifier (distinct from the production App ID).
+If you have an existing message extension, make a copy or a branch of your production project for testing and update your App ID in the app manifest to use a new identifier (distinct from the production App ID).
-If you'd like to use sample code to complete this tutorial, follow the setup steps in [Teams messaging extension search sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/50.teams-messaging-extensions-search) to quickly build a Microsoft Teams search-based messaging extension. Or, you can start with the same [Teams Messaging Extensions Search sample updated for TeamsJS SDK v2 Preview](https://github.com/OfficeDev/TeamsFx-Samples/tree/v2/NPM-search-connector-M365) and proceed to [Preview your messaging extension in Outlook](#preview-your-messaging-extension-in-outlook). The updated sample is also available within Teams Toolkit extension: *Development* > *View samples* > **NPM Search Connector**.
+If you'd like to use sample code to complete this tutorial, follow the setup steps in [Teams message extension search sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/50.teams-messaging-extensions-search) to quickly build a Microsoft Teams search-based message extension. Or, you can start with the same [Teams Message Extensions Search sample updated for TeamsJS SDK v2 Preview](https://github.com/OfficeDev/TeamsFx-Samples/tree/v2/NPM-search-connector-M365) and proceed to [Preview your message extension in Outlook](#preview-your-message-extension-in-outlook). The updated sample is also available within Teams Toolkit extension: *Development* > *View samples* > **NPM Search Connector**.
:::image type="content" source="images/toolkit-search-sample.png" alt-text="NPM Search Connector sample in Teams Toolkit"::: ## Update the app manifest
-You'll need to use the [Teams developer preview manifest](/microsoftteams/platform/resources/schema/manifest-schema-dev-preview) schema and the `m365DevPreview` manifest version to enable your Teams messaging extension to run in Outlook.
+You'll need to use the [Teams developer preview manifest](/microsoftteams/platform/resources/schema/manifest-schema-dev-preview) schema and the `m365DevPreview` manifest version to enable your Teams message extension to run in Outlook.
You have two options for updating your app manifest:
Open your Teams app manifest and update the `$schema` and `manifestVersion` with
-If you used Teams Toolkit to create your messaging extension app, you can use it to validate the changes to your manifest file and identify any errors. Open the command palette `Ctrl+Shift+P` and find **Teams: Validate manifest file** or select the option from the Deployment menu of the Teams Toolkit (look for the Teams icon on the left side of Visual Studio Code).
+If you used Teams Toolkit to create your message extension app, you can use it to validate the changes to your manifest file and identify any errors. Open the command palette `Ctrl+Shift+P` and find **Teams: Validate manifest file** or select the option from the Deployment menu of the Teams Toolkit (look for the Teams icon on the left side of Visual Studio Code).
:::image type="content" source="images/toolkit-validate-manifest-file.png" alt-text="Teams Toolkit 'Validate manifest file' option under 'Deployment' menu"::: ## Add an Outlook channel for your bot
-In Microsoft Teams, a messaging extension consists of a web service that you host and an app manifest, which defines where your web service is hosted. The web service takes advantage of the [Bot Framework SDK](/azure/bot-service/bot-service-overview) messaging schema and secure communication protocol through a Teams channel registered for your bot.
+In Microsoft Teams, a message extension consists of a web service that you host and an app manifest, which defines where your web service is hosted. The web service takes advantage of the [Bot Framework SDK](/azure/bot-service/bot-service-overview) messaging schema and secure communication protocol through a Teams channel registered for your bot.
-For users to interact with your messaging extension from Outlook, you'll need to add an Outlook channel to your bot:
+For users to interact with your message extension from Outlook, you'll need to add an Outlook channel to your bot:
1. From [Microsoft Azure portal](https://portal.azure.com) (or [Bot Framework portal](https://dev.botframework.com) if you previously registered there), navigate to your bot resource.
For users to interact with your messaging extension from Outlook, you'll need to
## Update Microsoft Azure Active Directory (Azure AD) app registration for SSO > [!NOTE]
-> You can skip the step if you're using [Teams messaging extension search sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/50.teams-messaging-extensions-search), as the scenario doesn't involve Azure Active Directory (AAD) Single Sign-On authentication.
+> You can skip the step if you're using [Teams message extension search sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/50.teams-messaging-extensions-search), as the scenario doesn't involve Azure Active Directory (AAD) Single Sign-On authentication.
-Azure Active Directory Single-sign on (SSO) for messaging extensions works the same way in Outlook [as it does in Teams](/microsoftteams/platform/bots/how-to/authentication/auth-aad-sso-bots), however you need to add several client application identifiers to the Azure AD app registration of your bot in your tenant's *App registrations* portal.
+Azure Active Directory Single-sign on (SSO) for message extensions works the same way in Outlook [as it does in Teams](/microsoftteams/platform/bots/how-to/authentication/auth-aad-sso-bots), however you need to add several client application identifiers to the Azure AD app registration of your bot in your tenant's *App registrations* portal.
1. Sign in to [Azure portal](https://portal.azure.com) with your sandbox tenant account. 1. Open **App registrations**.
In the **Authorized client applications** section, ensure all of the following `
|Outlook Web Access | 00000002-0000-0ff1-ce00-000000000000 | |Outlook Web Access | bc59ab01-8403-45c6-8796-ac3ef710b3e3 |
-## Sideload your updated messaging extension in Teams
+## Sideload your updated message extension in Teams
-The final step is to sideload your updated messaging extension ([app package](/microsoftteams/platform/concepts/build-and-test/apps-package)) in Microsoft Teams. Once completed, your messaging extension will appear in your installed *Apps* from the compose message area.
+The final step is to sideload your updated message extension ([app package](/microsoftteams/platform/concepts/build-and-test/apps-package)) in Microsoft Teams. Once completed, your message extension will appear in your installed *Apps* from the compose message area.
1. Package your Teams application (manifest and app [icons](/microsoftteams/platform/resources/schema/manifest-schema#icons)) in a zip file. If you used Teams Toolkit to create your app, you can easily do this using the **Zip Teams metadata package** option in the *Deployment* menu of Teams Toolkit:
The final step is to sideload your updated messaging extension ([app package](/m
1. Select your app package and click *Open*.
-Once sideloaded through Teams, your messaging extension will be available in Outlook on the web.
+Once sideloaded through Teams, your message extension will be available in Outlook on the web.
-## Preview your messaging extension in Outlook
+## Preview your message extension in Outlook
-You're now ready to test your messaging extension running in Outlook on Windows desktop and the web. While your updated messaging extension will continue to run in Teams with full [feature support for messaging extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions), there are limitations in this early preview of the Outlook-enabled experience to be aware of:
+You're now ready to test your message extension running in Outlook on Windows desktop and the web. While your updated message extension will continue to run in Teams with full [feature support for message extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions), there are limitations in this early preview of the Outlook-enabled experience to be aware of:
-* Messaging extensions in Outlook are limited to the mail [*compose* context](/microsoftteams/platform/resources/schema/manifest-schema#composeextensions). Even if your Teams messaging extension includes `commandBox` as a *context* in its manifest, the current preview is limited to the mail composition (`compose`) option. Invoking a messaging extension from the global Outlook *Search* box is not supported.
-* [Action-based messaging extension](/microsoftteams/platform/messaging-extensions/how-to/action-commands/define-action-command?tabs=AS) commands are not supported in Outlook. If your app has both search- and action-based commands, it will surface in Outlook but the action menu will not be available.
+* Message extensions in Outlook are limited to the mail [*compose* context](/microsoftteams/platform/resources/schema/manifest-schema#composeextensions). Even if your Teams message extension includes `commandBox` as a *context* in its manifest, the current preview is limited to the mail composition (`compose`) option. Invoking a message extension from the global Outlook *Search* box is not supported.
+* [Action-based message extension](/microsoftteams/platform/messaging-extensions/how-to/action-commands/define-action-command?tabs=AS) commands are not supported in Outlook. If your app has both search- and action-based commands, it will surface in Outlook but the action menu will not be available.
* Insertion of more than five [Adaptive Cards](/microsoftteams/platform/task-modules-and-cards/cards/design-effective-cards?tabs=design) in an email is not supported; Adaptive Cards v1.4 and later are not supported. * [Card actions](/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json) of type `messageBack`, `imBack`, `invoke`, and `signin` are not supported for inserted cards. Support is limited to `openURL`: on click, the user will be redirected to the specified URL in a new tab.
-As you test your messaging extension, you can identify the source (originating from Teams versus Outlook) of bot requests by the [channelId](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#channel-id) of the [Activity](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md) object. When a user performs a query, your service receives a standard Bot Framework `Activity` object. One of the properties in the Activity object is `channelId`, which will have the value of `msteams` or `outlook`, depending from where the bot request originates. For more, see [Search based messaging extensions SDK](/microsoftteams/platform/resources/messaging-extension-v3/search-extensions).
+As you test your message extension, you can identify the source (originating from Teams versus Outlook) of bot requests by the [channelId](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#channel-id) of the [Activity](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md) object. When a user performs a query, your service receives a standard Bot Framework `Activity` object. One of the properties in the Activity object is `channelId`, which will have the value of `msteams` or `outlook`, depending from where the bot request originates. For more, see [Search based message extensions SDK](/microsoftteams/platform/resources/messaging-extension-v3/search-extensions).
### Outlook on the web
To preview your app running in Outlook on the web:
:::image type="content" source="images/outlook-web-compose-more-apps.png" alt-text="Click on the 'More apps' menu on the bottom of the mail composition window to use your message extension":::
-Your messaging extension will be listed. You can invoke it from there and use it just as you would while composing a message in Teams.
+Your message extension will be listed. You can invoke it from there and use it just as you would while composing a message in Teams.
### Outlook
To preview your app running in Outlook on Windows desktop:
1. Launch Outlook logged in with credentials for your test tenant. 1. Click on **New Email**. 1. Open the **More apps** flyout menu on the top ribbon.
-Your messaging extension will be listed. You can invoke it from there and use it just as you would while composing a message in Teams.
+Your message extension will be listed. You can invoke it from there and use it just as you would while composing a message in Teams.
## Next steps
-Outlook-enabled Teams messaging extensions are in preview and not supported for production use. Here's how to distribute your Outlook-enabled messaging extension to preview audiences for testing purposes.
+Outlook-enabled Teams message extensions are in preview and not supported for production use. Here's how to distribute your Outlook-enabled message extension to preview audiences for testing purposes.
### Single-tenant distribution
As a global admin, you can upload and pre-install the app package from [Microsof
### Multitenant distribution
-Distribution to Microsoft AppSource is not yet supported during this early developer preview of Outlook-enabled Teams messaging extensions.
+Distribution to Microsoft AppSource is not yet supported during this early developer preview of Outlook-enabled Teams message extensions.
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/overview.md
You can test your Teams apps running in Microsoft Office and Outlook by updating
With this preview, you can: - Extend existing Teams [personal tabs](/microsoftteams/platform/tabs/how-to/create-personal-tab) to Outlook for desktop and on the web, and also Office on the web (office.com).-- Extend existing Teams [search-based messaging extensions](/microsoftteams/platform/messaging-extensions/how-to/search-commands/define-search-command) to Outlook for desktop and on the web.
+- Extend existing Teams [search-based message extensions](/microsoftteams/platform/messaging-extensions/how-to/search-commands/define-search-command) to Outlook for desktop and on the web.
For feedback and issues, continue using the relevant [Microsoft Teams developer community channels](/microsoftteams/platform/feedback).
After sideloading to Teams, your personal tab appears as one of your installed a
:::image type="content" source="images/outlook-office-teams-personal-tab.png" alt-text="Personal tab running in Outlook, Office, and Teams":::
-## Teams messaging extensions in Outlook
+## Teams message extensions in Outlook
-With this preview, you can extend your search-based Teams messaging extensions to Outlook on the web and Windows desktop, enabling customers to search and share results through the compose message area of Outlook, in addition to Microsoft Teams clients.
+With this preview, you can extend your search-based Teams message extensions to Outlook on the web and Windows desktop, enabling customers to search and share results through the compose message area of Outlook, in addition to Microsoft Teams clients.
-After sideloading to Teams, your messaging extension appears as one of your installed apps within the Outlook compose message area.
+After sideloading to Teams, your message extension appears as one of your installed apps within the Outlook compose message area.
## Next steps
platform Prerequisites https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/prerequisites.md
For more information on Office 365 release options, see [Set up the Standard or
## Install Office apps in your test environment > [!IMPORTANT]
-> Refer to the latest updates on [Microsoft Teams - Microsoft 365 Developer Blog](https://devblogs.microsoft.com/microsoft365dev/) to check if Outlook for Windows desktop support for Teams messaging extensions is available to your test tenant.
+> Refer to the latest updates on [Microsoft Teams - Microsoft 365 Developer Blog](https://devblogs.microsoft.com/microsoft365dev/) to check if Outlook for Windows desktop support for Teams message extensions is available to your test tenant.
You can preview Teams apps running in Outlook on Windows desktop by using a recent *Beta Channel build*. Check if you have to [Change the Microsoft 365 Apps update channel](/deployoffice/change-update-channels?WT.mc_id=M365-MVP-5002016) for your test tenant to install an Office 365 Beta Channel build.
You can verify test tenant support for your tenant account:
:::image type="content" source="images/outlook-desktop-ellipses.png" alt-text="Ellipses ('...') option on the left sidebar of Outlook":::
-* For messaging extensions in outlook.com and Outlook for Windows, check for **More Apps** option at the bottom of the Outlook compose message pane.
+* For message extensions in outlook.com and Outlook for Windows, check for **More Apps** option at the bottom of the Outlook compose message pane.
:::image type="content" source="images/outlook-web-compose-more-apps.png" alt-text="'More apps' option in the Outlook compose message pane":::
The extension [Teams Toolkit for Visual Studio Code](https://aka.ms/teams-toolki
## Next steps * [Enable a Teams personal tab for Office and Outlook](extend-m365-teams-personal-tab.md)
-* [Enable a Teams messaging extension for Outlook](extend-m365-teams-message-extension.md)
+* [Enable a Teams message extension for Outlook](extend-m365-teams-message-extension.md)
platform Messaging Extension Design https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/design/messaging-extension-design.md
Title: Designing your messaging extension
-description: Learn how to design a Teams messaging extension and get the Microsoft Teams UI Kit.
-keywords: teams design guidelines reference messaging extensions tips best practice
+ Title: Designing your message extension
+description: Learn how to design a Teams message extension and get the Microsoft Teams UI Kit.
+keywords: teams design guidelines reference message extensions tips best practice
ms.localizationpriority: high-+
-# Designing your Microsoft Teams messaging extension
+# Designing your Microsoft Teams message extension
-Messaging extensions are shortcuts for inserting app content or acting on a message without navigating away from the conversation.
-To guide your app design, the following information describes and illustrates how people can add, use, and manage messaging extensions in Teams.
+Message extensions are shortcuts for inserting app content or acting on a message without navigating away from the conversation.
+To guide your app design, the following information describes and illustrates how people can add, use, and manage message extensions in Teams.
## Microsoft Teams UI Kit
-You can find comprehensive messaging extension design guidelines, including elements that you can grab and modify as needed, in the Microsoft Teams UI Kit.
+You can find comprehensive message extension design guidelines, including elements that you can grab and modify as needed, in the Microsoft Teams UI Kit.
> [!div class="nextstepaction"] > [Get the Microsoft Teams UI Kit (Figma)](https://www.figma.com/community/file/916836509871353159)
-## Add a messaging extension
+## Add a message extension
-You can add a messaging extension in the following Teams contexts:
+You can add a message extension in the following Teams contexts:
* From the Teams store.
-* In a channel, chat, or meeting (before, during, and after) near the compose box. It's worth noting if you add a messaging extension in one of these places, only you can use it in that context.
+* In a channel, chat, or meeting (before, during, and after) near the compose box. It's worth noting if you add a message extension in one of these places, only you can use it in that context.
-The following examples show how to add a messaging extension in a channel.
+The following examples show how to add a message extension in a channel.
### Mobile ### Desktop
-## Set up a messaging extension
+## Set up a message extension
-Authentication isn't mandatory, but if your app is something like a ticket tracking tool, you may need people to sign in to use the messaging extension.
+Authentication isn't mandatory, but if your app is something like a ticket tracking tool, you may need people to sign in to use the message extension.
For consistency across Teams apps, you can't customize the sign-in screen. If you use single sign-on (SSO) authentication, users are signed in automatically. ### Mobile ### Desktop
-## Types of messaging extensions
+## Types of message extensions
-Messaging extensions can have search commands, action commands, or both. Your commands depend on your app's features and how those fit within Teams use cases.
+Message extensions can have search commands, action commands, or both. Your commands depend on your app's features and how those fit within Teams use cases.
### Search commands
-With search commands, people can use your messaging extension to quickly find external content and insert into a message. Search commands are commonly made available in the compose box. For example, you can start or add to a discussion by sharing a piece of contentΓÇöwithout ever leaving Teams.
+With search commands, people can use your message extension to quickly find external content and insert into a message. Search commands are commonly made available in the compose box. For example, you can start or add to a discussion by sharing a piece of contentΓÇöwithout ever leaving Teams.
#### Mobile #### Desktop #### Compose box layout options
-You have some options for displaying messaging extension search results, including [list and grid views](../../messaging-extensions/how-to/search-commands/respond-to-search.md#respond-to-user-requests).
+You have some options for displaying message extension search results, including [list and grid views](../../messaging-extensions/how-to/search-commands/respond-to-search.md#respond-to-user-requests).
### Action commands Action commands allow people to trigger actions and process requests in external services within Teams. For example, if your app tracks orders, a user could create a new order using the contents of a colleagueΓÇÖs message from right inside their chat.
-Action-based messaging extensions frequently require users to complete a form or some other kind of configuration within a modal. You can create these experiences with [task modules](../../task-modules-and-cards/task-modules/design-teams-task-modules.md).
+Action-based message extensions frequently require users to complete a form or some other kind of configuration within a modal. You can create these experiences with [task modules](../../task-modules-and-cards/task-modules/design-teams-task-modules.md).
-## Open a messaging extension
+## Open a message extension
-The compose box and messages or posts are the primary contexts where people use messaging extensions.
+The compose box and messages or posts are the primary contexts where people use message extensions.
### From the compose box
-Once added, users can open your messaging extension by selecting your app icon below the compose box. In these examples, the extension has search and action commands.
+Once added, users can open your message extension by selecting your app icon below the compose box. In these examples, the extension has search and action commands.
#### Mobile #### Desktop ### From a chat message or channel post
Once added, users can select the **More** :::image type="icon" source="../../ass
#### Chat message #### Channel post
-## Use a messaging extension
+## Use a message extension
-The following scenarios show the primary ways people use messaging extensions.
+The following scenarios show the primary ways people use message extensions.
### Insert content into a message
-**1. Select a messaging extension**. Users can search for the content they want to share from the compose box.
+**1. Select a message extension**. Users can search for the content they want to share from the compose box.
#### Mobile
The following scenarios show the primary ways people use messaging extensions.
### Take action on a message
-**1. Select a messaging extension**. Your app can include one or more action commands.
+**1. Select a message extension**. Your app can include one or more action commands.
**2. Complete the action**. Your app can receive and process any content or data sent by the message action. Users complete the action in your app while remaining in their conversation.
The following scenarios show the primary ways people use messaging extensions.
### Preview links
-Messaging extensions also allow you to insert rich links from a recognized URL into a message (this capability is called [link unfurling](../../messaging-extensions/how-to/link-unfurling.md).)
+Message extensions also allow you to insert rich links from a recognized URL into a message (this capability is called [link unfurling](../../messaging-extensions/how-to/link-unfurling.md).)
**1. Paste a recognized link** in the compose box.
Messaging extensions also allow you to insert rich links from a recognized URL i
:::image type="content" source="../../assets/images/messaging-extension/insert-preview-link.png" alt-text="Example shows how the URL, since it's recognized by your app, includes some rich content in the compose box." border="false":::
-## Manage a messaging extension
+## Manage a message extension
-By right-clicking your icon, users can pin, remove, or configure your messaging extension.
+By right-clicking your icon, users can pin, remove, or configure your message extension.
## Anatomy
-### Messaging extension in the compose box
+### Message extension in the compose box
-The following examples show a messaging extension opened from the compose box.
+The following examples show a message extension opened from the compose box.
#### Mobile |Counter|Description| |-|--| |1|**App name**: Full name of your app.|
-|2|**Action commands menu icon (optional)**: Opens a list of action commands for your messaging extension (if you specify any).
+|2|**Action commands menu icon (optional)**: Opens a list of action commands for your message extension (if you specify any).
|3|**Search box**: Allows users to find app content they want to insert.| |4|**Tab menu (optional)**: Provides multiple content categories.| |5|**Action commands menu (optional)**: Displays list of action commands (if you specify any).|
The following examples show a messaging extension opened from the compose box.
#### Desktop |Counter|Description| |-|--| |1|**App logo**: Color icon of your app logo.| |2|**App name**: Full name of your app.|
-|3|**Action commands menu icon (optional)**: Opens a list of action commands for your messaging extension (if you specify any).
+|3|**Action commands menu icon (optional)**: Opens a list of action commands for your message extension (if you specify any).
|4|**Search box**: Allows users to find app content they want to insert.| |5|**Tab menu (optional)**: Provides multiple content categories.| |6|**Action commands menu (optional)**: Displays list of action commands (if you specify any).| |7|**App content**: Primarily to display search results. The example here is using the list layout (grid layout is another option).| |8|**App logo**: Outline icon of your app logo.|
-### Messaging extension management menu
+### Message extension management menu
|Counter|Description| |-|--| |1|**Unpin**: Available if the user has pinned your app.|
-|2|**Remove**: Removes the messaging extension from the channel, chat, or meeting.|
+|2|**Remove**: Removes the message extension from the channel, chat, or meeting.|
## Best practices
Use these recommendations to create a quality app experience.
#### Do: Integrate with single-sign on
-SSO makes the sign-in process easier, faster, and secure. Also, if a user has already signed in to your personal app, they donΓÇÖt have to also sign in again to access the messaging extension.
+SSO makes the sign-in process easier, faster, and secure. Also, if a user has already signed in to your personal app, they donΓÇÖt have to also sign in again to access the message extension.
:::column-end::: :::column span="":::
SSO makes the sign-in process easier, faster, and secure. Also, if a user has al
#### Don't: Take users away from the conversation
-Messaging extensions are shortcuts that are supposed reduce context switching. Your extension should not, for example, direct users to a webpage outside Teams.
+Message extensions are shortcuts that are supposed reduce context switching. Your extension should not, for example, direct users to a webpage outside Teams.
:::column-end::: :::row-end:::
-#### Do: Highlight your messaging extension
+#### Do: Highlight your message extension
-Messaging extensions aren't always easy to find. Include screenshots of how to use it in your app details page. If your app also includes a bot, you can include messaging extension help documentation in a bot welcome tour.
+Message extensions aren't always easy to find. Include screenshots of how to use it in your app details page. If your app also includes a bot, you can include message extension help documentation in a bot welcome tour.
### Templating
Messaging extensions aren't always easy to find. Include screenshots of how to u
#### Do: Let Teams handle some of the design work if possible
-If it makes sense for your use cases, consider creating a search-based messaging extension. Teams renders these types of extensions with built-in theming and accessibility.
+If it makes sense for your use cases, consider creating a search-based message extension. Teams renders these types of extensions with built-in theming and accessibility.
:::column-end::: :::column span="":::
If it makes sense for your use cases, consider creating a search-based messaging
#### Don't: Embed your entire app in a task module
-If your messaging extension requires action commands, keep the task module simple and display only the components required to complete the action.
+If your message extension requires action commands, keep the task module simple and display only the components required to complete the action.
:::column-end::: :::row-end:::
platform Create Task Module https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
Title: Create and send the task module
-description: Learn how to handle the initial invoke action and respond with a task module from an action messaging extension command using code examples and samples.
+description: Learn how to handle the initial invoke action and respond with a task module from an action message extension command using code examples and samples.
ms.localizationpriority: medium
class TeamsMessagingExtensionsActionPreviewBot extends TeamsActivityHandler {
## Initial invoke request from a message
-When your bot is invoked from a message, the `value` object in the initial invoke request must contain the details of the message that your messaging extension is invoked from. The `reactions` and `mentions` arrays are optional, and they are not present if there are no reactions or mentions in the original message.
+When your bot is invoked from a message, the `value` object in the initial invoke request must contain the details of the message that your message extension is invoked from. The `reactions` and `mentions` arrays are optional, and they are not present if there are no reactions or mentions in the original message.
The following section is an example of the `value` object: # [C#/.NET](#tab/dotnet)
class TeamsMessagingExtensionsActionPreview extends TeamsActivityHandler {
If the app contains a conversational bot, install the bot in the conversation and then load the task module. The bot is useful to get additional context for the task module. An example for this scenario is to fetch the roster to populate a people picker control or the list of channels in a team.
-When the messaging extension receives the `composeExtension/fetchTask` invoke, check if the bot is installed in the current context to facilitate the flow. For example, check the flow with a get roster call. If the bot is not installed, return an Adaptive Card with an action that requests the user to install the bot. The user must have the permission to install the apps in that location for checking. If the app installation is unsuccessful, the user receives a message to contact the administrator.
+When the message extension receives the `composeExtension/fetchTask` invoke, check if the bot is installed in the current context to facilitate the flow. For example, check the flow with a get roster call. If the bot is not installed, return an Adaptive Card with an action that requests the user to install the bot. The user must have the permission to install the apps in that location for checking. If the app installation is unsuccessful, the user receives a message to contact the administrator.
#### Example
private static Attachment GetAdaptiveCardAttachmentFromFile(string fileName)
| Sample Name | Description | .NET | Node.js | |:|:--|:|:--|
-|Teams messaging extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
-|Teams messaging extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
+|Teams message extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
+|Teams message extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
## Next step
platform Define Action Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/define-action-command.md
Title: Define messaging extension action commands
+ Title: Define message extension action commands
-description: An overview of messaging extension action commands with app manifest example
+description: An overview of message extension action commands with app manifest example
ms.localizationpriority: medium
-# Define messaging extension action commands
+# Define message extension action commands
[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)]
First, you must decide the location from where your action command must be invok
Commands context = commandBox > [!NOTE]
- > If messaging extension is invoked from the command box, you cannot respond with a bot message inserted directly into the conversation.
+ > If message extension is invoked from the command box, you cannot respond with a bot message inserted directly into the conversation.
* Message: Directly from an existing message through the `...` overflow menu on a message.
In addition to selecting where your command can be invoked from, you must also s
* **Adaptive Card**: You can select to use an Adaptive Card, which provides greater control over the UI, but still limits you on the available controls and formatting options. * **Embedded web view**: You can select to embed a custom web view in the task module to have a complete control over the UI and controls.
-If you select to create the task module with a static list of parameters and when the user submits the task module, the messaging extension is called. When using an embedded web view or an Adaptive Card, your messaging extension must handle an initial invoke event from the user, create the task module, and return it back to the client.
+If you select to create the task module with a static list of parameters and when the user submits the task module, the message extension is called. When using an embedded web view or an Adaptive Card, your message extension must handle an initial invoke event from the user, create the task module, and return it back to the client.
## Select how the final message is sent In most cases, the action command results in a card inserted into the compose message box. The user can send it into the channel or chat. In this case, the message comes from the user, and the bot cannot edit or update the card further.
-If the messaging extension is invoked from the compose box or directly from a message, your web service can insert the final response directly into the channel or chat. In this case, the Adaptive Card comes from the bot, the bot updates it, and replies to the conversation thread if needed. You must add the `bot` object to the app manifest using the same ID and defining the appropriate scopes.
+If the message extension is invoked from the compose box or directly from a message, your web service can insert the final response directly into the channel or chat. In this case, the Adaptive Card comes from the bot, the bot updates it, and replies to the conversation thread if needed. You must add the `bot` object to the app manifest using the same ID and defining the appropriate scopes.
## Add the action command to your app manifest
You can create an action command using **App Studio** or **Developer Portal**.
# [App Studio](#tab/AS) > [!NOTE]
-> The prerequisite to create an action command is that you have already created a messaging extension. For information on how to create a messaging extension, see [create a messaging extension](~/messaging-extensions/how-to/create-messaging-extension.md).
+> The prerequisite to create an action command is that you have already created a message extension. For information on how to create a message extension, see [create a message extension](~/messaging-extensions/how-to/create-messaging-extension.md).
**To create an action command** 1. Open **App Studio** from the Microsoft Teams client and select the **Manifest editor** tab. 1. If you already created your app package in **App Studio**, select it from the list. If you have not created an app package, import an existing one.
-1. After importing an app package, select **Messaging extensions** under **Capabilities**. You get a pop-up window to set up the messaging extension.
-1. Select **Set up** in the window to include the messaging extension in your app experience. The following image displays the messaging extension set up window:
+1. After importing an app package, select **Message extensions** under **Capabilities**. You get a pop-up window to set up the message extension.
+1. Select **Set up** in the window to include the message extension in your app experience. The following image displays the message extension set up window:
<img src="~/assets/images/messaging-extension/messaging-extension-set-up.png" alt="messaging extension set up" width="500"/>
-1. To create a messaging extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for messaging extension:
+1. To create a message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for message extension:
<img src="~/assets/images/messaging-extension/create-bot-for-messaging-extension.png" alt="create bot for messaging extension" width="500"/>
-1. Select **Add** in the **Command section** of the messaging extensions page to include the commands which decides the behaviour of messaging extension.
-The following image displays command addition for messaging extension:
+1. Select **Add** in the **Command section** of the message extensions page to include the commands which decides the behaviour of message extension.
+The following image displays command addition for message extension:
<img src="~/assets/images/messaging-extension/include-command.png" alt="include command" width="500"/>
The following image displays command addition for messaging extension:
### Create an action command manually
-To manually add your action-based messaging extension command to your app manifest, you must add the following parameters to the `composeExtension.commands` array of objects:
+To manually add your action-based message extension command to your app manifest, you must add the following parameters to the `composeExtension.commands` array of objects:
| Property name | Purpose | Required? | Minimum manifest version | |||||
To manually add your action-based messaging extension command to your app manife
| `title` | This property is a command name. This value appears in the UI. | Yes | 1.0 | | `type` | This property must be an `action`. | No | 1.4 | | `fetchTask` | This property is set to `true` for an adaptive card or embedded web view for your task module, and`false` for a static list of parameters or when loading the web view by a `taskInfo`. | No | 1.4 |
-| `context` | This property is an optional array of values that defines where the messaging extension is invoked from. The possible values are `message`, `compose`, or `commandBox`. The default value is `["compose", "commandBox"]`. | No | 1.5 |
+| `context` | This property is an optional array of values that defines where the message extension is invoked from. The possible values are `message`, `compose`, or `commandBox`. The default value is `["compose", "commandBox"]`. | No | 1.5 |
If you are using a static list of parameters, you must also add the following parameters:
If you are using an embedded web view, you can optionally add the `taskInfo` obj
| Property name | Purpose | Is required? | Minimum manifest version | |||||
-|`taskInfo`|Specify the task module to preload when using a messaging extension command. | No | 1.4 |
+|`taskInfo`|Specify the task module to preload when using a message extension command. | No | 1.4 |
|`taskInfo.title`|Initial task module title. |No | 1.4 | |`taskInfo.width`|Task module width, either a number in pixels or default layout such as `large`, `medium`, or `small`. |No | 1.4 | |`taskInfo.height`|Task module height, either a number in pixels or default layout such as `large`, `medium`, or `small`.|No | 1.4 |
The following section is an example of a `composeExtensions` object defining two
| Sample Name | Description | .NET | Node.js | |:|:--|:|:--|
-|Teams messaging extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
+|Teams message extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
## Step-by-step guide
-Follow the [step-by-step guide](../../../sbs-meetingextension-action.yml) to build Teams action based messaging extension.
+Follow the [step-by-step guide](../../../sbs-meetingextension-action.yml) to build Teams action based message extension.
## Next step
platform Respond To Task Module Submit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md
Title: Respond to the task module submit action
-description: Describes how to respond to the task module submit action from a messaging extension action command with Proactive message, another task module, Adaptive card bot, and more using Code samples.
+description: Describes how to respond to the task module submit action from a message extension action command with Proactive message, another task module, Adaptive card bot, and more using Code samples.
ms.localizationpriority: medium
You have the following options to respond:
* [Request the user to authenticate](~/messaging-extensions/how-to/add-authentication.md). * [Request the user to provide additional configuration](~/get-started/first-message-extension.md).
-For authentication or configuration, after the user completes the process, the original invoke is resent to your web service. The following table shows which types of responses are available based on the invoke location `commandContext` of the messaging extension:
+For authentication or configuration, after the user completes the process, the original invoke is resent to your web service. The following table shows which types of responses are available based on the invoke location `commandContext` of the message extension:
|Response Type | Compose | Command bar | Message | |--|:-:|:-:|::|
class TeamsMessagingExtensionsActionPreview extends TeamsActivityHandler {
# [JSON](#tab/json)
-This is an example of the JSON object that you receive. The `commandContext` parameter indicates where your messaging extension was triggered from. The `data` object contains the fields on the form as parameters, and the values the user submitted. The JSON object highlights the most relevant fields.
+This is an example of the JSON object that you receive. The `commandContext` parameter indicates where your message extension was triggered from. The `data` object contains the fields on the form as parameters, and the values the user submitted. The JSON object highlights the most relevant fields.
```json {
The method for response is the same as [responding to the initial `fetchTask` ev
## Bot response with Adaptive Card > [!NOTE]
-> The prerequisite to get the bot response with an Adaptive card is that you must add the `bot` object to your app manifest, and define the required scope for the bot. Use the same ID as your messaging extension for your bot.
+> The prerequisite to get the bot response with an Adaptive card is that you must add the `bot` object to your app manifest, and define the required scope for the bot. Use the same ID as your message extension for your bot.
You can also respond to the `submitAction` by inserting a message with an Adaptive Card into the channel with a bot. The user can preview the message before submitting it. This is useful in scenarios where you gather information from the users before creating an Adaptive Card response, or when you update the card after someone interacts with it.
The following scenario shows how the app Polly configures a poll without includi
To configure the poll:
-1. The user selects the messaging extension to invoke the task module.
+1. The user selects the message extension to invoke the task module.
1. The user configures the poll with the task module. 1. After submitting the task module, the app uses the information provided to build the poll as an Adaptive Card and sends it as a `botMessagePreview` response to the client. 1. The user can then preview the Adaptive Card message before the bot inserts it into the channel. If the app is not a member of the channel, select `Send` to add it.
class TeamsMessagingExtensionsActionPreview extends TeamsActivityHandler {
### The botMessagePreview send and edit events
-Your messaging extension must respond to two new types of the `composeExtension/submitAction` invoke, where `value.botMessagePreviewAction = "send"`and `value.botMessagePreviewAction = "edit"`.
+Your message extension must respond to two new types of the `composeExtension/submitAction` invoke, where `value.botMessagePreviewAction = "send"`and `value.botMessagePreviewAction = "edit"`.
# [C#/.NET](#tab/dotnet)
The following section is a description of the entities in the `OnBehalfOf` Array
| Sample Name | Description | .NET | Node.js | |:|:--|:|:--|
-|Teams messaging extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
-|Teams messaging extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
+|Teams message extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
+|Teams message extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
## Next Step
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/add-authentication.md
Title: Add authentication to your messaging extension
+ Title: Add authentication to your message extension
-description: Learn how to add authentication to a messaging extension using code examples and sample
+description: Learn how to add authentication to a message extension using code examples and sample
ms.localizationpriority: medium
-# Add authentication to your messaging extension
+# Add authentication to your message extension
[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)]
The `id` and `aadObjectId` values are guaranteed for the authenticated Teams use
## Authentication
-If your service requires user authentication, the users must sign in before they use the messaging extension. The authentication steps are similar to that of a bot or tab.
+If your service requires user authentication, the users must sign in before they use the message extension. The authentication steps are similar to that of a bot or tab.
The sequence is as follows: 1. User issues a query or the default query is automatically sent to your service.
At this point, the window closes and the control is passed to the Teams client.
|**Sample name** | **Description** |**.NET** | **Node.js**| |-|--|--|-|
-|Messaging extensions - auth and config | A Messaging Extension that has a configuration page, accepts search requests, and returns results after the user has signed in. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/52.teams-messaging-extensions-search-auth-config)|
+|Message extensions - auth and config | A Message Extension that has a configuration page, accepts search requests, and returns results after the user has signed in. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/52.teams-messaging-extensions-search-auth-config)|
## See also
-[Single sign-on (SSO) support for messaging extensions](~/messaging-extensions/how-to/enable-sso-auth-me.md)
+[Single sign-on (SSO) support for message extensions](~/messaging-extensions/how-to/enable-sso-auth-me.md)
platform Enable SSO Auth Me https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/enable-SSO-auth-me.md
Title: SSO support for your messaging extensions
+ Title: SSO support for your message extensions
-description: Learn how to enable SSO support for your messaging extensions with Code samples.
+description: Learn how to enable SSO support for your message extensions with Code samples.
ms.localizationpriority: medium
-# Single sign-on support for messaging extensions
+# Single sign-on support for message extensions
-Single sign-on (SSO) support is now available for messaging extensions and link unfurling. Enabling Single sign-on for messaging extensions by default refreshes the authentication token, which minimizes the number of times you need to enter the sign in credentials for Microsoft Teams.
+Single sign-on (SSO) support is now available for message extensions and link unfurling. Enabling Single sign-on for message extensions by default refreshes the authentication token, which minimizes the number of times you need to enter the sign in credentials for Microsoft Teams.
This document guides you on how to enable the SSO and store your authentication token, if necessary. ## Prerequisites
-The prerequisite to enable SSO for messaging extensions and link unfurling are as follows:
+The prerequisite to enable SSO for message extensions and link unfurling are as follows:
* You must have an [Azure](https://azure.microsoft.com/free/) account. * You must Configure your app through the Azure AD portal, and update Teams application manifest your bot as defined in [register your app through the Azure AD portal](../../bots/how-to/authentication/auth-aad-sso-bots.md#register-your-app-through-the-azure-ad-portal).
The prerequisite to enable SSO for messaging extensions and link unfurling are a
> [!NOTE] > For more information on creating an Azure account and updating your app manifest, see [Single sign-on (SSO) support for bots](../../bots/how-to/authentication/auth-aad-sso-bots.md).
-## Enable SSO for messaging extensions and link unfurling
+## Enable SSO for message extensions and link unfurling
-After the prerequisites are completed, you can enable SSO for messaging extensions and link unfurling.
+After the prerequisites are completed, you can enable SSO for message extensions and link unfurling.
To enable SSO: 1. Update your bots [OAuth connection](../../bots/how-to/authentication/auth-aad-sso-bots.md#update-the-azure-portal-with-the-oauth-connection) details in the Microsoft Azure portal.
-2. Download the [messaging extensions sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config) and follow the setup instructions provided by the wizard.
+2. Download the [message extensions sample](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config) and follow the setup instructions provided by the wizard.
> [!NOTE]
- > Use your bots OAuth connection when setting up your messaging extensions.
+ > Use your bots OAuth connection when setting up your message extensions.
3. In the [TeamsMessagingExtensionsSearchAuthConfigBot.cs](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config/Bots/TeamsMessagingExtensionsSearchAuthConfigBot.cs) file, update the value from *auth* to *silentAuth* in the `OnTeamsMessagingExtensionQueryAsync` and / or `OnTeamsAppBasedLinkQueryAsync`. > [!NOTE]
To enable SSO:
## See also
-* [Add authentication to your messaging extensions](add-authentication.md)
+* [Add authentication to your message extensions](add-authentication.md)
* [Use SSO for bots](../../bots/how-to/authentication/auth-aad-sso-bots.md) * [Link unfurling](link-unfurling.md)
platform Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/link-unfurling.md
Title: Link unfurling
-description: Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.
+description: Learn how to add link unfurling with message extension in a Microsoft Teams app with app manifest or manually using code examples and samples.
ms.localizationpriority: medium
This document guides you on how to add link unfurling to your app manifest using
> * Currently, link unfurling is not supported on Mobile clients. > * The link unfurling result is cached for 30 minutes.
-The Azure DevOps messaging extension uses link unfurling to look for URLs pasted into the compose message area pointing to a work item. In the following image, a user has pasted a URL for a work item in Azure DevOps, which the messaging extension has resolved into a card:
+The Azure DevOps message extension uses link unfurling to look for URLs pasted into the compose message area pointing to a work item. In the following image, a user has pasted a URL for a work item in Azure DevOps, which the message extension has resolved into a card:
![Example of link unfurling](~/assets/images/compose-extensions/messagingextensions_linkunfurling.png)
To add link unfurling to your app manifest, add a new `messageHandlers` array to
1. Open **App Studio** from the Microsoft Teams client, and select the **Manifest Editor** tab. 1. Load your app manifest.
-1. On the **Messaging Extension** page, add the domain that you want to look for in the **Message handlers** section. The following image explains the process:
+1. On the **Message Extension** page, add the domain that you want to look for in the **Message handlers** section. The following image explains the process:
![message handlers section in App Studio](~/assets/images/link-unfurling.png) ### Add link unfurling manually
-To enable your messaging extension to interact with links, first you must add the `messageHandlers` array to your app manifest. The following example explains how to add link unfurling manually:
+To enable your message extension to interact with links, first you must add the `messageHandlers` array to your app manifest. The following example explains how to add link unfurling manually:
```json ...
platform Define Search Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md
Title: Define messaging extension search commands
+ Title: Define message extension search commands
-description: Learn about messaging extension search commands for Microsoft Teams apps, to create a search command through app manifest and manually using code examples and sample.
+description: Learn about message extension search commands for Microsoft Teams apps, to create a search command through app manifest and manually using code examples and sample.
ms.localizationpriority: none
-# Define messaging extension search commands
+# Define message extension search commands
[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)]
-Messaging extension search commands allow users to search external systems and insert the results of that search into a message in the form of a card. This document guides you on how to select search command invoke locations, and add the search command to your app manifest.
+Message extension search commands allow users to search external systems and insert the results of that search into a message in the form of a card. This document guides you on how to select search command invoke locations, and add the search command to your app manifest.
> [!NOTE] > The result card size limit is 28 KB. The card is not sent if its size exceeds 28 KB.
To add the search command to your app manifest, you must add a new `composeExten
### Create a search command using App Studio
-The prerequisite to create a search command is that you must already have created a messaging extension. For information on how to create a messaging extension, see [create a messaging extension](~/messaging-extensions/how-to/create-messaging-extension.md).
+The prerequisite to create a search command is that you must already have created a message extension. For information on how to create a message extension, see [create a message extension](~/messaging-extensions/how-to/create-messaging-extension.md).
To create a search command: 1. Open **App Studio** from the Microsoft Teams client, and select the **Manifest Editor** tab. 1. If you already created your app package in **App Studio**, select from the list. If you have not created an app package, import an existing one.
-1. After importing app package, select **Messaging extensions** under **Capabilities**. You get a pop-up window to set up the messaging extension.
-1. Select **Set up** in the window to include the messaging extension in your app experience. The following image displays the messaging extension set up page:
+1. After importing app package, select **Message extensions** under **Capabilities**. You get a pop-up window to set up the message extension.
+1. Select **Set up** in the window to include the message extension in your app experience. The following image displays the message extension set up page:
<img src="~/assets/images/messaging-extension/messaging-extension-set-up.png" alt="messaging extension set up" width="500"/>
-1. To create the messaging extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for messaging extension:
+1. To create the message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for message extension:
<img src="~/assets/images/messaging-extension/create-bot-for-messaging-extension.png" alt="create bot for messaging extension" width="500"/>
-1. Select **Add** in the **Command section** of the messaging extensions page to include the commands which decides the behaviour of messaging extension.
-The following image displays command addition for messaging extension:
+1. Select **Add** in the **Command section** of the message extensions page to include the commands which decides the behaviour of message extension.
+The following image displays command addition for message extension:
<img src="~/assets/images/messaging-extension/include-command.png" alt="include command" width="500"/> 1. Select **Allow users to query your service for information and insert that into a message**. The following image displays the search command parameter selection:
The following image displays command addition for messaging extension:
### Create a search command manually
-To manually add your messaging extension search command to your app manifest, you must add the following parameters to your `composeExtension.commands` array of objects:
+To manually add your message extension search command to your app manifest, you must add the following parameters to your `composeExtension.commands` array of objects:
| Property name | Purpose | Required? | Minimum manifest version | |||||
For the complete app manifest, see [App manifest schema](~/resources/schema/mani
| Sample Name | Description | .NET | Node.js | |:|:--|:|:--|
-|Teams messaging extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
+|Teams message extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
## Step-by-step guide
-Follow the [step-by-step guide](../../../sbs-messagingextension-searchcommand.yml) to build a search based messaging extension.
+Follow the [step-by-step guide](../../../sbs-messagingextension-searchcommand.yml) to build a search based message extension.
## Next step
platform Respond To Search https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md
Title: Respond to search command
-description: Learn how to respond to the search command from a messaging extension in a Microsoft Teams app using code examples and samples
+description: Learn how to respond to the search command from a message extension in a Microsoft Teams app using code examples and samples
ms.localizationpriority: none
Your service must respond with the results matching the user query. The response
|Property name|Purpose| ||| |`composeExtension`|Top-level response envelope.|
-|`composeExtension.type`|Type of response. The following types are supported: <br>`result`: Displays a list of search results <br>`auth`: Asks the user to authenticate <br>`config`: Asks the user to set up the messaging extension <br>`message`: Displays a plain text message |
+|`composeExtension.type`|Type of response. The following types are supported: <br>`result`: Displays a list of search results <br>`auth`: Asks the user to authenticate <br>`config`: Asks the user to set up the message extension <br>`message`: Displays a plain text message |
|`composeExtension.attachmentLayout`|Specifies the layout of the attachments. Used for responses of type `result`. <br>Currently, the following types are supported: <br>`list`: A list of card objects containing thumbnail, title, and text fields <br>`grid`: A grid of thumbnail images | |`composeExtension.attachments`|Array of valid attachment objects. Used for responses of type `result`. <br>Currently, the following types are supported: <br>`application/vnd.microsoft.card.thumbnail` <br>`application/vnd.microsoft.card.hero` <br>`application/vnd.microsoft.teams.card.o365connector` <br>`application/vnd.microsoft.card.adaptive`| |`composeExtension.suggestedActions`|Suggested actions. Used for responses of type `auth` or `config`. |
async handleTeamsMessagingExtensionSelectItem(context, obj) {
## Default query
-If you set `initialRun` to `true` in the manifest, Microsoft Teams issues a **default** query when the user first opens the messaging extension. Your service can respond to this query with a set of pre-populated results. This is useful when your search command requires authentication or configuration, displaying recently viewed items, favorites, or any other information that isn't dependent on user input.
+If you set `initialRun` to `true` in the manifest, Microsoft Teams issues a **default** query when the user first opens the message extension. Your service can respond to this query with a set of pre-populated results. This is useful when your search command requires authentication or configuration, displaying recently viewed items, favorites, or any other information that isn't dependent on user input.
The default query has the same structure as any regular user query, with the `name` field set to `initialRun` and `value` set to `true` as shown in the following object:
The default query has the same structure as any regular user query, with the `na
| Sample Name | Description | .NET | Node.js | |:|:--|:|:--|
-|Teams messaging extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
-|Teams messaging extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
+|Teams message extension action| Describes how to define action commands, create task module, and respond to task module submit action. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) |
+|Teams message extension search | Describes how to define search commands and respond to searches. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search)|
## Next step > [!div class="nextstepaction"]
-> [Add authentication to a messaging extension](~/messaging-extensions/how-to/add-authentication.md)
+> [Add authentication to a message extension](~/messaging-extensions/how-to/add-authentication.md)
## See also
-[Add configuration to a messaging extension](~/get-started/first-message-extension.md)
+[Add configuration to a message extension](~/get-started/first-message-extension.md)
platform What Are Messaging Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/what-are-messaging-extensions.md
Title: Messaging extensions
+ Title: Message extensions
-description: An overview of messaging extensions on the Microsoft Teams platform
+description: An overview of message extensions on the Microsoft Teams platform
ms.localizationpriority: medium
-# Messaging extensions
+# Message extensions
-Messaging extensions allow the users to interact with your web service through buttons and forms in the Microsoft Teams client. They can search or initiate actions in an external system from the compose message area, the command box, or directly from a message. You can send back the results of that interaction to the Microsoft Teams client in the form of a richly formatted card. This document gives an overview of the messaging extension, tasks performed under different scenarios, working of messaging extension, action and search commands, and link unfurling.
+Message extensions allow the users to interact with your web service through buttons and forms in the Microsoft Teams client. They can search or initiate actions in an external system from the compose message area, the command box, or directly from a message. You can send back the results of that interaction to the Microsoft Teams client in the form of a richly formatted card. This document gives an overview of the message extension, tasks performed under different scenarios, working of message extension, action and search commands, and link unfurling.
-The following image displays the locations from where messaging extensions are invoked:
+The following image displays the locations from where message extensions are invoked:
-![messaging extension invoke locations](~/assets/images/messaging-extension-invoke-locations.png)
+![message extension invoke locations](~/assets/images/messaging-extension-invoke-locations.png)
> [!NOTE] > @mentioning message extensions is no longer supported in the compose box.
-## Scenarios where messaging extensions are used
+## Scenarios where message extensions are used
| Scenario | Example | |:--|:--|
The following image displays the locations from where messaging extensions are i
|You want to find something in an external system, and share the results with the conversation.|Search for a work item in Azure DevOps, and share it with the group as an Adaptive Card.| |You want to complete a complex task involving multiple steps or lots of information in an external system, and share the results with a conversation.|Create a bug in your tracking system based on a Teams message, assign that bug to Bob, and send a card to the conversation thread with the bug's details.|
-## Understand how messaging extensions work
+## Understand how message extensions work
-A messaging extension consists of a web service that you host and an app manifest, which defines where your web service is invoked from in the Microsoft Teams client. The web service takes advantage of the Bot Framework's messaging schema and secure communication protocol, so you must register your web service as a bot in the Bot Framework.
+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 Microsoft Teams client. The web service takes advantage of the Bot Framework's messaging schema and secure communication protocol, so you must register your web service as a bot in the Bot Framework.
> [!NOTE] > Though you can create the web service manually, use [Bot Framework SDK](https://github.com/microsoft/botframework-sdk) to work with the protocol.
-In the app manifest for Microsoft Teams app, a single messaging extension is defined with up to ten different commands. Each command defines a type, such as action or search and the locations in the client from where it is invoked. The invoke locations are compose message area, command bar, and message. On invoke, the web service receives an HTTPS message with a JSON payload including all the relevant information. Respond with a JSON payload, allowing the Teams client to know the next interaction to enable.
+In the app manifest for Microsoft Teams app, a single message extension is defined with up to ten different commands. Each command defines a type, such as action or search and the locations in the client from where it is invoked. The invoke locations are compose message area, command bar, and message. On invoke, the web service receives an HTTPS message with a JSON payload including all the relevant information. Respond with a JSON payload, allowing the Teams client to know the next interaction to enable.
-## Types of messaging extension commands
+## Types of message extension commands
-There are two types of messaging extension commands, action command and search command. The messaging extension command type defines the UI elements and interaction flows available to your web service. Some interactions, such as authentication and configuration are available for both types of commands.
+There are two types of message extension commands, action command and search command. The message extension command type defines the UI elements and interaction flows available to your web service. Some interactions, such as authentication and configuration are available for both types of commands.
### Action commands Action commands are used to present the users with a modal popup to collect or display information. When the user submits the form, your web service responds by inserting a message into the conversation directly or by inserting a message into the compose message area. After that the user can submit the message. You can chain multiple forms together for more complex workflows.
-The action commands are triggered from the compose message area, the command box, or from a message. When the command is invoked from a message, the initial JSON payload sent to your bot includes the entire message it was invoked from. The following image displays the messaging extension action command task module:
-![messaging extension action command task module](~/assets/images/task-module.png)
+The action commands are triggered from the compose message area, the command box, or from a message. When the command is invoked from a message, the initial JSON payload sent to your bot includes the entire message it was invoked from. The following image displays the message extension action command task module:
+![message extension action command task module](~/assets/images/task-module.png)
### Search commands Search commands allow the users to search an external system for information either manually through a search box, or by pasting a link to a monitored domain into the compose message area, and insert the results of the search into a message. In the most basic search command flow, the initial invoke message includes the search string that the user submitted. You respond with a list of cards and card previews. The Teams client renders a list of card previews for the user. When the user selects a card from the list, the full-size card is inserted into the compose message area. The cards are triggered from the compose message area or the command box and not triggered from a message. They can not be triggered from a message.
-The following image displays the messaging extension search command task module:
+The following image displays the message extension search command task module:
-![messaging extension search command](~/assets/images/search-extension.png)
+![message extension search command](~/assets/images/search-extension.png)
> [!NOTE] > For more information on cards, see [what are cards](../task-modules-and-cards/what-are-cards.md).
The following image displays the messaging extension search command task module:
## Link unfurling A web service is invoked when a URL is pasted in the compose message area. This functionality is known as link unfurling. You can subscribe to receive an invoke when URLs containing a particular domain are pasted into the compose message area. Your web service can "unfurl" the URL into a detailed card, providing more information than the standard website preview card. You can add buttons to allow the users to immediately take action without leaving the Microsoft Teams client.
-The following images display link unfurling feature when a link is pasted in messaging extension:
+The following images display link unfurling feature when a link is pasted in message extension:
![unfurl link](../assets/images/messaging-extension/unfurl-link.png)
The following images display link unfurling feature when a link is pasted in mes
## Code snippets
-The following code provides an example of action based for messaging extensions:
+The following code provides an example of action based for message extensions:
# [C#](#tab/dotnet)
The following code provides an example of action based for messaging extensions:
-The following code provides an example of search based for messaging extensions:
+The following code provides an example of search based for message extensions:
# [C#](#tab/dotnet)
async handleTeamsMessagingExtensionQuery(context, query) {
| **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | ||-|-|||
-| Messaging extension with action-based commands | This sample illustrates how to build an action-based messaging extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/51.teams-messaging-extensions-action) |
-| Messaging extension with search-based commands | This sample illustrates how to build a Search-based Messaging Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/50.teams-messaging-extension-search) |
-|Messaging extension action for task scheduling|This sample illustrates how to schedule a task from messaging extension action command and get a reminder card at a scheduled date and time.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/nodejs)|
+| Message extension with action-based commands | This sample illustrates how to build an action-based message extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/51.teams-messaging-extensions-action) |
+| Message extension with search-based commands | This sample illustrates how to build a Search-based Message Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/50.teams-messaging-extension-search) |
+|Message extension action for task scheduling|This sample illustrates how to schedule a task from message extension action command and get a reminder card at a scheduled date and time.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/nodejs)|
## Next step > [!div class="nextstepaction"]
-> [Define action messaging extension command](~/messaging-extensions/how-to/action-commands/define-action-command.md)
+> [Define action message extension command](~/messaging-extensions/how-to/action-commands/define-action-command.md)
## See also
-* [Define search messaging extension command](~/messaging-extensions/how-to/search-commands/define-search-command.md)
-* [Create a messaging extension](../build-your-first-app/build-messaging-extension.md)
+* [Define search message extension command](~/messaging-extensions/how-to/search-commands/define-search-command.md)
+* [Create a message extension](../build-your-first-app/build-messaging-extension.md)
platform Overview Explore https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/overview-explore.md
With Teams, you can build your app in a feature-rich environment. Using Teams as
| | | | |Tabs | Tabs are Teams-aware webpages embedded in Microsoft Teams. You can add them as part of a channel inside a team, group chat, or personal app for an individual user. | Personal tab, channel or group tab, stage view, and link unfurling. | | Bots | A bot is also referred to as a chatbot or conversational bot. It's an app that runs simple and repetitive automated tasks done by the users. A bot interaction can be a quick question and answer, or it can be a complex conversation that provides access to services. | Customer service, information about the weather, make dinner reservations, or provide travel information. |
-| Messaging extensions | Messaging extensions let the users interact with your web service Teams client. They search or start actions in an external system. You can send the result of the interaction to the Teams client as a richly formatted card. | Reserve a resource and allow the channel to know the reserved time slot. Search for a work item, and share it with the group as an Adaptive Card. Create a bug in your tracking system based on a Teams message, assign that bug to a user, and send a card to the conversation thread with the bug's details. |
+| Message extension | Message extensions let the users interact with your web service Teams client. They search or start actions in an external system. You can send the result of the interaction to the Teams client as a richly formatted card. | Reserve a resource and allow the channel to know the reserved time slot. Search for a work item, and share it with the group as an Adaptive Card. Create a bug in your tracking system based on a Teams message, assign that bug to a user, and send a card to the conversation thread with the bug's details. |
|Meeting extensions | You can create apps to make meetings more productive. | Ask people to complete a survey during a call or send a quick reminder that doesnΓÇÖt interrupt the flow of the meeting. | | Personal app | A personal app is a dedicated space (tab) or bot to help users focus on their own tasks or view activities important to them. | OneNote is a personal app that gives you a private workspace within Teams. Planner offers a bird's eye view of all your tasks, across boards that you or your team have added as channel tabs. | | Webhooks and connectors | Communicate with external apps, and send or receive notifications and messages from other apps. | Subscribe to receive notifications and messages from your web services. |
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/overview.md
Last updated 05/24/2021
# Teams app that fits
-Microsoft Teams offers a collection of apps that are provided by Microsoft or external services. Teams apps can be tabs, bots, or messaging extensions or any combination of the three. These apps expand the value of your Teams collaborative experience.
+Microsoft Teams offers a collection of apps that are provided by Microsoft or external services. Teams apps can be tabs, bots, or message extensions or any combination of the three. These apps expand the value of your Teams collaborative experience.
Apps can be personal or shared. A personal app enables a one-on-one communication, and a shared app lets multiple users share app space to collaborate.
platform Bots Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-cards.md
Last updated 03/29/2018
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-A *card* is a user-interface (UI) container for short or related pieces of information. Cards can have multiple properties and attachments. Teams support cards in bots, connectors and messaging extensions. See [Cards](~/task-modules-and-cards/what-are-cards.md) for an overview of what cards are and how Teams uses them.
+A *card* is a user-interface (UI) container for short or related pieces of information. Cards can have multiple properties and attachments. Teams support cards in bots, connectors and message extensions. See [Cards](~/task-modules-and-cards/what-are-cards.md) for an overview of what cards are and how Teams uses them.
Bots use cards as part of conversations. For more information, see [Bot Conversations](~/resources/bot-v3/bot-conversations/bots-conversations.md).
platform Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-overview.md
A bot behaves differently depending on what kind of conversation it is involved
For more information, see [Have a conversation with a Microsoft Teams bot](~/resources/bot-v3/bot-conversations/bots-conversations.md).
-With Microsoft Teams apps, you can make the bot the star of your experience, or just a helper. Bots are distributed as part of your broader app package which can include other capabilities such as [tabs](~/tabs/what-are-tabs.md) or [messaging extensions](~/messaging-extensions/what-are-messaging-extensions.md).
+With Microsoft Teams apps, you can make the bot the star of your experience, or just a helper. Bots are distributed as part of your broader app package which can include other capabilities such as [tabs](~/tabs/what-are-tabs.md) or [message extensions](~/messaging-extensions/what-are-messaging-extensions.md).
## Bot APIs
Microsoft Teams supports most of the [Microsoft Bot Framework](https://dev.botfr
* Using specialized card types like the Office 365 Connector card. * Consuming and setting Teams-specific channel data on activities.
-* Processing messaging extension requests.
+* Processing message extension requests.
The SDK extensions install dependencies, including the Bot Builder SDK.
platform Bots Test https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-test.md
Complete instructions on the Bot Framework Emulator can be found [here](/azure/b
>[!Important] >Talking to your bot by ID is intended for testing purposes only.
-You can also initiate a conversation with your bot by using its ID. Two methods for doing so are given below. When a bot has been added through one of these methods it won't be addressable in channel conversations, and you can't take advantage of other Microsoft Teams app capabilities like tabs or messaging extensions.
+You can also initiate a conversation with your bot by using its ID. Two methods for doing so are given below. When a bot has been added through one of these methods it won't be addressable in channel conversations, and you can't take advantage of other Microsoft Teams app capabilities like tabs or message extensions.
1. On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Channels**, select **Add to Microsoft Teams**. Microsoft Teams will launch with a personal chat with your bot. 2. Directly reference your bot's app ID from within Microsoft Teams:
platform Create Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/create-extensions.md
Title: Initiate actions with messaging extensions
-description: Create Action-based messaging extensions to allow users to trigger external services
+ Title: Initiate actions with message extensions
+description: Create Action-based message extensions to allow users to trigger external services
ms.localizationpriority: medium
-keywords: teams messaging extensions messaging extensions search
+keywords: teams message extensions message extensions search
-# Initiate actions with messaging extensions
+# Initiate actions with message extensions
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-me.md)]
-Action-based messaging extensions allow your users to trigger actions in external services while in Teams.
+Action-based message extensions allow your users to trigger actions in external services while in Teams.
-![Example of messaging extension card](~/assets/images/compose-extensions/ceexample.png)
+![Example of message extension card](~/assets/images/compose-extensions/ceexample.png)
The following sections describe how to do this:
The following sections describe how to do this:
## Action type message extensions
-To initiate actions from a messaging extension, set the `type` parameter to `action`. Below is an example of a manifest with a search and a create command. A single messaging extension can have up to 10 different commands. This can include both multiple search and multiple action-based commands.
+To initiate actions from a message extension, set the `type` parameter to `action`. Below is an example of a manifest with a search and a create command. A single message extension can have up to 10 different commands. This can include both multiple search and multiple action-based commands.
### Complete app manifest example
To initiate actions from a messaging extension, set the `type` parameter to `act
### Initiate actions from messages
-In addition to initiating actions from the compose message area, you can also use your messaging extension to initiate an action from a message. This will allow you to send the message contents to your bot for processing and optionally reply to that message with a response using the method, which is described in [Responding to submit](#responding-to-submit). The response will be inserted as a reply to the message that your users can edit before submitting. Your users can access messaging extension from the overflow `...` menu and then selecting `Take action` as in the following image:
+In addition to initiating actions from the compose message area, you can also use your message extension to initiate an action from a message. This will allow you to send the message contents to your bot for processing and optionally reply to that message with a response using the method, which is described in [Responding to submit](#responding-to-submit). The response will be inserted as a reply to the message that your users can edit before submitting. Your users can access message extension from the overflow `...` menu and then selecting `Take action` as in the following image:
![Example of initiating an action from a message](~/assets/images/compose-extensions/messageextensions_messageaction.png)
-To enable your messaging extension to work from a message, add the `context` parameter to your messaging extension's `commands` object in your app manifest as in the following example. Valid strings for the `context` array are `"message"`, `"commandBox"`, and `"compose"`. The default value is `["compose", "commandBox"]`. See the [define commands](#define-commands) section for complete details on the `context` parameter:
+To enable your message extension to work from a message, add the `context` parameter to your message extension's `commands` object in your app manifest as in the following example. Valid strings for the `context` array are `"message"`, `"commandBox"`, and `"compose"`. The default value is `["compose", "commandBox"]`. See the [define commands](#define-commands) section for complete details on the `context` parameter:
```json "composeExtensions": [
Below is an example of the `value` object containing the message details that wi
### Test via uploading
-You can test your messaging extension by uploading your app. For more information, see [Uploading your app in a team](~/concepts/deploy-and-publish/apps-upload.md).
+You can test your message extension by uploading your app. For more information, see [Uploading your app in a team](~/concepts/deploy-and-publish/apps-upload.md).
-To open your messaging extension, navigate to any of your chats or channels. Choose the **More options** (**&#8943;**) button in the compose box, and choose your messaging extension.
+To open your message extension, navigate to any of your chats or channels. Choose the **More options** (**&#8943;**) button in the compose box, and choose your message extension.
## Collecting input from users
Just like in the adaptive card flow your service sends a `fetchTask` event and r
If your app contains a conversation bot, ensure it's installed in the conversation before loading your task module. This can be useful in situations where you need to get additional context for your task module. For example, you may need to fetch the roster to populate a people picker control, or the list of channels in a team.
-To facilitate this flow, when your messaging extension first receives the `composeExtension/fetchTask` invoke check to see if your bot is installed in the current context. You can get this, by attempting the get roster call. For example, if your bot isn't installed, you return an Adaptive Card with an action that requests the user to install your bot. The user needs to have permission to install apps in that location. If they canΓÇÖt install, the message prompts to contact the administrator.
+To facilitate this flow, when your message extension first receives the `composeExtension/fetchTask` invoke check to see if your bot is installed in the current context. You can get this, by attempting the get roster call. For example, if your bot isn't installed, you return an Adaptive Card with an action that requests the user to install your bot. The user needs to have permission to install apps in that location. If they canΓÇÖt install, the message prompts to contact the administrator.
Here's an example of the response:
This is used to insert a card into the compose box as a result of the command. I
Respond to the submit action by inserting a message with an Adaptive Card into the channel with a bot. Your user can preview the message before submitting it, and potentially edit/interact with it as well. This can be useful in scenarios where you need to gather information from your users before creating an adaptive card response. The following scenario shows how you can use this flow to configure a poll without including the configuration steps in the channel message.
-1. The user selects the messaging extension to trigger the task module.
+1. The user selects the message extension to trigger the task module.
1. The user uses the task module to configure the poll. 1. After submitting the configuration task module, the app uses the information provided in the task module to craft an adaptive card and sends it as a `botMessagePreview` response to the client. 1. The user can then preview the adaptive card message before the bot inserts it into the channel. If the bot isn't already a member of the channel, clicking `Send` will add the bot.
platform Messaging Extensions Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/messaging-extensions-overview.md
Title: Develop messaging extensions
-description: Describes how to get started with messaging extensions in Microsoft Teams
+ Title: Develop message extensions
+description: Describes how to get started with message extensions in Microsoft Teams
ms.localizationpriority: medium
-keywords: teams messaging extensions messaging extensions
+keywords: teams message extensions message extensions
-# Develop messaging extensions for Microsoft Teams
+# Develop message extensions for Microsoft Teams
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-me.md)]
-Messaging extensions are a powerful way for users to engage with your app from Microsoft Teams. With this capability, users can query or post information to and from your service and post that information, in the form of cards, right into a message.
+Message extensions are a powerful way for users to engage with your app from Microsoft Teams. With this capability, users can query or post information to and from your service and post that information, in the form of cards, right into a message.
-![Example of messaging extension card](~/assets/images/compose-extensions/ceexample.png)
+![Example of message extension card](~/assets/images/compose-extensions/ceexample.png)
-Messaging extensions appear along the bottom of the compose box. A few are built in, such as Emoji, Giphy, and Sticker. Choose the **More Options** (**&#8943;**) button to see other messaging extensions, including those you add from the app gallery or upload yourself.
+Message extensions appear along the bottom of the compose box. A few are built in, such as Emoji, Giphy, and Sticker. Choose the **More Options** (**&#8943;**) button to see other message extensions, including those you add from the app gallery or upload yourself.
-How would you use messaging extensions? Here are a few possibilities:
+How would you use message extensions? Here are a few possibilities:
* Work items and bugs * Customer support tickets
How would you use messaging extensions? Here are a few possibilities:
* Images and media content * Sales opportunities and leads
-## Types of messaging extensions
+## Types of message extensions
-There's primarily two kinds of messaging extensions you can create for Teams today. The following topics will guide you through the process of creating them:
+There's primarily two kinds of message extensions you can create for Teams today. The following topics will guide you through the process of creating them:
-* [Search based messaging extensions](~/resources/messaging-extension-v3/search-extensions.md): Query your service for information and insert that into a message. Example: Lookup a work item
-* [Action-based messaging extensions](~/resources/messaging-extension-v3/create-extensions.md): Collect information from the user and post to a 3rd party service. Example: Create a work item
+* [Search based message extensions](~/resources/messaging-extension-v3/search-extensions.md): Query your service for information and insert that into a message. Example: Lookup a work item
+* [Action-based message extensions](~/resources/messaging-extension-v3/create-extensions.md): Collect information from the user and post to a 3rd party service. Example: Create a work item
platform Search Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/search-extensions.md
Title: Search with messaging extensions
-description: Describes how to develop search based messaging extensions
-keywords: teams messaging extensions messaging extensions search
+ Title: Search with message extensions
+description: Describes how to develop search based message extensions
+keywords: teams message extensions message extensions search
ms.localizationpriority: medium Last updated 07/20/2019
-# Search with messaging extensions
+# Search with message extensions
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-me.md)]
-Search based messaging extensions allow you to query your service and post that information in the form of a card, right into your message.
+Search based message extensions allow you to query your service and post that information in the form of a card, right into your message.
-![Example of messaging extension card](~/assets/images/compose-extensions/ceexample.png)
+![Example of message extension card](~/assets/images/compose-extensions/ceexample.png)
The following sections describe how to do this:
The following sections describe how to do this:
## Search type message extensions
-For search based messaging extension set the `type` parameter to `query`. Below is an example of a manifest with a single search command. A single messaging extension can have up to 10 different commands associated with it. This can include both multiple search and multiple Action-based commands.
+For search based message extension set the `type` parameter to `query`. Below is an example of a manifest with a single search command. A single message extension can have up to 10 different commands associated with it. This can include both multiple search and multiple Action-based commands.
### Complete app manifest example
For search based messaging extension set the `type` parameter to `query`. Below
## Test via uploading
-You can test your messaging extension by uploading your app.
+You can test your message extension by uploading your app.
-To open your messaging extension, navigate to any of your chats or channels. Choose the **More options** (**&#8943;**) button in the compose box, and choose your messaging extension.
+To open your message extension, navigate to any of your chats or channels. Choose the **More options** (**&#8943;**) button in the compose box, and choose your message extension.
## Add event handlers
-Most of your work involves the `onQuery` event, which handles all interactions in the messaging extension window.
+Most of your work involves the `onQuery` event, which handles all interactions in the message extension window.
-If you set `canUpdateConfiguration` to `true` in the manifest, you enable the **Settings** menu item for your messaging extension and must also handle `onQuerySettingsUrl` and `onSettingsUpdate`.
+If you set `canUpdateConfiguration` to `true` in the manifest, you enable the **Settings** menu item for your message extension and must also handle `onQuerySettingsUrl` and `onSettingsUpdate`.
## Handle onQuery events
-A messaging extension receives an `onQuery` event when anything happens in the messaging extension window or is sent to the window.
+A message extension receives an `onQuery` event when anything happens in the message extension window or is sent to the window.
-If your messaging extension uses a configuration page, your handler for `onQuery` should first check for any stored configuration information; if the messaging extension isn't configured, return a `config` response with a link to your configuration page. Be aware that the response from the configuration page is also handled by `onQuery`. The sole exception is when the configuration page is called by the handler for `onQuerySettingsUrl`; see the following section:
+If your message extension uses a configuration page, your handler for `onQuery` should first check for any stored configuration information; if the message extension isn't configured, return a `config` response with a link to your configuration page. Be aware that the response from the configuration page is also handled by `onQuery`. The sole exception is when the configuration page is called by the handler for `onQuerySettingsUrl`; see the following section:
-If your messaging extension requires authentication, check the user state information; if the user isn't signed in, follow the instructions in the [Authentication](#authentication) section later in this topic.
+If your message extension requires authentication, check the user state information; if the user isn't signed in, follow the instructions in the [Authentication](#authentication) section later in this topic.
Next, check whether `initialRun` is set; if so, take appropriate action, such as providing instructions or a list of responses.
Your handler for `onQuerySettingsUrl` returns the URL for the configuration page
## Receive and respond to queries
-Every request to your messaging extension is done via an `Activity` object that is posted to your callback URL. The request contains information about the user command, such as ID and parameter values. The request also supplies metadata about the context in which your extension was invoked, including user and tenant ID, along with chat ID or channel and team IDs.
+Every request to your message extension is done via an `Activity` object that is posted to your callback URL. The request contains information about the user command, such as ID and parameter values. The request also supplies metadata about the context in which your extension was invoked, including user and tenant ID, along with chat ID or channel and team IDs.
### Receive user requests
The request parameters itself are found in the value object, which includes the
### Receive requests from links inserted into the compose message box
-As an alternative (or in addition) to searching your external service, you can use a URL inserted into the compose message box to query your service and return a card. In the screenshot below a user has pasted in a URL for a work item in Azure DevOps which the messaging extension has resolved into a card.
+As an alternative (or in addition) to searching your external service, you can use a URL inserted into the compose message box to query your service and return a card. In the screenshot below a user has pasted in a URL for a work item in Azure DevOps which the message extension has resolved into a card.
![Example of link unfurling](~/assets/images/compose-extensions/messagingextensions_linkunfurling.png)
-To enable your messaging extension to interact with links this way you'll first need to add the `messageHandlers` array to your app manifest as in the example below:
+To enable your message extension to interact with links this way you'll first need to add the `messageHandlers` array to your app manifest as in the example below:
```json "composeExtensions": [
Your service should respond with the results matching the user query. The respon
|Property name|Purpose| ||| |`composeExtension`|Top-level response envelope.|
-|`composeExtension.type`|Type of response. The following types are supported: <br>`result`: displays a list of search results <br>`auth`: asks the user to authenticate <br>`config`: asks the user to set up the messaging extension <br>`message`: displays a plain text message |
+|`composeExtension.type`|Type of response. The following types are supported: <br>`result`: displays a list of search results <br>`auth`: asks the user to authenticate <br>`config`: asks the user to set up the message extension <br>`message`: displays a plain text message |
|`composeExtension.attachmentLayout`|Specifies the layout of the attachments. Used for responses of type `result`. <br>Currently the following types are supported: <br>`list`: a list of card objects containing thumbnail, title, and text fields <br>`grid`: a grid of thumbnail images | |`composeExtension.attachments`|Array of valid attachment objects. Used for responses of type `result`. <br>Currently the following types are supported: <br>`application/vnd.microsoft.card.thumbnail` <br>`application/vnd.microsoft.card.hero` <br>`application/vnd.microsoft.teams.card.o365connector` <br>`application/vnd.microsoft.card.adaptive`| |`composeExtension.suggestedActions`|Suggested actions. Used for responses of type `auth` or `config`. |
This example shows a response with two results, mixing different card formats: O
### Default query
-If you set `initialRun` to `true` in the manifest, Microsoft Teams issues a "default" query when the user first opens the messaging extension. Your service can respond to this query with a set of prepopulated results. This can be useful for displaying, for instance, recently viewed items, favorites, or any other information that is not dependent on user input.
+If you set `initialRun` to `true` in the manifest, Microsoft Teams issues a "default" query when the user first opens the message extension. Your service can respond to this query with a set of prepopulated results. This can be useful for displaying, for instance, recently viewed items, favorites, or any other information that is not dependent on user input.
The default query has the same structure as any regular user query, except with a parameter `initialRun` whose string value is `true`.
The `id` and `aadObjectId` values are guaranteed to be that of the authenticated
## Authentication
-If your service requires user authentication, you need to sign in the user before he or she can use the messaging extension. If you have written a bot or a tab that signs in the user, this section should be familiar.
+If your service requires user authentication, you need to sign in the user before he or she can use the message extension. If you have written a bot or a tab that signs in the user, this section should be familiar.
The sequence is as follows:
At this point, the window closes and control is passed to the Teams client. The
### .NET
-To receive and handle queries with the Bot Builder SDK for .NET, you can check for the `invoke` action type on the incoming activity and then use the helper method in the NuGet package [Microsoft.Bot.Connector.Teams](https://www.nuget.org/packages/Microsoft.Bot.Connector.Teams) to determine whether itΓÇÖs a messaging extension activity.
+To receive and handle queries with the Bot Builder SDK for .NET, you can check for the `invoke` action type on the incoming activity and then use the helper method in the NuGet package [Microsoft.Bot.Connector.Teams](https://www.nuget.org/packages/Microsoft.Bot.Connector.Teams) to determine whether itΓÇÖs a message extension activity.
#### Example code in .NET
platform Samesite Cookie Update https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/samesite-cookie-update.md
Title: SameSite cookie attribute
-description: Learn about Types of cookies, including SameSite cookies, their attributes, their implications in Teams tabs, task modules, and messaging extensions, and their authentication in Teams
+description: Learn about Types of cookies, including SameSite cookies, their attributes, their implications in Teams tabs, task modules, and message extensions, and their authentication in Teams
keywords: cookie attributes samesite ms.localizationpriority: medium
SameSite cookie attributes are as follows:
> [!NOTE] > You must set SameSite attributes to reflect the intended use for your cookies. Do not rely on default browser behavior. For more information, see [Developers: Get Ready for New SameSite=None; Secure Cookie Settings](https://blog.chromium.org/2019/10/developers-get-ready-for-new.html).
-### Tabs, task modules, and messaging extensions
+### Tabs, task modules, and message extensions
* Teams tabs use `<iframes>` to embed content that is viewed at a top level or first party context. * Task modules allow you to create modal popup experiences in your Teams application. Similar to a tab, a modal window opens inside the current page.
-* Messaging extensions allow you to insert enriched content into a chat message from external resources.
+* Message extensions allow you to insert enriched content into a chat message from external resources.
Any cookies used by embedded content are considered as third party when the site is displayed in an `<iframe>`. In addition, if any remote resources on a page rely on cookies being sent with a request `<img>` and `<script>` tags, external fonts, and personalized content, you must ensure those are marked for cross site usage, such as `SameSite=None; Secure` or ensure that a fallback is in place.
Any cookies used by embedded content are considered as third party when the site
You must use the web based authentication flow for the following: * Embedded content pages in tabs.
-* Configuration page, task module, and messaging extension.
+* Configuration page, task module, and message extension.
* Conversational bot with a task module. According to the updated SameSite restrictions, a browser does not add a cookie to an already authenticated web site if the link derives from an external site. You must ensure your authentication cookies are marked for cross site usage `SameSite=None; Secure` or ensure that a fallback is in place.
platform Manifest Schema Dev Preview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema-dev-preview.md
Last updated 11/15/2021
For information on how to enable developer preview, see [public developer preview for Microsoft Teams](~/resources/dev-preview/developer-preview-intro.md). > [!NOTE]
-> If you aren't using developer preview features, including running [Teams personal tabs and messaging extensions in Outlook and Office](../../m365-apps/overview.md), use the [app manifest for GA features](~/resources/schem) instead.
+> If you aren't using developer preview features, including running [Teams personal tabs and message extensions in Outlook and Office](../../m365-apps/overview.md), use the [app manifest for GA features](~/resources/schem) instead.
The Microsoft Teams manifest describes how the app integrates into the Microsoft Teams platform. Your manifest must conform to the schema hosted at [`https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json`](https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json).
The object is an array (maximum of 1 element) with all elements of type `object`
Optional:
-Defines a messaging extension for the app.
+Defines a message extension for the app.
> [!NOTE]
-> The name of the feature was changed from "compose extension" to "messaging extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.
+> The name of the feature was changed from "compose extension" to "message extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.
-The object is an array (maximum of 1 element) with all elements of type `object`. This block is required only for solutions that provide a messaging extension.
+The object is an array (maximum of 1 element) with all elements of type `object`. This block is required only for solutions that provide a message extension.
|Name| Type | Maximum Size | Required | Description| ||||||
-|`botId`|String|64|Γ£ö|The unique Microsoft app ID for the bot that backs the messaging extension, as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
-|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a messaging extension can be updated by the user. The default is `false`.|
-|`commands`|Array of object|10|Γ£ö|Array of commands the messaging extension supports|
+|`botId`|String|64|Γ£ö|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
+|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a message extension can be updated by the user. The default is `false`.|
+|`commands`|Array of object|10|Γ£ö|Array of commands the message extension supports|
### composeExtensions.commands
-Your messaging extension should declare one or more commands. Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point. There is a maximum of 10 commands.
+Your message extension should declare one or more commands. Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point. There is a maximum of 10 commands.
Each command item is an object with the following structure:
Each command item is an object with the following structure:
|`title`|String|32 characters|Γ£ö|The user-friendly command name.| |`description`|String|128 characters||The description that appears to users to indicate the purpose of this command.| |`initialRun`|Boolean|||A Boolean value that indicates whether the command should be run initially with no parameters. Default: `false`|
-|`context`|Array of Strings|3||Defines where the messaging extension can be invoked from. Any combination of `compose`, `commandBox`, `message`. Default is `["compose", "commandBox"]`|
+|`context`|Array of Strings|3||Defines where the message extension can be invoked from. Any combination of `compose`, `commandBox`, `message`. Default is `["compose", "commandBox"]`|
|`fetchTask`|Boolean|||A Boolean value that indicates if it should fetch the task module dynamically.|
-|`taskInfo`|Object|||Specify the task module to preload when using a messaging extension command.|
+|`taskInfo`|Object|||Specify the task module to preload when using a message extension command.|
|`taskInfo.title`|String|64||Initial dialog title.| |`taskInfo.width`|String|||Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'.| |`taskInfo.height`|String|||Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'.|
platform Manifest Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema.md
The object is an array (maximum of one element) with all elements of type `objec
**Optional**ΓÇöarray
-Defines a messaging extension for the app.
+Defines a message extension for the app.
> [!NOTE]
-> The name of the feature was changed from "compose extension" to "messaging extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.
+> The name of the feature was changed from "compose extension" to "message extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.
-The item is an array (maximum of one element) with all elements of type `object`. This block is required only for solutions that provide a messaging extension.
+The item is an array (maximum of one element) with all elements of type `object`. This block is required only for solutions that provide a message extension.
|Name| Type | Maximum Size | Required | Description| ||||||
-|`botId`|string|64|Γ£ö|The unique Microsoft app ID for the bot that backs the messaging extension, as registered with the Bot Framework. The ID can be the same as the overall App ID.|
-|`commands`|array of objects|10|Γ£ö|Array of commands the messaging extension supports.|
-|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a messaging extension can be updated by the user. Default: **false**.|
+|`botId`|string|64|Γ£ö|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. The ID can be the same as the overall App ID.|
+|`commands`|array of objects|10|Γ£ö|Array of commands the message extension supports.|
+|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a message extension can be updated by the user. Default: **false**.|
|`messageHandlers`|array of Objects|5||A list of handlers that allow apps to be invoked when certain conditions are met.| |`messageHandlers.type`|string|||The type of message handler. Must be `"link"`.| |`messageHandlers.value.domains`|array of Strings|||Array of domains that the link message handler can register for.| ### composeExtensions.commands
-Your messaging extension must declare one or more commands with a maximum of 10 commands. Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point.
+Your message extension must declare one or more commands with a maximum of 10 commands. Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point.
Each command item is an object with the following structure:
Each command item is an object with the following structure:
|`initialRun`|Boolean|||A Boolean value indicates whether the command runs initially with no parameters. Default is **false**.| |`context`|array of Strings|3||Defines where the message extension can be invoked from. Any combination of`compose`,`commandBox`,`message`. Default is `["compose","commandBox"]`.| |`fetchTask`|Boolean|||A Boolean value that indicates if it must fetch the task module dynamically. Default is **false**.|
-|`taskInfo`|object|||Specify the task module to pre-load when using a messaging extension command.|
+|`taskInfo`|object|||Specify the task module to pre-load when using a message extension command.|
|`taskInfo.title`|string|64 characters||Initial dialog title.| |`taskInfo.width`|string|||Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'.| |`taskInfo.height`|string|||Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'.|
platform App Templates https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/app-templates.md
The following table describes App template code samples:
|Book-a-room | Book-a-room is a [Microsoft Teams bot](../bots/what-are-bots.md) that allows users quickly to find and reserve a meeting room for 30, 60, or 90 minutes starting from the current time. The default time is 30 minutes. The Book-a-room bot scopes to personal or 1:1 conversations.| [Book-a-room](https://github.com/OfficeDev/microsoft-teams-apps-bookaroom) | | Building Access | Building Access is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/) based app that supports the administration of building occupancy thresholds and social distancing norms by enabling facilities directors to manage, track, and report employee on-site presence. The app, built using Microsoft [Power Apps](/powerapps/powerapps-overview), and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams and enables organizations to determine building readiness, establish eligibility criteria for on-site access, and gather insights for future planning. | [Building Access](https://github.com/OfficeDev/microsoft-teams-apps-buildingaccess) | | Celebrations |Celebrations is a Teams app that helps team members to celebrate each others' birthdays, anniversaries, and other recurring events. It remembers special occasions of all the team members and sends a friendly message in all the teams selected at the time of event creation, to make the team members feel special on their day. The app provides an easy interface for all the team members to personally add and view their events and also allows the user to select the teams in which the events gets shared. | [Celebrations](https://github.com/OfficeDev/microsoft-teams-celebrations-app) |
-| Checklist | Checklist is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to collaborate with your team by creating a shared checklist in a chat or channel. The app is supported across all Teams platform clients, such as desktop browser, iOS, and Android. The app is ready for deployment as part of your Microsoft 365 subscription. | [Checklist](https://github.com/OfficeDev/microsoft-teams-checklist-app)|
+| Checklist | Checklist is a custom Microsoft Teams [message extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to collaborate with your team by creating a shared checklist in a chat or channel. The app is supported across all Teams platform clients, such as desktop browser, iOS, and Android. The app is ready for deployment as part of your Microsoft 365 subscription. | [Checklist](https://github.com/OfficeDev/microsoft-teams-checklist-app)|
| Classroom Drop-in | Classroom Drop-in is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/)-based app that enables system leaders to find class teams, means virtual classrooms and add themselves or others to these class teams for a specified drop-in period, as needed. The app built using Microsoft [Power Apps](/powerapps/powerapps-overview) and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams to ensure educational institutes can optimize their operations in a hybrid learning environment by providing access to relevant stakeholders for class teams per business requirements.| [Classroom Drop-in](https://github.com/OfficeDev/microsoft-teams-apps-classroom-dropin) | | Contact Group Lookup |The Contact Group Lookup app provides a convenient and useful approach to creating, accessing, and managing your organization's contact groups, formerly known as distribution lists or communication groups. Users can quickly view and chat with group members, view member status, and create a group chat with selected members in the contact group, all within the Teams environment.| [Contact Group Lookup](https://github.com/OfficeDev/microsoft-teams-app-contactgrouplookup)| | CrowdSourcer | CrowdSourcer is a [Microsoft Teams bot](../bots/what-are-bots.md) that gives teams queried information sourced collaboratively from group members. It helps to answer frequently asked questions while enabling participants to actively engage in and contribute to a fun and helpful information resource.| [CrowdSourcer](https://github.com/OfficeDev/microsoft-teams-crowdsourcer-app)|
-|Custom Stickers | Self-expression is core to a healthy team culture. This app template is a [messaging extension](~/messaging-extensions/what-are-messaging-extensions.md) that enables your users to use custom stickers and GIFs within Microsoft Teams. This template provides an easy web-based configuration experience where anyone with configuration access can upload the GIFs, stickers, and images they want their users to have, allowing your entire team to use any set of stickers you choose. This app also enables easy sharing of images, GIFs, stickers across teams without needing access to SharePoint sites or individual channels as storage and sharing mechanisms. For example, product teams can easily share product images and GIFs to social media, marketing, and sales teams programmatically. One can also extend this app by triggering a notification flow to specific teams or individuals when new images, and GIFs are made available.| [Custom Stickers](https://github.com/OfficeDev/microsoft-teams-stickers-app) |
+|Custom Stickers | Self-expression is core to a healthy team culture. This app template is a [message extension](~/messaging-extensions/what-are-messaging-extensions.md) that enables your users to use custom stickers and GIFs within Microsoft Teams. This template provides an easy web-based configuration experience where anyone with configuration access can upload the GIFs, stickers, and images they want their users to have, allowing your entire team to use any set of stickers you choose. This app also enables easy sharing of images, GIFs, stickers across teams without needing access to SharePoint sites or individual channels as storage and sharing mechanisms. For example, product teams can easily share product images and GIFs to social media, marketing, and sales teams programmatically. One can also extend this app by triggering a notification flow to specific teams or individuals when new images, and GIFs are made available.| [Custom Stickers](https://github.com/OfficeDev/microsoft-teams-stickers-app) |
| Employee Ideas |The Employee Ideas app is the PowerApps version of the Azure based Great Ideas app template. The app enables the Teams users to set up and configure an idea campaign. An idea campaign is a category for grouping ideas around common themes. Teams users can also perform the following activities:<br/> Configure a standard submission form that employees must submit for each idea.<br/>Review and manage the ideas and list of campaigns. <br/>Modify and delete campaigns. <br/> Review leader boards of ideas. <br/> Vote for and share prioritized ideas. <br/> Submit ideas for a campaign. <br/> View other team member's idea. <br/>Vote on most liked ideas. <br/> Review the performance of their ideas compared with others within a campaign.|[Employee Ideas](https://github.com/OfficeDev/microsoft-teams-apps-employeeideas) | |E-Prescriptions| E-Prescriptions is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) based app that enhances telemedicine and virtual care by automating the process of issuing e-prescriptions to patients. Medical professionals can quickly review appointments, generate e-prescriptions, and send emails with e-prescription attachments to patients directly within the Teams platform.|[E-Prescriptions](https://github.com/OfficeDev/microsoft-teams-apps-eprescription)|
-| Employee Training | Employee training is a Microsoft Teams app that enables organizers to easily publish, track, and promote learning and training events for your organization. With the app, event planners can send reminders and notifications to event registrants and employees can indicate interest in upcoming events, stay updated on current events, and share event details with colleagues through the Teams messaging extension.|[Employee Training](https://github.com/OfficeDev/microsoft-teams-apps-employeetraining)|
+| Employee Training | Employee training is a Microsoft Teams app that enables organizers to easily publish, track, and promote learning and training events for your organization. With the app, event planners can send reminders and notifications to event registrants and employees can indicate interest in upcoming events, stay updated on current events, and share event details with colleagues through the Teams message extension.|[Employee Training](https://github.com/OfficeDev/microsoft-teams-apps-employeetraining)|
| Expert Finder| Expert Finder is a [Microsoft Teams bot](../bots/what-are-bots.md) that identifies specific organization members based on their skills, interests, and education attributes. Members find experts within an organization that match a keyword search of Microsoft Azure Active Directory (Azure AD) user profiles.| [Expert Finder](https://github.com/OfficeDev/microsoft-teams-apps-expertfinder)| | Get Support App| The Get Support app is used by organizations that are using Microsoft Teams, to enable any set of users to request assistance from supervisors. This app includes the following features: <br/>Requesting assistance on different categories from a Power App.<br/>Notifications sent to requestors informing them of who is assigned.<br/> Notifications sent to assigned supervisors informing them of who needs assistance. <br/>Analyzing escalations and patterns in SharePoint and Power BI.|[Get Support App](https://github.com/OfficeDev/microsoft-teams-app-get-support/) | | Goal Tracker|The Goal Tracker app is a comprehensive solution for your organization to support establishing goals, observing progress, and acknowledging success within Microsoft Teams. The app enables users to set, track, and update objectives on a professional, personal, and team level. Team members also receive timely reminders and status updates to remain focused and stay on track. |[Goal Tracker](https://github.com/OfficeDev/microsoft-teams-app-goaltracker) |
The following table describes App template code samples:
| Inspection|Inspection is a Microsoft Teams app that enables front line workers to inspect anything from locations to assets and equipments. For example, a retail store, manufacturing plant, or vehicles and machines. There are two apps in this solution, each intended for different types of users. The app empowers the front line workers to inspect an asset or area, to manage quality of products and services, or maintain safety at workplace. It facilitates communication between team members to address issues found during inspection. The app provides simple reports for managers to expedite issue resolution and highlight trends. |[Inspection](https://github.com/OfficeDev/microsoft-teams-apps-inspection) | |Issue Reporting |The Issue Reporting app empowers the employees and managers to raise and manage issues. It consists of two apps, Issue reporting app for reporting issues and Manage Issues app for managing issues. The team managers use the Manage Issues app to configure the app experience, including the channel in which Microsoft Teams messages and Planner tasks are created by the app. Managers also use the app to create template forms to collect details when a user reports an issue. For example, review, edit, or delete issue template forms. The app is also used to review team issues, report on issue history, and efficiently manage issue resolution. The employees use the Issue reporting app to log issues and details required to resolve them. The app is also used to modify and resolve existing issues and get a high-level view of individual or team issues. |[Issue Reporting](https://github.com/OfficeDev/microsoft-teams-apps-issuereporting) | | Open Badges| Open Badges is a Microsoft Teams app that enables individuals to earn digital learning credential badges within the Teams context and share them everywhere. Using capabilities from the third-party digital badge issuing authority, [Badgr](https://badgr.org/), awarded badges are recorded in a recipient's Badgr profile and available to build and share a rich picture of lifetime learning journeys.|[Open Badges](https://github.com/OfficeDev/microsoft-teams-apps-openbadges) |
-| Poll| Poll is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to quickly create and send polls in a chat or a channel to gather team opinions and preferences. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription.|[Poll](https://github.com/OfficeDev/microsoft-teams-poll-app) |
-| Quick Responses| Quick Responses is a Microsoft Teams app that delivers a robust solution for effectively answering users' commonly asked questions FAQs. Instead of answering each query manually and continuously repeating information, the app builds a library of responses for an interactive user experience through Teams [messaging extensions](../messaging-extensions/what-are-messaging-extensions.md).|[Quick Responses](https://github.com/OfficeDev/microsoft-teams-apps-quickresponses) |
-|Quiz | Quiz is a custom [Teams messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a quiz within a chat or a channel for knowledge check and instantaneous results. You can use Quiz for, In-class and offline exams, Knowledge check within team, and for fun quizzes within a team. Quiz app is supported across multiple platforms, such as Teams desktop, browser, iOS, and Android clients. This app is ready for deployment as part of your existing Microsoft 365 subscription.|[Quiz](https://github.com/OfficeDev/microsoft-teams-apps-quiz) |
+| Poll| Poll is a custom Microsoft Teams [message extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to quickly create and send polls in a chat or a channel to gather team opinions and preferences. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription.|[Poll](https://github.com/OfficeDev/microsoft-teams-poll-app) |
+| Quick Responses| Quick Responses is a Microsoft Teams app that delivers a robust solution for effectively answering users' commonly asked questions FAQs. Instead of answering each query manually and continuously repeating information, the app builds a library of responses for an interactive user experience through Teams [message extensions](../messaging-extensions/what-are-messaging-extensions.md).|[Quick Responses](https://github.com/OfficeDev/microsoft-teams-apps-quickresponses) |
+|Quiz | Quiz is a custom [Teams message extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a quiz within a chat or a channel for knowledge check and instantaneous results. You can use Quiz for, In-class and offline exams, Knowledge check within team, and for fun quizzes within a team. Quiz app is supported across multiple platforms, such as Teams desktop, browser, iOS, and Android clients. This app is ready for deployment as part of your existing Microsoft 365 subscription.|[Quiz](https://github.com/OfficeDev/microsoft-teams-apps-quiz) |
| Rapid Assist|Rapid Assist is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/) based app that allows customer facing associates to rapidly connect with the experts to get quick answers, search for information, follow up open requests, and allow experts to receive notifications to quickly get on a call to help answer questions. The app built using Microsoft [Power Apps](/powerapps/powerapps-overview) and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams to enable organizations to easily connect frontline workers with corporate liaisons to resolve customer queries and deliver a great customer experience. |[Rapid Assist](https://github.com/OfficeDev/microsoft-teams-apps-rapid-assist) |
-| Reflect|Reflect is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that provides a safe and inclusive resource for your team members to share the state of their emotional well-being with colleagues or group leaders directly within Teams. The app is available in channel, group, meeting, and 1:1 chats and the check-in response is set to public, private-to-sender, or fully anonymous. |[Reflect](https://github.com/OfficeDev/Microsoft-Teams-App-Reflect) |
+| Reflect|Reflect is a custom Microsoft Teams [message extension](../messaging-extensions/what-are-messaging-extensions.md) app that provides a safe and inclusive resource for your team members to share the state of their emotional well-being with colleagues or group leaders directly within Teams. The app is available in channel, group, meeting, and 1:1 chats and the check-in response is set to public, private-to-sender, or fully anonymous. |[Reflect](https://github.com/OfficeDev/Microsoft-Teams-App-Reflect) |
|Remote Support | Remote Support is a [Microsoft Teams bot](../bots/what-are-bots.md) that provides a focused interface between support requesters throughout your organization and the internal support team. End-users can submit, edit, or withdraw requests for support and the support team can respond, manage, and update requests all within the Teams platform.|[Remote Support](https://github.com/OfficeDev/microsoft-teams-apps-remotesupport) | | Request-a-team|Request-a-team is a Microsoft Teams app that optimizes new team creation for your enterprise organization. The app supports standardization and best practices when creating new team instances through the integration of a wizard-guided request form, an embedded approval process, a request status dashboard, and automated team builds.|[Request-a-team](https://github.com/OfficeDev/microsoft-teams-apps-requestateam) | |Scrums for Channels |Scrums for Channels is a scrum assistant app that enables users to schedule and run scrums in channels within Microsoft Teams. The app is great for remote teams and teams comprised of members from varied geographical locations and time zones to share daily updates and ensure participation in scrum stand-up meetings.|[Scrums for Channels](https://github.com/OfficeDev/microsoft-teams-apps-scrumsforchannels) |
The following table describes App template code samples:
|Share Now |The Share Now app promotes the positive exchange of information between colleagues by enabling your users to easily share content within the Teams environment. Users engage the app to share items of interest with team members, discover new shared content, set preferences, and bookmark favorites for later reading. |[Share Now](https://github.com/OfficeDev/microsoft-teams-apps-sharenow) | |SharePoint List Search |Collaboration in Microsoft Teams quite often references information contained within items in a SharePoint list. Paste a link to the item in question forces everyone to switch context away from the conversation, find the needed information, then return to Teams to continue the conversation. As the conversation continues people have to switch back to the reference item multiple times to verify new comments and refresh their memories of the information contained within the item. This context switching creates a barrier to smooth collaboration. To resolve this problem, the List Search app template is used. Many users use SharePoint to power some of the core workflows in their organizations. However, collaborating around lists is difficult. Using the List Search app template in Microsoft Teams, users can insert information from SharePoint list items directly within a chat conversation to alleviate the context-switching caused when simply inserting a link into a chat. The information is inserted as an easy-to-read auto-formatted card, helping the users stay engaged in the conversation. |[SharePoint List Search](https://github.com/OfficeDev/microsoft-teams-list-search-app) | |Staff Check-ins | Staff Check-ins is a [Power Apps](/powerapps/powerapps-overview) based app that enables oversight communication between your business and field personnel. Staff can easily provide time-critical information and status updates on either a scheduled or ad-hoc basis directly from Teams. The app supports real-time location, photos, notes, reminder notifications, and automated workflows.|[Staff Check-ins](https://github.com/OfficeDev/microsoft-teams-apps-staffcheckins) |
-| Survey|Survey is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a survey in a chat or a channel to gather data and gain actionable insight. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription. |[Survey](https://github.com/OfficeDev/Microsoft-Teams-Survey-app) |
+| Survey|Survey is a custom Microsoft Teams [message extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a survey in a chat or a channel to gather data and gain actionable insight. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription. |[Survey](https://github.com/OfficeDev/Microsoft-Teams-Survey-app) |
|Time Tally |A project can include multiple tasks, and various projects can be assigned to employees. Managers are required to understand the project progress through the time spent by the employees on these tasks. This can be a cumbersome activity, as the employees need to fill in the timesheets. Time Tally app enables employees to fill their timesheets quickly, using the mobile device, and managers do not have to follow up with employees on the timesheet entry. Managers get to view the project utilization based on resources, and they can approve or reject the entries. Reminder notifications are sent to ensure timesheet compliance. Also, historical data and utilizations are available for analytics. |[Time Tally](https://github.com/OfficeDev/microsoft-teams-apps-timetally) |
-| Training | Training is a custom [Teams messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables users to publish a training within a chat or a channel for offline knowledge sharing and upskilling. The app is supported across multiple Teams platform clients, such as desktop, browser, iOS, and Android. This app is ready for deployment as part of your Microsoft 365 subscription.|[Training](https://github.com/OfficeDev/microsoft-teams-apps-training) |
+| Training | Training is a custom [Teams message extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables users to publish a training within a chat or a channel for offline knowledge sharing and upskilling. The app is supported across multiple Teams platform clients, such as desktop, browser, iOS, and Android. This app is ready for deployment as part of your Microsoft 365 subscription.|[Training](https://github.com/OfficeDev/microsoft-teams-apps-training) |
|Virtual Rounding | Hospital and emergency room providers make many **rounds** per day. These quick check-ins on patients are intended to provide a status check on how the patient is doing and ensure that the patientΓÇÖs concerns are addressed. While rounding is an essential practice to ensure patients are being monitored by multiple types of providers, they represent a huge drain on PPE, because for each visit, from each provider, a new mask, and new set of gloves are used. With this app templates, medical workers can easily conduct rounds virtually, through a Microsoft Teams meeting between the provider and the patient. The Virtual Rounding solution is also referenced in the Microsoft Health and Life Sciences [blog post](https://aka.ms/teamsvirtualrounding).|[Virtual Rounding](https://github.com/SmartterHealth/Virtual-Rounding) | |Visitor Management | The Visitor Management app enables your organization and employees to easily and efficiently manage the on-site visitor process, directly from Microsoft Teams. The app enables employees to create visitor requests, centrally track a request status through the visitor dashboard, and receive real-time notifications when a visitor arrives.|[Visitor Management](https://github.com/OfficeDev/microsoft-teams-app-visitormanagement) | |Water Cooler |Water Cooler is a custom Teams app that enables corporate teams to create, invite, and join casual conversations among teammates, such as those that take place by the Water Cooler or break room. Use this template for multiple scenarios, such as new non project related announcements, topics of interest, current events, or conversations about hobbies. The app provides an easy interface for anyone to find an existing conversation or start a new one. It is a foundation for building custom targeted communication capabilities, promoting interaction amongst coworkers who may otherwise not get a chance to socialize during breaks. Key features are: <br/> **Water Cooler Home Page**: You can browse existing rooms where team members are interacting in existing conversations with certain people or topics of interest. Active conversations on the **Home Page** show a room name, short description, call duration, and room image. <br/>**Join room**: Use the **Join room** feature to join an ongoing conversation immediately. Select **Join** from active conversations to join the room.<br/>**Room creation**: Use the **Room creation** feature to create a Teams call or chat for all attendees to interact. Create rooms easily by specifying the room name, short description, up to five colleagues as an initial group and selecting from the provided set of room images. <br/>**Find room**: Use the **Find room** feature to search keyword which matches with the topic or short descriptions of ongoing conversations.<br/>**Attendee invitation**: Use the **Attendee invitation** feature to invite additional users after room creation. This is similar to Teams call.<br/>**App badge**: The **Water Cooler** icon on the left menu shows a badge with the number of active conversations visible from Teams while using any app. |[Water Cooler](https://github.com/microsoft/csapps-msteams-watercooler) |
platform Integrating Web Apps https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/integrating-web-apps.md
Your Teams app must include required and expected collaborative features. To wor
|Common app features |Teams platform capabilities | |-|--| |Embedded webpage, homepage, or webview |[Tabs](../tabs/what-are-tabs.md) |
-|Share shortcuts and extensions |[Messaging extensions](../messaging-extensions/what-are-messaging-extensions.md) |
-|Action shortcuts and extensions |[Messaging extensions](../messaging-extensions/what-are-messaging-extensions.md) |
+|Share shortcuts and extensions |[Message extensions](../messaging-extensions/what-are-messaging-extensions.md) |
+|Action shortcuts and extensions |[Message extensions](../messaging-extensions/what-are-messaging-extensions.md) |
|Chatbots |[Bots](../bots/what-are-bots.md) | |Channel notifications |[Bots](../bots/what-are-bots.md)<br/>[Incoming webhooks](../webhooks-and-connectors/what-are-webhooks-and-connectors.md)<br/>[Office 365 Connectors](../webhooks-and-connectors/what-are-webhooks-and-connectors.md) | |Message external services |[Bots](../bots/what-are-bots.md)<br/>[Outgoing webhooks](../webhooks-and-connectors/what-are-webhooks-and-connectors.md) |
platform Virtual Assistant https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/virtual-assistant.md
The following image displays the business functions of Virtual Assistant:
## Create a Teams-focused Virtual Assistant
-Microsoft has published a [Microsoft Visual Studio template](https://marketplace.visualstudio.com/items?itemName=BotBuilder.VirtualAssistantTemplate) for building Virtual Assistants and skills. With the Visual Studio template, you can create a Virtual Assistant, powered by a text based experience with support for limited rich cards with actions. We have enhanced the Visual Studio base template to include Microsoft Teams platform capabilities and power great Teams app experiences. A few of the capabilities include support for rich Adaptive Cards, task modules, teams or group chats, and messaging extensions. For more information on extending Virtual Assistant to Microsoft Teams, see [Tutorial: Extend Your Virtual Assistant to Microsoft Teams](https://microsoft.github.io/botframework-solutions/clients-and-channels/tutorials/enable-teams/1-intro/).
+Microsoft has published a [Microsoft Visual Studio template](https://marketplace.visualstudio.com/items?itemName=BotBuilder.VirtualAssistantTemplate) for building Virtual Assistants and skills. With the Visual Studio template, you can create a Virtual Assistant, powered by a text based experience with support for limited rich cards with actions. We have enhanced the Visual Studio base template to include Microsoft Teams platform capabilities and power great Teams app experiences. A few of the capabilities include support for rich Adaptive Cards, task modules, teams or group chats, and message extensions. For more information on extending Virtual Assistant to Microsoft Teams, see [Tutorial: Extend Your Virtual Assistant to Microsoft Teams](https://microsoft.github.io/botframework-solutions/clients-and-channels/tutorials/enable-teams/1-intro/).
The following image displays the high level diagram of a Virtual Assistant solution: ![High-level diagram of a Virtual Assistant solution](../assets/images/bots/virtual-assistant/high-level-diagram.png)
The following processing functions have been added to Virtual Assistant core:
} ```
-### Handle messaging extensions
+### Handle message extensions
-The commands for a messaging extension are declared in your app manifest file. The messaging extension user interface is powered by those commands. For a Virtual Assistant to power a messaging extension command as an attached skill, a Virtual Assistant's own manifest must contain those commands. You must add the commands from an individual skill's manifest to the Virtual Assistant's manifest. The command ID provides information about an associated skill by appending the skill's app ID through a separator `:`.
+The commands for a message extension are declared in your app manifest file. The message extension user interface is powered by those commands. For a Virtual Assistant to power a message extension command as an attached skill, a Virtual Assistant's own manifest must contain those commands. You must add the commands from an individual skill's manifest to the Virtual Assistant's manifest. The command ID provides information about an associated skill by appending the skill's app ID through a separator `:`.
The snippet from a skill's manifest file is shown in the following section:
Once the commands are invoked by a user, the Virtual Assistant can identify an a
} ```
-Some messaging extension activities do not include the command ID. For example, `composeExtension/selectItem` contains only the value of the invoke tap action. To identify the associated skill, `skillId` is attached to each item card while forming a response for `OnTeamsMessagingExtensionQueryAsync`. This is similar to the approach for [adding adaptive cards to your Virtual Assistant](#add-adaptive-cards-to-your-virtual-assistant).
+Some message extension activities do not include the command ID. For example, `composeExtension/selectItem` contains only the value of the invoke tap action. To identify the associated skill, `skillId` is attached to each item card while forming a response for `OnTeamsMessagingExtensionQueryAsync`. This is similar to the approach for [adding adaptive cards to your Virtual Assistant](#add-adaptive-cards-to-your-virtual-assistant).
```csharp // Invoked when a 'composeExtension/selectItem' invoke activity is received for compose extension query command.
You can also leverage existing skills from [Bot Framework Solutions repository](
* **EndOfConversation**: A skill must send an `endOfConversation` activity when it finishes a conversation. Based on the activity, a Virtual Assistant ends context with that particular skill and gets back into Virtual Assistant's root context. For Book-a-room bot, there is no clear state where conversation is ended. Hence we have not sent `endOfConversation` from `Book-a-room` bot and when user wants to go back to root context they can simply do that by `start over` command. * **Card refresh**: Card refresh is not yet supported through Virtual Assistant.
-* **Messaging extensions**:
- * Currently, a Virtual Assistant can support a maximum of ten commands for messaging extensions.
- * Configuration of messaging extensions is not scoped to individual commands but for the entire extension itself. This limits configuration for each individual skill through Virtual Assistant.
- * Messaging extensions command IDs have a maximum length of [64 characters](../resources/schem#composeextensions) and 37 characters are used for embedding skill information. Thus, updated constraints for command ID are limited to 27 characters.
+* **Message extensions**:
+ * Currently, a Virtual Assistant can support a maximum of ten commands for message extensions.
+ * Configuration of message extensions is not scoped to individual commands but for the entire extension itself. This limits configuration for each individual skill through Virtual Assistant.
+ * Message extensions command IDs have a maximum length of [64 characters](../resources/schem#composeextensions) and 37 characters are used for embedding skill information. Thus, updated constraints for command ID are limited to 27 characters.
You can also leverage existing skills from [Bot Framework Solutions repository](https://github.com/microsoft/botframework-components/tree/main/skills/csharp) or create a new skill altogether from scratch. Tutorials for the later can be found [here](https://microsoft.github.io/botframework-solutions/overview/skills/). Please refer to [documentation](/azure/bot-service/skills-conceptual?view=azure-bot-service-4.0&preserve-view=true) for Virtual Assistant and skills architecture.
platform Auth Aad Sso https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-aad-sso.md
The above-described authentication solution only works for apps and services tha
## Step-by-step guides
-* Follow the [step-by-step guide](../../../sbs-tabs-and-messaging-extensions-with-sso.yml) to authenticate tabs and messaging extensions.
+* Follow the [step-by-step guide](../../../sbs-tabs-and-messaging-extensions-with-sso.yml) to authenticate tabs and message extensions.
* Follow the [step-by-step guide](../../../sbs-tab-with-adaptive-cards.yml) to create tab with adaptive cards. ## See also
platform Auth Tab Aad https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-tab-aad.md
Sample code showing the tab authentication process using Azure AD:
* [Plan user authentication](../../../concepts/design/understand-use-cases.md) * [Design your tab for Microsoft Teams](~/tabs/design/tabs.md) * [Silent authentication](~/tabs/how-to/authentication/auth-silent-aad.md)
-* [Add authentication to your messaging extension](~/messaging-extensions/how-to/add-authentication.md)
+* [Add authentication to your message extension](~/messaging-extensions/how-to/add-authentication.md)
* [Single sign-on (SSO) support for bots](~/bots/how-to/authentication/auth-aad-sso-bots.md)
platform Build Adaptive Card Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/build-adaptive-card-tabs.md
The following code provides examples of `task/submit` request and response:
## Authentication
-In the previous sections, you've seen that most of the development paradigms can be extended from the task module requests and responses into tab requests and responses. When it comes to handling authentication, the workflow for Adaptive Card tab follows the authentication pattern for messaging extensions. For more information, see [add authentication](../../messaging-extensions/how-to/add-authentication.md).
+In the previous sections, you've seen that most of the development paradigms can be extended from the task module requests and responses into tab requests and responses. When it comes to handling authentication, the workflow for Adaptive Card tab follows the authentication pattern for message extensions. For more information, see [add authentication](../../messaging-extensions/how-to/add-authentication.md).
`tab/fetch` requests can have either a **continue** or an **auth** response. When a `tab/fetch` request is triggered and receives a tab **auth** response, the sign in page is shown to the user.
platform Configuration Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/configuration-page.md
A configuration page is a special type of [content page](content-page.md). The users configure some aspects of the Microsoft Teams app using the configuration page and use that configuration as part of the following: * A channel or group chat tab: Collect information from the users and set the `contentUrl` of the content page to be displayed.
-* A [messaging extension](~/messaging-extensions/what-are-messaging-extensions.md).
+* A [message extension](~/messaging-extensions/what-are-messaging-extensions.md).
* An [Office 365 Connector](~/webhooks-and-connectors/what-are-webhooks-and-connectors.md). ## Configure a channel or group chat tab
platform Tabs Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/tabs-link-unfurling.md
https://teams.microsoft.com/l/stage/43f56af0-8615-49e6-9635-7bea3b5802c2/0?conte
## See also
-* [Messaging extensions link unfurling](~/messaging-extensions/how-to/link-unfurling.md)
+* [Message extensions link unfurling](~/messaging-extensions/how-to/link-unfurling.md)
* [Teams tabs](~/tabs/what-are-tabs.md) * [Create a personal tab](~/tabs/how-to/create-personal-tab.md) * [Create a channel or group tab](~/tabs/how-to/create-channel-group-tab.md)
platform What Are Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/what-are-tabs.md
There are few prerequisites that you must go through before working on tabs.
There are two types of tabs available in Teams, personal and channel or group. [Personal tabs](~/tabs/how-to/create-personal-tab.md), along with personal-scoped bots, are part of personal apps and are scoped to a single user. They can be pinned to the left navigation bar for easy access. [Channel or group tabs](~/tabs/how-to/create-channel-group-tab.md) deliver content to channels and group chats, and are a great way to create collaborative spaces around dedicated web-based content.
-You can [create a content page](~/tabs/how-to/create-tab-pages/content-page.md) as part of a personal tab, channel or group tab, or task module. You can [create a configuration page](~/tabs/how-to/create-tab-pages/configuration-page.md) that enables users to configure Microsoft Teams app and use it to configure a channel or group chat tab, a messaging extension, or an Office 365 Connector. You can permit users to reconfigure your tab after installation and [create a tab removal page](~/tabs/how-to/create-tab-pages/removal-page.md) for your application. When you build a Teams app that includes a tab, you must test how your [tab functions on both the Android and iOS Teams clients](~/tabs/design/tabs-mobile.md). Your tab must [get context](~/tabs/how-to/access-teams-context.md) through basic information, locale and theme information, and `entityId` or `subEntityId` that identifies what is in the tab.
+You can [create a content page](~/tabs/how-to/create-tab-pages/content-page.md) as part of a personal tab, channel or group tab, or task module. You can [create a configuration page](~/tabs/how-to/create-tab-pages/configuration-page.md) that enables users to configure Microsoft Teams app and use it to configure a channel or group chat tab, a message extension, or an Office 365 Connector. You can permit users to reconfigure your tab after installation and [create a tab removal page](~/tabs/how-to/create-tab-pages/removal-page.md) for your application. When you build a Teams app that includes a tab, you must test how your [tab functions on both the Android and iOS Teams clients](~/tabs/design/tabs-mobile.md). Your tab must [get context](~/tabs/how-to/access-teams-context.md) through basic information, locale and theme information, and `entityId` or `subEntityId` that identifies what is in the tab.
You can build tabs with Adaptive Cards and centralize all Teams app capabilities by eliminating the need for a different backend for your bots and tabs. [Stage View](~/tabs/tabs-link-unfurling.md) is a new UI component that allows you to render the content opened in full screen in Teams and pinned as a tab. The existing [link unfurling](~/tabs/tabs-link-unfurling.md) service is updated, so that it's used to turn URLs into a tab using an Adaptive Card and Chat Services. You can [create conversational tabs](~/tabs/how-to/conversational-tabs.md) using conversational sub-entities that allow users to have conversations about sub-entities in your tab, such as specific task, patient, and sales opportunity, instead of discussing the entire tab. You can make changes to [tab margins](~/resources/removing-tab-margins.md) to enhance the developer's experience when building apps. You can drag the tab and place it in the desired position to interchange the tab positions within your personal apps and channel or group chats.
The tab features are as follows:
**Scenario:** Bring an existing web-based resource inside Teams. \ **Example:** You create a personal tab in your Teams app that presents an informational corporate website to users.
-**Scenario:** Add support pages to a Teams bot or messaging extension. \
+**Scenario:** Add support pages to a Teams bot or message extension. \
**Example:** You create personal tabs that provide **about** and **help** webpage content to users. **Scenario:** Provide access to items that your users interact with regularly for cooperative dialogue and collaboration. \
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md
Today every user in the Teams chat or channel sees the exact same view and butto
For example, if you send an incident reporting card in a chat or channel, only the user who is assigned the incident must see a **Resolve** button. On the other hand, the incident creator must see an **Edit** button and all other users must only be able to view details of the incident. This is made possible by User Specific Views that is enabled by the `refresh` property.
-The following image shows an example of a ticketing messaging extension (ME) where different users in the chat are shown different actions based on the requirement:
+The following image shows an example of a ticketing message extension (ME) where different users in the chat are shown different actions based on the requirement:
# [Mobile](#tab/mobile)
platform Cards Actions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-actions.md
keywords: teams bots cards actions
# Card actions
-Cards used by bots and messaging extensions in Teams support the following activity [`CardAction`](/bot-framework/dotnet/bot-builder-dotnet-add-rich-card-attachments#process-events-within-rich-cards) types:
+Cards used by bots and message extensions in Teams support the following activity [`CardAction`](/bot-framework/dotnet/bot-builder-dotnet-add-rich-card-attachments#process-events-within-rich-cards) types:
> [!NOTE] > The `CardAction` actions differ from `potentialActions` for Office 365 Connector cards when used from connectors.
Cards used by bots and messaging extensions in Teams support the following activ
>* Teams does not support `CardAction` types not listed in the previous table. >* Teams does not support the `potentialActions` property. >* Card actions are different than [suggested actions](/azure/bot-service/bot-builder-howto-add-suggested-actions?view=azure-bot-service-4.0&tabs=javascript#suggest-action-using-button&preserve-view=true) in Bot Framework or Azure Bot Service. Suggested actions are not supported in Microsoft Teams. If you want buttons to appear on a Teams bot message, use a card.
->* If you are using a card action as part of a messaging extension, the actions do not work until the card is submitted to the channel. The actions do not work while the card is in the compose message box.
+>* If you are using a card action as part of a message extension, the actions do not work until the card is submitted to the channel. The actions do not work while the card is in the compose message box.
## Action type openUrl
platform Cards Format https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-format.md
Adaptive Cards support emoji. The following code shows an example of Adaptive Ca
### Mention support within Adaptive Cards
-You can add @mentions within an Adaptive Card body for bots and messaging extension responses. To add @mentions in cards, follow the same notification logic and rendering as that of message based [mentions in channel and group chat conversations](../../bots/how-to/conversations/channel-and-group-conversations.md#work-with-mentions).
+You can add @mentions within an Adaptive Card body for bots and message extension responses. To add @mentions in cards, follow the same notification logic and rendering as that of message based [mentions in channel and group chat conversations](../../bots/how-to/conversations/channel-and-group-conversations.md#work-with-mentions).
-Bots and messaging extensions can include mentions within the card content in [TextBlock](https://adaptivecards.io/explorer/TextBlock.html) and [FactSet](https://adaptivecards.io/explorer/FactSet.html) elements.
+Bots and message extensions can include mentions within the card content in [TextBlock](https://adaptivecards.io/explorer/TextBlock.html) and [FactSet](https://adaptivecards.io/explorer/FactSet.html) elements.
> [!NOTE] >
The following table describes the newly supported user mention IDs:
#### User mention in bots with Adaptive Cards
-Bots support user mention with the Azure AD Object ID and UPN, in addition to the existing IDs. The support for two new IDs is available in bots for text messages, Adaptive Cards body, and messaging extension response. Bots support the mention IDs in conversation and `invoke` scenarios. The user gets activity feed notification when being @mentioned with the IDs.
+Bots support user mention with the Azure AD Object ID and UPN, in addition to the existing IDs. The support for two new IDs is available in bots for text messages, Adaptive Cards body, and message extension response. Bots support the mention IDs in conversation and `invoke` scenarios. The user gets activity feed notification when being @mentioned with the IDs.
> [!NOTE] > Schema update and UI/UX changes are not required for user mentions with Adaptive Cards in Bot.
platform Cards Reference https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-reference.md
An Adaptive Card is a customizable card that can contain any combination of text
The following table provides the features that support Adaptive Cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£û | Γ£ö | > [!NOTE] >
-> * Teams platform supports v1.4 or earlier of Adaptive Card features for bot sent cards and action based messaging extensions.
-> * Teams platform supports v1.3 or earlier of Adaptive Card features for other capabilities, such as cards sent by user (search based messaging extensions and link unfurling), tabs, and task modules.
+> * Teams platform supports v1.4 or earlier of Adaptive Card features for bot sent cards and action based message extensions.
+> * Teams platform supports v1.3 or earlier of Adaptive Card features for other capabilities, such as cards sent by user (search based message extensions and link unfurling), tabs, and task modules.
> * Positive or destructive action styling is not supported in Adaptive Cards on the Teams platform. > * Media elements are currently not supported in Adaptive Card on the Teams platform.
A card that typically contains a single large image, one or more buttons, and te
The following table provides the features that support hero cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£û | Γ£ö |
The list card has been added by Teams to provide functions beyond what the list
The following table provides the features that support list cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£û | Γ£û |Γ£ö |
You can work with an Office 365 Connector card that provides a flexible layout a
The following table provides the features that support Office 365 Connector cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£ö | Γ£û |
Teams supports receipt card. It is a card that enables a bot to provide a receip
The following table provides the features that support receipt cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£û | Γ£ö |
The signin action can be used from any card in Teams, not just the signin card.
The following table provides the features that support signin cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£û | Γ£û | Γ£ö |
You can work with a thumbnail card that is used for sending a simple actionable
The following table provides the features that support thumbnail cards:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£û | Γ£ö |
The [carousel layout](/azure/bot-service/bot-builder-howto-add-media-attachments
The following table provides the features that support carousel collections:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£û | Γ£û | Γ£ö |
The list layout shows a vertically stacked list of cards, optionally with associ
The following table provides the features that support list collections:
-| Bots in Teams | Messaging extensions | Connectors | Bot Framework |
+| Bots in Teams | Message extensions | Connectors | Bot Framework |
| | | | | | Γ£ö | Γ£ö | Γ£û | Γ£ö |
platform Design Effective Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/design-effective-cards.md
# Designing Adaptive Cards for your Microsoft Teams app
-An Adaptive Card contains a freeform body of card elements and optional set of actions. Adaptive Cards are actionable snippets of content that you can add to a conversation through a bot or messaging extension. Using text, graphics, and buttons, these cards provide rich communication to your audience.
+An Adaptive Card contains a freeform body of card elements and optional set of actions. Adaptive Cards are actionable snippets of content that you can add to a conversation through a bot or message extension. Using text, graphics, and buttons, these cards provide rich communication to your audience.
-The Adaptive Card framework is used across many Microsoft products, including Teams. You can send cards inside messages to users via bots or messaging extensions. Users can also take actions on cards when present.
+The Adaptive Card framework is used across many Microsoft products, including Teams. You can send cards inside messages to users via bots or message extensions. Users can also take actions on cards when present.
:::image type="content" source="../../assets/images/adaptive-cards/adaptive-card-overview.png" alt-text="Overview example of an Adaptive Card." border="false":::
platform Dynamic Search https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/dynamic-search.md
The following image illustrates mobile experience of typeahead search:
> [!NOTE]
-> You can't get rich card experiences with dynamic search, such as query based messaging extensions.
+> You can't get rich card experiences with dynamic search, such as query based message extensions.
## Implement typeahead search
platform Design Teams Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/task-modules/design-teams-task-modules.md
Task modules can be launched from almost anywhere in your app.
* **Tab**: A task module can be launched from any link within a tab. Use in scenarios where you want the user to focus on an interaction. * **Bot**: A task module can be launched from a link inside a bot message.
-* **Adaptive Card**: A task module can be launched from an Adaptive Card (sent with a messaging extension or by a bot) when a user selects a button.
-* **Messaging extension (action commands)**: Messaging extensions allow you to take a particular action on message content. Selecting an action opens a task module.
-* **Messaging extension (compose box context)**: In the compose box, you can design a messaging extension to open a task module instead of the typical flyout. Reserve task modules for complex interactions, such as completing a form.
+* **Adaptive Card**: A task module can be launched from an Adaptive Card (sent with a message extension or by a bot) when a user selects a button.
+* **Message extension (action commands)**: Message extensions allow you to take a particular action on message content. Selecting an action opens a task module.
+* **Message extension (compose box context)**: In the compose box, you can design a message extension to open a task module instead of the typical flyout. Reserve task modules for complex interactions, such as completing a form.
## Anatomy
platform What Are Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/what-are-cards.md
Title: Cards
-description: Describes cards and how they are used in bots, connectors, and messaging extensions
+description: Describes cards and how they are used in bots, connectors, and message extensions
ms.localizationpriority: high keywords: connectors bots cards messaging
The bots for Teams support the following types of cards:
* Thumbnail card * Card collections
-You can add rich text formatting to your cards using either Markdown or HTML, depending on the card type. Cards used by bots and messaging extensions in Microsoft Teams, add and respond to these card actions, `openUrl`, `messageBack`, `imBack`, `invoke`, and `signin`.
+You can add rich text formatting to your cards using either Markdown or HTML, depending on the card type. Cards used by bots and message extensions in Microsoft Teams, add and respond to these card actions, `openUrl`, `messageBack`, `imBack`, `invoke`, and `signin`.
Teams uses cards in three different places: * Connectors * Bots
-* Messaging extensions
+* Message extensions
## Cards in connectors
The Microsoft Bot Framework extends the cards specification by adding a set of p
Bots in Teams can use simple cards, connector cards, or Adaptive Cards. [Types of cards](~/task-modules-and-cards/cards/cards-reference.md) provides information on cards, supported by bots in Teams.
-## Cards in messaging extensions
+## Cards in message extensions
-[Messaging extensions](~/messaging-extensions/what-are-messaging-extensions.md) can also return a card. Messaging extensions can use simple cards, connector cards, or Adaptive Cards. These cards are found in [types of cards](~/task-modules-and-cards/cards/cards-reference.md).
+[Message extensions](~/messaging-extensions/what-are-messaging-extensions.md) can also return a card. Message extensions can use simple cards, connector cards, or Adaptive Cards. These cards are found in [types of cards](~/task-modules-and-cards/cards/cards-reference.md).
## Types of cards
platform Teamsfx CLI https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-CLI.md
Add new capabilities to the current application.
|:- |:-| | `teamsfx capability add tab` | Add tab | | `teamsfx capability add bot` | Add bot |
-| `teamsfx capability add messaging-extension`| Add messaging extension |
+| `teamsfx capability add messaging-extension`| Add messagE extension |
> [!NOTE]
-> If your project includes a bot, messaging extension can't be added and it applies vice versa. You can include both bot and messaging extensions in your project while creating a new Teams app project.
+> If your project includes a bot, message extension can't be added and it applies vice versa. You can include both bot and message extensions in your project while creating a new Teams app project.
## `teamsfx resource`
platform Add Capability https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-capability.md
During app development, you can create a new Teams app with Teams app capability
|--|-| | Tabs | Tabs are simple HTML tags that point to domains declared in the app manifest. You can add tabs as a part of channel inside a team, group chat, or personal app for an individual user| | Bots | Bots help to interact with your web service through text, interactive cards, and task modules|
-| Messaging extensions | Messaging extensions help to interact with your web service through buttons and forms in the Microsoft Teams client|
+| Message extensions | Message extensions help to interact with your web service through buttons and forms in the Microsoft Teams client|
## Prerequisite
During app development, you can create a new Teams app with Teams app capability
The limitations to TeamsFx while adding more capabilities are as follows: * You can add tabs up to 16 instances
-* You can add bot and messaging extension for one instance each
+* You can add bot and message extension for one instance each
+ ## Add capabilities > [!Note]
The selected capabilities are successfully added to your project. The Teams Tool
|--|-| |To add tab|`teamsfx capability add tab`| |To add bot|`teamsfx capability add bot`|
- |To add messaging extension|`teamsfx capability add messaging-extension`|
+ |To add message extension|`teamsfx capability add messaging-extension`|
## Supported capabilities
Apart from the capabilities your Teams app already have, you can choose to add d
|Existing capabilities|Other supported capabilities| |--|--| |Tabs with SPFx|None|
-|Tabs with Azure|Bot and messaging extension|
+|Tabs with Azure|Bot and message extension|
|Bot|Tabs|
-|Messaging extension|Tabs and bot|
+|Message extension|Tabs and bot|
|Tabs and bot|Tabs and message extension|
-|Tabs and messaging extension|Tabs and bot|
-|Tabs, bot, and messaging extension|Tabs|
+|Tabs and message extension|Tabs and bot|
+|Tabs, bot, and message extension|Tabs|
|Tabs |Bot and message extension|
-## Add bot, tab and messaging extension
+## Add bot, tab and message extension
-After adding a bot and messaging extension, the changes in your project are as follows:
+After adding a bot and message extension, the changes in your project are as follows:
* A bot template code is added into a subfolder with path `yourProjectFolder/bot`. This includes a **hello world** bot application template into your project * `launch.json` and `task.json` under `.vscode` folder are updated, which includes necessary scripts for Visual Studio Code, and is executed when you want to debug your application locally
After adding tab, the changes in your project are as follows:
* The file under `.fx/config` are regenerated, which ensures your project is set with right configurations for newly added capability - ## See also * [Provision cloud resources](provision.md)
platform Create New Project https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/create-new-project.md
To create a new Teams app using Teams Toolkit, you can select from one of the fo
1. Open Visual Studio Code. 1. Select the Teams Toolkit :::image type="icon" source="../assets/images/teams-toolkit-v2/teams-toolkit-sidebar-icon.PNG" border="true"::: icon in the Visual Studio Code sidebar. 1. Select **Create a new Teams app**.
-1. Select from the available capabilities tab, bot, messaging extension, or a tab using SharePoint Framework (SPFx).
+1. Select from the available capabilities tab, bot, message extension, or a tab using SharePoint Framework (SPFx).
1. Select at least one option to start creating the Teams app. ### Create a new Teams app using view samples
platform Debug Background Process https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-background-process.md
Teams Toolkit checks the following prerequisites during the debug process:
|Tab without Azure Functions | 10, 12, **14 (recommended)**, 16 | |Tab with Azure Functions | 10, 12, **14 (recommended)**| |Bot | 10, 12, **14 (recommended)**, 16|
- |Messaging extension | 10, 12, **14 (recommended)**, 16 |
+ |Message extension | 10, 12, **14 (recommended)**, 16 |
* Microsoft 365 account with valid credentials, the Teams toolkit prompts you to sign in to Microsoft 365 account, if you haven't signed in * Custom app uploading or sideloading for your developer tenant is turned on, if not then the local debug terminates
-* Ngrok binary version 2.3 is applicable for bot and messaging extension, if Ngrok isn't installed or the version doesn't match the requirement, the Teams toolkit installs Ngrok NPM package `ngrok@4.2.2` in `~/.fx/bin/ngrok`. The Ngrok binary is managed by Ngrok NPM package in `/.fx/bin/ngrok/node modules/ngrok/bin`
+* Ngrok binary version 2.3 is applicable for bot and message extension, if Ngrok isn't installed or the version doesn't match the requirement, the Teams toolkit installs Ngrok NPM package `ngrok@4.2.2` in `~/.fx/bin/ngrok`. The Ngrok binary is managed by Ngrok NPM package in `/.fx/bin/ngrok/node modules/ngrok/bin`
* Azure Functions Core Tools version 3, if Azure Functions Core Tools is'nt installed or the version doesn't match the requirement, the Teams Toolkit installs Azure Functions Core Tools NPM package, azure-functions-core-tools@3 for **Windows** and for **macOs** in `~/.fx/bin/func`. The Azure Functions Core Tools NPM package in `~/.fx/bin/func/node_modules/azure-functions-core-tools/bin` manages Azure Functions Core Tools binary. For Linux, the local debug terminates
Teams Toolkit checks the following prerequisites during the debug process:
* Azure Functions binding extensions defined in `api/extensions.csproj`, if Azure Functions binding extensions is not installed, the Teams Toolkit installs Azure Functions binding extensions
-* NPM packages, applicable for tab app, bot app, messaging extension app, and Azure Functions. If NPM is'nt installed, the Teams Toolkit installs all NPM packages
+* NPM packages, applicable for tab app, bot app, message extension app, and Azure Functions. If NPM is'nt installed, the Teams Toolkit installs all NPM packages
-* Bot and messaging extension, the Teams Toolkit starts Ngrok to create an HTTP tunnel for bot and messaging extension
+* Bot and message extension, the Teams Toolkit starts Ngrok to create an HTTP tunnel for bot and message extension
-* Ports available, if tab, bot, messaging extension, and Azure Functions ports are unavailable, the local debug terminates
+* Ports available, if tab, bot, message extension, and Azure Functions ports are unavailable, the local debug terminates
The following table lists the ports available for components: | Component | Port | | | | | Tab | 53000 |
- | Bot or messaging extension | 3978 |
- | Node inspector for bot or messaging extension | 9239 |
+ | Bot or message extension | 3978 |
+ | Node inspector for bot or message extension | 9239 |
| Azure Functions | 7071 | | Node inspector for Azure Functions | 9229 |
Teams Toolkit checks the following prerequisites during the debug process:
|Tab without Azure functions | Node.js LTS versions 10, 12, **14 (recommended)**, 16 | The local debug terminates, if Node.js isn't installed or the version doesn't match the requirement.| |Tab with Azure functions | Node.js LTS versions 10, 12, **14 (recommended)** |The local debug terminates, if Node.js isn't installed or the version doesn't match the requirement.| |Bot | Node.js LTS versions 10, 12, **14 (recommended)**, 16|The local debug terminates, if Node.js isn't installed or the version doesn't match the requirement.|
-|Messaging extension | Node.js LTS versions 10, 12, **14 (recommended)**, 16 |The local debug terminates, if Node.js isn't installed or the version doesn't match the requirement.|
+|Message extension | Node.js LTS versions 10, 12, **14 (recommended)**, 16 |The local debug terminates, if Node.js isn't installed or the version doesn't match the requirement.|
|Sign in to Microsoft 365 account | Microsoft 365 credentials |Teams toolkit prompts you to sign in to Microsoft 365 account, if you haven't signed in. |
-|Bot, messaging extension | Ngrok version 2.3| ΓÇó If Ngrok isn't installed or the version doesn't match the requirement, the Teams toolkit installs Ngrok NPM package `ngrok@4.2.2` in `~/.fx/bin/ngrok`. </br> ΓÇó The Ngrok binary is managed by Ngrok NPM package in `/.fx/bin/ngrok/node modules/ngrok/bin`.|
+|Bot, message extension | Ngrok version 2.3| ΓÇó If Ngrok isn't installed or the version doesn't match the requirement, the Teams toolkit installs Ngrok NPM package `ngrok@4.2.2` in `~/.fx/bin/ngrok`. </br> ΓÇó The Ngrok binary is managed by Ngrok NPM package in `/.fx/bin/ngrok/node modules/ngrok/bin`.|
|Azure functions | Azure Functions Core Tools version 3| ΓÇó If Azure Functions Core Tools isn't installed or the version doesn't match the requirement, the Teams toolkit installs Azure Functions Core Tools NPM package, azure-functions-core-tools@3 for **Windows** and for **macOs** in `~/.fx/bin/func`. </br> ΓÇó The Azure Functions Core Tools NPM package in `~/.fx/bin/func/node_modules/azure-functions-core-tools/bin` manages Azure Functions Core Tools binary. For Linux, the local debug terminates.| |Azure functions |.NET Core SDK version|ΓÇó If .NET Core SDK isn't installed or the version doesn't match the requirement, the toolkit installs .NET Core SDK for Windows and macOS in `~/.fx/bin/dotnet`.</br> ΓÇó For Linux, the local debug terminates.| |Azure functions | Azure functions binding extensions defined in `api/extensions.csproj`| If Azure functions binding extensions isn't installed, the toolkit installs Azure functions binding extensions.|
-|NPM packages| NPM packages for tab app, bot app, messaging extension app, and Azure functions|If NPM isn't installed, the toolkit installs all NPM packages.|
-|Bot and messaging extension | Ngrok |Toolkit starts Ngrok to create a HTTP tunnel for bot and messaging extension. |
+|NPM packages| NPM packages for tab app, bot app, message extension app, and Azure functions|If NPM isn't installed, the toolkit installs all NPM packages.|
+|Bot and message extension | Ngrok |Toolkit starts Ngrok to create a HTTP tunnel for bot and message extension. |
> [!NOTE]
-> If tab, bot, messaging extension, and Azure functions ports are unavailable, the local debug terminates.
+> If tab, bot, message extension, and Azure functions ports are unavailable, the local debug terminates.
Use the following .NET Core versions:
In the set up process, Teams Toolkit prepares the following registrations and co
1. [Registers and configures Azure AD application](#registers-and-configures-azure-ad-application): Teams Toolkit registers and configures your Azure AD application
-1. [Registers and configures bot](#registers-and-configures-bot): Teams Toolkit registers and configures your bot for tab or messaging extension app
+1. [Registers and configures bot](#registers-and-configures-bot): Teams Toolkit registers and configures your bot for tab or message extension app
1. [Registers and configures Teams app](#registers-and-configures-teams-app): Teams Toolkit registers and configures your Teams app
In the set up process, Teams Toolkit prepares the following registrations and co
1. Exposes an API
- a. Configures Application ID URI. For tab, `api://localhost/{appId}`. For bot or messaging extension, `api://botid-{botid}`
+ a. Configures Application ID URI. For tab, `api://localhost/{appId}`. For bot or message extension, `api://botid-{botid}`
b. Adds a scope named `access_as_user`. Enables it for **Admin and users**
In the set up process, Teams Toolkit prepares the following registrations and co
| Project type | Redirect URIs for web | Redirect URIs for single-page application | | | | | | Tab | `https://localhost:53000/auth-end.html` | `https://localhost:53000/auth-end.html?clientId={appId>}` |
- | Bot or messaging extension | `https://ngrok.io/auth-end.html` | NA |
-
+ | Bot or message extension | `https://ngrok.io/auth-end.html` | NA |
The following table lists the configurations of Microsoft 365 client application with the client Ids:
In the set up process, Teams Toolkit prepares the following registrations and co
### Registers and configures bot
-For tab app or messaging extension app:
+For tab app or message extension app:
1. Registers an Azure AD application
You can view the project folders and files in the Explorer area of VS Code after
| `.fx/configs/config.local.json` | Local debug configuration file | The values of each configuration generate and saves during local debug. | | `templates/appPackage/manifest.template.json` | Teams app manifest template file for local debug | The placeholders in the file resolve during local debug. | | `tabs/.env.teams.local` | Environment variables file for tab | The values of each environment variable generate and saves during local debug. |
-| `bot/.env.teamsfx.local` | Environment variables file for bot and messaging extension| The values of each environment variable generate and saves during local debug. |
+| `bot/.env.teamsfx.local` | Environment variables file for bot and message extension| The values of each environment variable generate and saves during local debug. |
| `api/.env.teamsfx.local` | Environment variables file for Azure Functions | The values of each environment variable generate and saves during local debug. | - ## See also [Debug your Teams app using Teams Toolkit](debug-local.md)
platform Debug Local https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-local.md
Last updated 03/21/2022
# Debug your Teams app locally
-Teams Toolkit helps you to debug and preview your Teams app locally. Debug is the process of checking, detecting, and correcting issues or bugs to ensure the program runs successfully. Visual Studio Code allows you to debug tab, bot, messaging extension, and Azure Functions. Teams Toolkit supports the following debug features:
+Teams Toolkit helps you to debug and preview your Teams app locally. Debug is the process of checking, detecting, and correcting issues or bugs to ensure the program runs successfully. Visual Studio Code allows you to debug tab, bot, message extension, and Azure Functions. Teams Toolkit supports the following debug features:
* [Start debugging](#start-debugging) * [Multi-target debugging](#multi-target-debugging)
You can perform single operation, select **F5** to start debugging. The Teams T
#### Multi-target debugging
-Teams Toolkit utilizes multi-target debugging feature to debug tab, bot, messaging extension, and Azure Functions at the same time.
+Teams Toolkit utilizes multi-target debugging feature to debug tab, bot, message extension, and Azure Functions at the same time.
#### Toggle breakpoints
-You can toggle breakpoints on the source codes of tabs, bots, messaging extensions, and Azure Functions. The breakpoints execute when you interact with the Teams app in a web browser. The following image shows the toggle breakpoints:
+You can toggle breakpoints on the source codes of tabs, bots, message extensions, and Azure Functions. The breakpoints execute when you interact with the Teams app in a web browser. The following image shows the toggle breakpoints:
:::image type="content" source="../assets/images/teams-toolkit-v2/debug/toggle-points.png" alt-text="toggle breakpoints"::: #### Hot reload
-You can update and save the source codes of tab, bot, messaging extension, and Azure Functions at the same time when you are debugging the Teams app. The app reloads and the debugger reattaches to the programming languages.
+You can update and save the source codes of tab, bot, message extension, and Azure Functions at the same time when you are debugging the Teams app. The app reloads and the debugger reattaches to the programming languages.
:::image type="content" source="../assets/images/teams-toolkit-v2/debug/hot-reload.png" alt-text="hot-reload for source codes":::
Runs the tasks defined in `.vscode/tasks.json` as follows:
| Component | Task name | Folder | | | | | | Tab | **Start Frontend** | tabs |
-| Bot or messaging extensions | **Start Bot** | bot |
+| Bot or message extensions | **Start Bot** | bot |
| Azure Functions | **Start Backend** | API |
-The following image displays task names on the **Output** **Terminal** tab of the Visual Studio Code while running tab, bot or messaging extension, and Azure Functions.
+The following image displays task names on the **Output** **Terminal** tab of the Visual Studio Code while running tab, bot or message extension, and Azure Functions.
:::image type="content" source="../assets/images/teams-toolkit-v2/debug/Terminal.png" alt-text="Start app services":::
The following table lists the debug configuration names and types for project wi
| Component | Debug configuration name | Debug configuration type | | | | | | Tab | **Attach to Frontend (Edge)** or **Attach to Frontend (Chrome)** | pwa-msedge or pwa-chrome |
-| Bot or messaging extensions | **Attach to Bot** | pwa-node |
+| Bot or message extensions | **Attach to Bot** | pwa-node |
| Azure Functions | **Attach to Backend** | pwa-node | The following table lists the debug configuration names and types for project with bot app and without tab app: | Component | Debug configuration name | Debug configuration type | | | | |
-| Bot or messaging extension | **Launch Bot (Edge)** or **Launch Bot (Chrome)** | pwa-msedge or pwa-chrome |
-| Bot or messaging extension | **Attach to Bot** | pwa-node |
+| Bot or message extension | **Launch Bot (Edge)** or **Launch Bot (Chrome)** | pwa-msedge or pwa-chrome |
+| Bot or message extension | **Attach to Bot** | pwa-node |
| Azure Functions | **Attach to Backend** | pwa-node | #### Sideloads the Teams app
Teams Toolkit allows you to customize the debug settings to create your tab or b
1. For tab, update `dev:teamsfx` script in `tabs/package.json`
-1. For bot or messaging extension, update `dev:teamsfx` script in `bot/package.json`
+1. For bot or message extension, update `dev:teamsfx` script in `bot/package.json`
1. For Azure Functions, update `dev:teamsfx` script in `api/package.json` and for TypeScript update `watch:teamsfx` script > [!NOTE]
- > Currently, the tab, bot, messaging extension apps, and Azure Functions ports don't support customization.
+ > Currently, the tab, bot, message extension apps, and Azure Functions ports don't support customization.
</details> <details> <summary><b>Add environment variables</b></summary>
-You can add environment variables to `.env.teamsfx.local` file for tab, bot, messaging extension, and Azure Functions. Teams Toolkit loads the environment variables you added to start services during local debug.
+You can add environment variables to `.env.teamsfx.local` file for tab, bot, message extension, and Azure Functions. Teams Toolkit loads the environment variables you added to start services during local debug.
> [!NOTE] > Ensure to start a new local debug after adding new environment variables as the environment variables don't support hot reload.
You can add environment variables to `.env.teamsfx.local` file for tab, bot, mes
<summary><b>Debug partial component</b></summary>
-Teams Toolkit utilizes Visual Studio Code multi-target debugging to debug tab, bot, messaging extension, and Azure Functions at the same time. You can update `.vscode/launch.json` and `.vscode/tasks.json` to debug partial component. If you want to debug tab only in a tab plus bot with Azure Functions project, use the following steps:
+Teams Toolkit utilizes Visual Studio Code multi-target debugging to debug tab, bot, message extension, and Azure Functions at the same time. You can update `.vscode/launch.json` and `.vscode/tasks.json` to debug partial component. If you want to debug tab only in a tab plus bot with Azure Functions project, use the following steps:
1. Comment **Attach to Bot** and **Attach to Backend** from debug compound in `.vscode/launch.json`
platform Deploy https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/deploy.md
Teams Toolkit helps you to deploy or upload the frontend and backend code in you
* The tab, such as frontend applications are deployed to Azure storage and configured for static web hosting or a sharepoint site. * The backend APIs are deployed to Azure functions.
-* The bot or messaging extension is deployed to Azure app service.
+* The bot or message extension is deployed to Azure app service.
## Prerequisite
The get started guides help you to deploy using Teams Toolkit. You can use the f
|Tabs with React </br> The frontend workload| `yourProjectFolder/tabs`| `tabs/build` |Azure storage | |Tabs with SharePoint </br> The frontend workload | `yourProjectFolder/SPFx`| `SPFx/sharepoint/solution` |SharePoint app catalog | |APIs on Azure functions </br> The backend workload | `yourProjectFolder/api`| Not applicable |Azure functions |
-|Bots and messaging extensions </br> The backend workload | `yourProjectFolder/bot` | Not applicable | Azure app service |
+|Bots and message extensions </br> The backend workload | `yourProjectFolder/bot` | Not applicable | Azure app service |
> [!NOTE] > When you include Azure API management resource in your project and trigger deploy. You can publish your APIs in Azure functions to Azure API management service.
platform Provision https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/provision.md
When you create a new project, you can use all the Azure resources. The ARM temp
| Web app for simple auth | Host simple auth server to gain access to other services in your single page application | Adds user assigned identity to access other Azure resources | | User assigned identity | Authenticate Azure service-to-service requests | Shared across different capabilities and resources |
-### Resource creation for Teams bot or messaging extension application
+### Resource creation for Teams bot or message extension application
|Resource|Purpose| Description | |-|--|--|
platform Add Incoming Webhook https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/add-incoming-webhook.md
An Incoming Webhook lets external applications to share content in Microsoft Teams channels. The webhooks are used as tools to track and notify. The webhooks provide a unique URL, to send a JSON payload with a message in card format. Cards are user interface containers that include content and actions related to a single topic. You can use cards in the following capabilities: * Bots
-* Messaging extensions
+* Message extensions
* Connectors ## Key features of an Incoming Webhook
The following table provides the features and description of an Incoming Webhook
> [!NOTE] >
-> * Teams bots, messaging extensions, Incoming Webhook, and the Bot Framework support Adaptive Cards. Adaptive Cards is an open cross card platform framework that is used in all platforms such as Windows, Android, iOS, and so on. Currently, [Teams connectors](../../webhooks-and-connectors/how-to/connectors-creating.md) don't support Adaptive Cards. However, it is possible to create a [flow](https://flow.microsoft.com/blog/microsoft-flow-in-microsoft-teams/) that posts Adaptive Cards to a Teams channel.
+> * Teams bots, message extensions, Incoming Webhook, and the Bot Framework support Adaptive Cards. Adaptive Cards is an open cross card platform framework that is used in all platforms such as Windows, Android, iOS, and so on. Currently, [Teams connectors](../../webhooks-and-connectors/how-to/connectors-creating.md) don't support Adaptive Cards. However, it is possible to create a [flow](https://flow.microsoft.com/blog/microsoft-flow-in-microsoft-teams/) that posts Adaptive Cards to a Teams channel.
> * For more information on cards and webhooks, see [Adaptive cards and Incoming Webhooks](~/task-modules-and-cards/what-are-cards.md#adaptive-cards-and-incoming-webhooks). ## Create an Incoming Webhook
platform Connectors Using https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/connectors-using.md
For more information on connector card actions, see [Actions](/outlook/actionabl
To send a message through your Incoming Webhook or Office 365 Connector, post a JSON payload to the webhook URL. This payload must be in the form of an [Office 365 connector card](~/task-modules-and-cards/cards/cards-reference.md#office-365-connector-card).
-You can also use this JSON to create cards containing rich inputs, such as text entry, multiselect, or selecting date and time. The code that generates the card and posts it to the webhook URL can run on any hosted service. These cards are defined as part of actionable messages and are also supported in [cards](~/task-modules-and-cards/what-are-cards.md), used in Teams bots and messaging extensions.
+You can also use this JSON to create cards containing rich inputs, such as text entry, multiselect, or selecting date and time. The code that generates the card and posts it to the webhook URL can run on any hosted service. These cards are defined as part of actionable messages and are also supported in [cards](~/task-modules-and-cards/what-are-cards.md), used in Teams bots and message extensions.
### Example of connector message
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Discover Microsoft Teams platform features that are generally available (GA) and
|03/30/2022| Updated the Get started module with Blazor app using tabs and bots| Get started > [Build your first app using Blazor](sbs-gs-blazorupdate.yml)| |03/30/2022|Device permissions for the browser | Integrate device capabilities > [Device permissions for the browser](concepts/device-capabilities/browser-device-permissions.md) | |03/29/2022 | Integrate People Picker | Integrate with Teams > [Integrate People Picker](concepts/device-capabilities/people-picker-capability.md)|
-|03/23/2022| Introduced step-by-step guide to unfurl links in Teams using bot | Build messaging extensions > Add link unfurling > [Unfurl links in Teams using bot](sbs-botbuilder-linkunfurling.yml)|
+|03/23/2022| Introduced step-by-step guide to unfurl links in Teams using bot | Build message extensions > Add link unfurling > [Unfurl links in Teams using bot](sbs-botbuilder-linkunfurling.yml)|
|03/22/2022| Added information on debug process| ΓÇó Tools and SDKs> Teams Toolkit for Visual Studio Code > [Debug your Teams app locally](toolkit/debug-local.md) </br> ΓÇó Tools and SDKs> Teams Toolkit for Visual Studio Code > [Debug background process](toolkit/debug-background-process.md)| |03/14/2022| Introduced step-by-step guide to build and test a connector in Microsoft Teams | Build webhooks and connectors > Create Office 365 Connectors > [Build Teams connectors](sbs-teams-connectors.yml)| |03/10/2022| Added information on Moodle LMS and Microsoft 365 plugins | Integrate with Teams > Moodle LMS > [Moodle learning management system](resources/moodle-overview.md)| |03/03/2022 | How to add authentication using external OAuth provider| Add authentication > Tabs > [Use external OAuth providers](tabs/how-to/authentication/auth-oauth-provider.md) | |02/25/2022| Introduced step-by-step guide to invoke task modules in Teams| Build cards and task modules > Build task modules > Use task modules from bots > [Invoke task module from Teams](sbs-botbuilder-taskmodule.yml)|
-|02/24/2022| Introduced step-by-step guide to build action based messaging extension | Build Messaging Extensions > Action commands > Define action commands > [Build action based messaging extension](sbs-meetingextension-action.yml)|
-|02/24/2022| Introduced step-by-step guide to build search based messaging extension | Build messaging extensions > Search commands > Define search commands > [Build search based messaging extension](sbs-messagingextension-searchcommand.yml)|
+|02/24/2022| Introduced step-by-step guide to build action based message extension | Build Message Extensions > Action commands > Define action commands > [Build action based message extension](sbs-meetingextension-action.yml)|
+|02/24/2022| Introduced step-by-step guide to build search based message extension | Build message extensions > Search commands > Define search commands > [Build search based message extension](sbs-messagingextension-searchcommand.yml)|
|02/24/2022| Introduced step-by-step guide to create Outgoing Webhooks | Build webhooks and connectors > Create Outgoing Webhooks > [Create Outgoing Webhooks](sbs-outgoing-webhooks.yml)| | 02/23/2022 |Microsoft Teams store ranking parameters| Distribute your app > Publish to the Teams store > [Microsoft Teams store ranking parameters](concepts/deploy-and-publish/appsource/post-publish/teams-store-ranking-parameters.md)| |02/09/2022| Introduced step-by-step guide how to upload files to Teams from a bot | Build bots > Send and receive files > [step-by-step guide how to upload files to Teams from a bot](sbs-file-handling-in-bot.yml) |
Microsoft Teams platform features that are available to all app developers.
|03/30/2022| Updated the Get started module with Blazor app using tabs and bots| Get started > [Build your first app using Blazor](sbs-gs-blazorupdate.yml)| |03/30/2022|Device permissions for the browser | Integrate device capabilities > [Device permissions for the browser](concepts/device-capabilities/browser-device-permissions.md) | |03/29/2022 |Integrate People Picker | Integrate with Teams > [Integrate People Picker](concepts/device-capabilities/people-picker-capability.md)
-|03/23/2022| Introduced step-by-step guide to unfurl links in Teams using bot | Build messaging extensions > Add link unfurling > [Unfurl links in Teams using bot](sbs-botbuilder-linkunfurling.yml)|
+|03/23/2022| Introduced step-by-step guide to unfurl links in Teams using bot | Build message extensions > Add link unfurling > [Unfurl links in Teams using bot](sbs-botbuilder-linkunfurling.yml)|
|03/22/2022| Added information on debug process| ΓÇó Tools and SDKs> Teams Toolkit for Visual Studio Code > [Debug your Teams app locally](toolkit/debug-local.md) </br> ΓÇó Tools and SDKs> Teams Toolkit for Visual Studio Code > [Debug background process](toolkit/debug-background-process.md)| |03/14/2022| Introduced step-by-step guide to build and test a connector in Microsoft Teams | Build webhooks and connectors > Create Office 365 Connectors > [Build Teams connectors](sbs-teams-connectors.yml)| |03/10/2022 | Added information on Moodle LMS and Microsoft 365 plugins | Integrate with Teams > Moodle LMS > [Moodle learning management system](resources/moodle-overview.md)| |03/03/2022 | How to add authentication using external OAuth provider| Add authentication > Tabs > [Use external OAuth providers](tabs/how-to/authentication/auth-oauth-provider.md) | | 02/25/2022| Introduced step-by-step guide to invoke task modules in Teams| Build cards and task modules > Build task modules > Use task modules from bots > [Invoke task module from Teams](sbs-botbuilder-taskmodule.yml)|
-| 02/24/2022| Introduced step-by-step guide to build action based messaging extension | Build Messaging Extensions > Action commands > Define action commands > [Build action based messaging extension](sbs-meetingextension-action.yml)|
-| 02/24/2022| Introduced step-by-step guide to build search based messaging extension | Build messaging extensions > Search commands > Define search commands > [Build search based messaging extension](sbs-messagingextension-searchcommand.yml)|
+| 02/24/2022| Introduced step-by-step guide to build action based message extension | Build Message Extensions > Action commands > Define action commands > [Build action based message extension](sbs-meetingextension-action.yml)|
+| 02/24/2022| Introduced step-by-step guide to build search based message extension | Build message extensions > Search commands > Define search commands > [Build search based message extension](sbs-messagingextension-searchcommand.yml)|
| 02/24/2022| Introduced step-by-step guide to create Outgoing Webhooks | Build webhooks and connectors > Create Outgoing Webhooks > [Create Outgoing Webhooks](sbs-outgoing-webhooks.yml)| | 02/23/2022 |Microsoft Teams store ranking parameters| Distribute your app > Publish to the Teams store > [Microsoft Teams store ranking parameters](concepts/deploy-and-publish/appsource/post-publish/teams-store-ranking-parameters.md)| | 02/18/2022 | Introduced extensive Glossary for the Microsoft Teams Developer Documentation to help you find the definition about a term quickly | [Glossary](~/get-started/glossary.md) |
Explore updates from the previous GA releases listed here.
|12/24/2021| Introduced step-by-step guide to grant Tab device permissions | App fundamentals > Device capabilities > [Step-by-step guide to grant Tab device permissions](sbs-tab-device-permissions.yml) | |12/23/2021| Introduced step-by-step guide to create Tabs with Adaptive Cards| Add authentication > Tabs > Use SSO authentication > [Step-by-step guide to create Tabs with Adaptive Cards](sbs-tab-with-adaptive-cards.yml) | |12/21/2021 | Updated the Get started JavaScript, C#, and Node.js modules for Teams Toolkit 3.0.0 | ΓÇó Get started > [Build your first app with JavaScript](sbs-gs-javascript.yml) <br> ΓÇó Get started > [Build your first app with C# or .NET](sbs-gs-csharp.yml) <br> ΓÇó Get started> [Build your first app with Node.js](sbs-gs-nodejs.yml) |
-|12/20/2021| Introduced step-by-step guide for tabs and messaging extensions with Single sign-on (SSO) | Add authentication > Tabs > Use SSO authentication > [Step-by-step guide with SSO for tabs and messaging extensions](sbs-tabs-and-messaging-extensions-with-SSO.yml)|
+|12/20/2021| Introduced step-by-step guide for tabs and message extensions with Single sign-on (SSO) | Add authentication > Tabs > Use SSO authentication > [Step-by-step guide with SSO for tabs and message extensions](sbs-tabs-and-messaging-extensions-with-SSO.yml)|
|12/20/2021| Introduced step-by-step guide to create meeting content bubble | Build apps for Teams meetings > Enable and configure apps for meetings > [Step-by-step guide to create meeting content bubble](sbs-meeting-content-bubble.yml) | |12/09/2021| Introduced step-by-step guide to meeting stage view | Build apps for Teams meetings > Enable and configure apps for meetings > [Step-by-step guide to create meetings stage view](sbs-meetings-stage-view.yml)| |12/13/2021 | Introduced guidelines for app linked to SaaS offer | Distribute your app > Publish to the Teams store > Review store validation guidelines > [Guidelines for apps linked to SaaS offer](concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#apps-linked-to-saas-offer)|
Explore updates from the previous GA releases listed here.
| -- | | | | 12/26/2019 | The `replyToId` parameter in payloads sent to a bot is no longer encrypted, allowing you to use this value to construct deeplinks to these messages. Message payloads include the encrypted values in the parameter `legacy.replyToId`. | | 11/05/2019 | Single sign-on using the Teams JavaScript SDK. | [Single sign-on](tabs/how-to/authentication/auth-aad-sso.md) |
-| 10/31/2019 | Conversational bots and messaging extension documentation updated to reflect the 4.6 Bot Framework SDK. Documentation for the v3 SDK is available in the Resources section. | All bot and messaging extension documentation |
+| 10/31/2019 | Conversational bots and message extension documentation updated to reflect the 4.6 Bot Framework SDK. Documentation for the v3 SDK is available in the Resources section. | All bot and message extension documentation |
| 10/31/2019 | New documentation structure, and major article refactoring. Please report any dead links or 404's by creating a GitHub Issue. | All of them! |
-| 09/13/2019 | Request bot is installed from action-based messaging extension. | [Initiate actions with messaging extensions](resources/messaging-extension-v3/create-extensions.md#request-to-install-your-conversational-bot)
+| 09/13/2019 | Request bot is installed from action-based message extension. | [Initiate actions with message extensions](resources/messaging-extension-v3/create-extensions.md#request-to-install-your-conversational-bot)
| 08/28/2019 | Support for private channels in tabs and Connectors. | [Get context for your tab](tabs/how-to/access-teams-context.md#retrieve-context-in-private-channels) | | 06/20/2019 | Share an external website, from an external website, into a Teams channel. | [Share to Teams](~/share-to-teams.md) | | 05/25/2019 | Respond with bot message from task module. | [Respond with bot message from task module](resources/messaging-extension-v3/create-extensions.md#respond-with-an-adaptive-card-message-sent-from-a-bot) |
Explore updates from the previous GA releases listed here.
| 05/20/2019 | Link unfurling (custom URL previews). | [Link unfurling](messaging-extensions/how-to/link-unfurling.md)| | 05/06/2019 | Application Certification program for store apps. | [Application Certification](~/concepts/deploy-and-publish/appsource/post-publish/overview.md#complete-microsoft-365-certification) | | 05/06/2019 | App Templates are now available | [App Templates](~/samples/app-templates.md) |
-| 04/23/2019 | Action-based Messaging Extensions are now available. | [Action-based Message Extensions](~/concepts/messaging-extensions/create-extensions.md) |
+| 04/23/2019 | Action-based Message Extensions are now available. | [Action-based Message Extensions](~/concepts/messaging-extensions/create-extensions.md) |
| 02/18/2019 | Creating deep links to private chat. | [Deep linking to a chat](concepts/build-and-test/deep-links.md#deep-linking-to-a-chat) | | 01/23/2019 | Surfacing SKU and licenceType information in the tab context. | [Tab Context](~/concepts/tabs/tabs-context.md) | |
Explore updates from the previous GA releases listed here.
| 09/11/2018 | Tab configuration pages are now significantly taller. | [Tab Design](tabs/design/tabs.md) | | 08/15/2018 | Adaptive cards are now supported in Teams.|[Adaptive card actions in Teams](task-modules-and-cards/cards/cards-reference.md#adaptive-card) | | 08/10/2018 | Client support for DevTools.| [DevTools for the Microsoft Teams Desktop Client](~/resources/dev-preview/developer-preview-tools.md)|
-| 08/08/2018 | Messaging extensions now supports multiple commands. | [composeExtensions.commands](~/resources/schem#composeextensionscommands)|
+| 08/08/2018 | Message extensions now supports multiple commands. | [composeExtensions.commands](~/resources/schem#composeextensionscommands)|
| 08/07/2018 | Inline configuration is now supported in Connectors. The Connectors documentation has also been revised and expanded for clarity.| [Connectors](~/concepts/connectors/connectors.md)| | 08/06/2018 | Your bot can now send and receive files. | [Send and receive files through your bot](~/bots/how-to/bots-filesv4.md)| | 07/23/2018 | Information about app re-certification has been added to the Publishing section. |[Manifest permissions](resources/schem#permissions)|
Developer preview is a public program that provides early access to unreleased T
|02/02/2022| Introduced app manifest version 1.12 | App manifest > Public developer preview > [Manifest schema](resources/schem) | |01/17/2022| People Picker in Adaptive cards for mobile | Build cards and task modules > Build cards > [People Picker in Adaptive Cards](task-modules-and-cards/cards/people-picker.md)| |01/10/2022 | Teams Toolkit for Visual Studio Code | Tools and SDKs > Teams Toolkit for Visual Studio Code > [Teams Toolkit fundamentals](toolkit/teams-toolkit-fundamentals.md) |
-|11/15/2021| Personal tabs and messaging extensions run in Outlook and Office | [Extend Teams apps across Microsoft 365](~/m365-apps/overview.md) |
+|12/24/2021| Introduced step-by-step guide to grant Tab device permissions | App fundamentals > Device capabilities > [step-by-step guide to grant Tab device permissions](sbs-tab-device-permissions.yml) |
+|11/15/2021| Personal tabs and message extensions run in Outlook and Office | [Extend Teams apps across Microsoft 365](~/m365-apps/overview.md) |
|10/28/2021|Bots can be enabled to receive all channel messages using resource-specific consent (RSC) | ΓÇó Build bots > Bot conversations > Messages in bot conversations > [Receive all messages with RSC](~/bots/how-to/conversations/channel-messages-with-rsc.md) </br> ΓÇó Build bots > Bot conversations > [bot conversation overview](~/bots/how-to/conversations/conversation-basics.md) </br> ΓÇó Build bots > Bot conversations > [channel and group conversations](~/bots/how-to/conversations/channel-and-group-conversations.md) </br> ΓÇó App manifest > Public developer preview > [developer preview manifest schema](~/resources/schem) | |06/16/2021| Resource-specific consent for chats | ΓÇó Utilize Teams data with Microsoft Graph > [Resource-specific consent](graph-api/rsc/resource-specific-consent.md) </br> ΓÇó Test your app > Microsoft Graph > [Test resource-specific consent permissions in Teams](graph-api/rsc/test-resource-specific-consent.md)|