Updates from: 03/29/2024 02:19:20
Service Microsoft Docs article Related commit history on GitHub Change details
platform Build Apps For Teams Meeting Stage https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md
To help users in such scenarios, we released APIs within the Microsoft Teams Jav
The following image shows the share to stage option in the Teams desktop client:
- :::image type="content" source="../assets/images/apps-in-meetings/shared-meeting-stage-edit-review-component.png" alt-text="The screenshot shows the share to meeting Stage View.":::
+ :::image type="content" source="../assets/images/apps-in-meetings/shared-meeting-stage-edit-review-component.png" alt-text="Screenshot shows the share to meeting Stageview.":::
# [Mobile](#tab/mobile) The following image shows the share to stage option in the Teams mobile client:
- :::image type="content" source="../assets/images/meeting-stage/meeting-share-to-stage-mobile.png" alt-text="This screenshot shows meeting Stage View of the app you shared to meeting in Teams mobile.":::
+ :::image type="content" source="../assets/images/meeting-stage/meeting-share-to-stage-mobile.png" alt-text="Screenshot shows meeting Stageview of the app you shared to meeting in Teams mobile.":::
The following table provides the user types and lists the features that each use
|Sample name | Description | .NET| Node.js | Manifest | |-|--|--|-|-|
-|Meeting stage sample | This sample app shows a tab in meeting stage for collaboration. This sample also uses live share sdk for collaborative Stage View. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp/demo-manifest) |
+|Meeting stage sample | This sample app shows a tab in meeting stage for collaboration. This sample also uses live share sdk for collaborative Stageview. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp/demo-manifest) |
| In-meeting notification | Demonstrates how to implement in-meeting notifications using bot. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-notification/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-notification/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-notification/csharp/demo-manifest) |
-| In-meeting document signing | This sample app shows how to implement a document signing Teams app. Includes sharing specific app content to stage, Teams SSO, and user specific Stage View. | [View](https://github.com/officedev/microsoft-teams-samples/tree/main/samples/meetings-share-to-stage-signing/csharp) | NA | NA |
+| In-meeting document signing | This sample app shows how to implement a document signing Teams app. Includes sharing specific app content to stage, Teams SSO, and user specific Stageview. | [View](https://github.com/officedev/microsoft-teams-samples/tree/main/samples/meetings-share-to-stage-signing/csharp) | NA | NA |
## Step-by-step guide
platform Build Tabs For Meeting https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
Every team has a different way of communicating and collaborating tasks. To achi
Tabs allow the meeting participants to access services and content in a specific space within a meeting. If you're new to Microsoft Teams tab development, see [build tabs for Teams](/microsoftteams/platform/tabs/what-are-tabs).
-Before creating a meeting tab, it's important to learn about the surfaces that are available to target the meeting chat view, meeting details view, meeting side panel view, and meeting Stage View.
+Before creating a meeting tab, it's important to learn about the surfaces that are available to target the meeting chat view, meeting details view, meeting side panel view, and meeting Stageview.
### Meeting details view
Pre or post-meeting tab behavior isn't supported in channel meetings.
For deep link format, see [deep links](~/concepts/build-and-test/deep-link-workflow.md#deep-link-to-meeting-side-panel).
-### Meeting stage view
+### Meeting Stageview
1. After a tab is added to the meeting side panel, you can now choose to opt into global app sharing. 1. This results in rendering tab on the stage for every participant in the meeting.
-# [Meeting Stage View desktop](#tab/meeting-stage-view-desktop)
+# [Meeting Stageview desktop](#tab/meeting-stage-view-desktop)
The following image shows a tab added to the meeting stage in the Teams desktop client:
- :::image type="content" source="../assets/images/meeting-stage-view.png" alt-text="Screenshot shows meeting Stage View of the app you shared to meeting in Teams desktop.":::
+ :::image type="content" source="../assets/images/meeting-stage-view.png" alt-text="Screenshot shows meeting Stageview of the app you shared to meeting in Teams desktop.":::
-# [Meeting Stage View mobile](#tab/meeting-stage-view-mobile)
+# [Meeting Stageview mobile](#tab/meeting-stage-view-mobile)
The following image shows a tab added to the meeting stage in the Teams mobile client:
- :::image type="content" source="../assets/images/meeting-stage/meeting-stage-view-mobile.png" alt-text="Screenshot shows meeting Stage View of the app you shared to meeting in Teams mobile.":::
+ :::image type="content" source="../assets/images/meeting-stage/meeting-stage-view-mobile.png" alt-text="Screenshot shows meeting Stageview of the app you shared to meeting in Teams mobile.":::
The following table provides the user types and lists the features that each use
| Meeting stage sample | Sample app to show a tab in meeting stage for collaboration. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meetings-stage-view/csharp/demo-manifest/Meeting-stage-view.zip) | | Meeting side panel | Sample app to show how to add agenda in a meeting side panel. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/csharp) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/nodejs) | NA | | In-meeting notification | Demonstrates how to implement in-meeting notification using bot. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-events/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-events/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-events/csharp/demo-manifest/Meetings-Events.zip)|
-| In-meeting document signing | Demonstrates how to implement a document signing Teams app. Includes sharing specific app content to stage, Teams SSO and user specific Stage View. | [View](https://github.com/officedev/microsoft-teams-samples/tree/main/samples/meetings-share-to-stage-signing/csharp) | NA | NA |
-| Meeting tabs | This sample shows app Stage View, Mute/Unmute Teams meeting audio call in meeting Side panel tab. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-tabs/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-tabs/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meeting-tabs/csharp/demo-manifest/meeting-tabs.zip) |
+| In-meeting document signing | Demonstrates how to implement a document signing Teams app. Includes sharing specific app content to stage, Teams SSO and user specific Stageview. | [View](https://github.com/officedev/microsoft-teams-samples/tree/main/samples/meetings-share-to-stage-signing/csharp) | NA | NA |
+| Meeting tabs | This sample shows app Stageview, Mute/Unmute Teams meeting audio call in meeting Side panel tab. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-tabs/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-tabs/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meeting-tabs/csharp/demo-manifest/meeting-tabs.zip) |
> [!NOTE] >
The following table provides the user types and lists the features that each use
* Follow the [step-by-step guide](../sbs-meeting-token-generator.yml) to generate meeting token in your Teams meeting. * Follow the [step-by-step guide](../sbs-meetings-sidepanel.yml) to generate meeting side panel in your Teams meeting.
-* Follow the [step-by-step guide](../sbs-meetings-stage-view.yml) to share meeting Stage View in your Teams meeting.
+* Follow the [step-by-step guide](../sbs-meetings-stage-view.yml) to share meeting Stageview in your Teams meeting.
* Follow the [step-by-step guide](../sbs-meeting-content-bubble.yml) to generate in-meeting notification in your Teams meeting. ## See also
platform Teams Live Share Tutorial https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-tutorial.md
In the Dice Roller sample app, users are shown a dice with a button to roll it.
1. [Set up the application](#set-up-the-application) 2. [Join a Fluid container](#join-a-fluid-container)
-3. [Write the meeting Stage View](#write-the-stage-view)
-4. [Connect meeting Stage View to Live Share](#connect-meeting-stage-view-to-live-share)
+3. [Write the meeting Stageview](#write-the-stageview)
+4. [Connect meeting Stageview to Live Share](#connect-meeting-stageview-to-live-share)
5. [Write the side panel view](#write-the-side-panel-view) 6. [Write the settings view](#write-the-settings-view)
async function joinContainer() {
When testing locally, `TestLiveShareHost` updates the browser URL to contain the ID of the test container that was created. Copying that link to other browser tabs causes the `LiveShareClient` to join the test container that was created. If the modification of the applications URL interferes with the operation of the application, the strategy used to store the test containers ID can be customized using the [setLocalTestContainerId](/javascript/api/@microsoft/live-share/iliveshareclientoptions) and [getLocalTestContainerId](/javascript/api/@microsoft/live-share/iliveshareclientoptions) options passed to `LiveShareClient`.
-## Write the Stage View
+## Write the Stageview
Many Teams Meeting Extensibility applications are designed to use React for their view framework, but this isn't required. For example, this sample uses standard HTML/DOM methods to render a view.
function renderStage(diceState, elem) {
} ```
-## Connect meeting Stage View to Live Share
+## Connect meeting Stageview to Live Share
### Modify LiveState
updateDice();
## Write the side panel view
-The side panel view, loaded through the tab `contentUrl` with the `sidePanel` frame context, is displayed to the user in a side panel when they open your app within a meeting. The goal of side panel view is to let a user select content for the app prior to sharing the app to the meeting stage. For the Live Share SDK apps, the side panel view can also be used as a companion experience for the app. Calling `joinContainer()` from the side panel view connects to the same Fluid container the Stage View is connected to. This container can then be used to communicate with the Stage View. Ensure that you're communicating with everyone's Stage View and side panel view.
+The side panel view, loaded through the tab `contentUrl` with the `sidePanel` frame context, is displayed to the user in a side panel when they open your app within a meeting. The goal of side panel view is to let a user select content for the app prior to sharing the app to the meeting stage. For the Live Share SDK apps, the side panel view can also be used as a companion experience for the app. Calling `joinContainer()` from the side panel view connects to the same Fluid container the Stageview is connected to. This container can then be used to communicate with the Stageview. Ensure that you're communicating with everyone's Stageview and side panel view.
The sample's side panel view prompts the user to select the share to stage button.
After you're ready to deploy your code, you can use Teams Toolkit or the Teams D
- [Live Share FAQ](teams-live-share-faq.md) - [Use Fluid with Teams](../tabs/how-to/using-fluid-msteam.md) - [Build tabs for meeting](build-tabs-for-meeting.md)-- [Tabs link unfurling and Stage View](../tabs/tabs-link-unfurling.md)
+- [Tabs link unfurling and Stageview](../tabs/tabs-link-unfurling.md)
platform Adaptive Card Previewer Vs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/adaptive-card-previewer-vs.md
The Adaptive Card Previewer doesn't support the following Adaptive Card features
* [People Picker](../../task-modules-and-cards/cards/people-picker.md) * [Typeahead search](../../task-modules-and-cards/cards/dynamic-search.md) * [User mention](../../task-modules-and-cards/cards/cards-format.md#microsoft-azure-active-directory-azure-ad-object-id-and-upn-in-user-mention)
-* [Stage View](../../task-modules-and-cards/cards/cards-format.md#stage-view-for-images-in-adaptive-cards)
+* [Stageview](../../task-modules-and-cards/cards/cards-format.md#stageview-for-images-in-adaptive-cards)
* [Full width control](../../task-modules-and-cards/cards/cards-format.md#full-width-adaptive-card) ## Preview Adaptive Card
platform Adaptive Card Previewer https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/adaptive-card-previewer.md
The Adaptive Card Previewer doesn't support the following Adaptive Card features
* [People Picker](../../task-modules-and-cards/cards/people-picker.md) * [Typeahead search](../../task-modules-and-cards/cards/dynamic-search.md) * [User mention](../../task-modules-and-cards/cards/cards-format.md#microsoft-azure-active-directory-azure-ad-object-id-and-upn-in-user-mention)
-* [Stage View](../../task-modules-and-cards/cards/cards-format.md#stage-view-for-images-in-adaptive-cards)
+* [Stageview](../../task-modules-and-cards/cards/cards-format.md#stageview-for-images-in-adaptive-cards)
* [Full width control](../../task-modules-and-cards/cards/cards-format.md#full-width-adaptive-card) ## FAQs
platform Deep Link Workflow https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/deep-link-workflow.md
You can create a deep link to perform a specific task in Teams, such as to creat
In this article, youΓÇÖll learn to create a deep link:
-* [Deep link to start a new chat](#deep-link-to-start-a-new-chat)<br>
-* [Deep link to open a meeting scheduling dialog](#deep-link-to-open-a-meeting-scheduling-dialog)<br>
-* [Deep link to start an audio-video call with users](#deep-link-to-start-an-audio-video-call-with-users)<br>
-* [Generate a deep link to share content to stage in meetings](#generate-a-deep-link-to-share-content-to-stage-in-meetings)<br>
-* [Deep link to meeting side panel](#deep-link-to-meeting-side-panel)<br>
-* [Deep link to join a meeting](#deep-link-to-join-a-meeting)<br>
-* [Invoke Stage View through deep link](#invoke-stage-view-through-deep-link)
+* [To start a new chat](#deep-link-to-start-a-new-chat)
+* [To open a meeting scheduling dialog](#deep-link-to-open-a-meeting-scheduling-dialog)
+* [To start an audio-video call](#deep-link-to-start-an-audio-video-call-with-users)
+* [To share content to stage in meetings](#generate-a-deep-link-to-share-content-to-stage-in-meetings)
+* [To meeting side panel](#deep-link-to-meeting-side-panel)
+* [To join a meeting](#deep-link-to-join-a-meeting)
+* [Invoke Stageview through deep link](#invoke-stageview-through-deep-link)
## Deep link to start a new chat
Deep link doesn't open in the meeting side panel in the following scenarios:
Teams app can read the URL for joining a meeting URL through Graph APIs. This deep link brings up the UI for the user to join the meeting. For more information, see [Get `onlineMeeting`](/graph/api/onlinemeeting-get#response-1) and [Get meeting details](~/apps-in-teams-meetings/meeting-apps-apis.md#get-meeting-details-api).
-## Invoke Stage View through deep link
+## Invoke Stageview through deep link
-To invoke the Stage View through deep link from your tab, you must wrap the deep link URL in the `app.openLink(url)` API. The deep link can also be passed through an `OpenURL` action in the card. For more information, see [Stage View](~/tabs/tabs-link-unfurling.md#invoke-stage-view-through-deep-link).
+To invoke the Stageview through deep link from your tab, you must wrap the deep link URL in the `app.openLink(url)` API. The deep link can also be passed through an `OpenURL` action in the card. For more information see, [Stageview](~/tabs/tabs-link-unfurling.md#invoke-stageview-through-deep-link).
## Code Sample
platform Share In Meeting https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/share-in-meeting.md
To share the entire app to stage, in the app manifest, you must configure `meeti
| **Sample name** | **Description** | **.NET** |**Node.js** | Manifest | |--|--|-|-|-|
-| Meeting Stage View | This app helps to enable and configure your apps for Teams meetings. It also demonstrates use of share in meeting feature.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp/demo-manifest)|
+| Meeting Stageview | This app helps to enable and configure your apps for Teams meetings. It also demonstrates use of share in meeting feature.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-stage-view/csharp/demo-manifest)|
## See also
platform Share To Teams From Personal App Or Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md
The following image shows the Share to Teams option:
Share to Teams button can be hosted or embedded in an app running inside Teams. You can add Share to Teams button to the app created by using [Teams JavaScript client library](../../tabs/how-to/using-teams-client-library.md). > [!NOTE]
-> Share to Teams isn't supported inside a [modal dialog](~/task-modules-and-cards/what-are-task-modules.md) (referred as task modules in TeamsJS v1.x) or [Stage View](~/tabs/tabs-link-unfurling.md#stage-view) in Teams web client. You can't open a modal on top of another modal.
+> Share to Teams isn't supported inside a [modal dialog](~/task-modules-and-cards/what-are-task-modules.md) (referred as task modules in TeamsJS v1.x) or [Stage View](~/tabs/tabs-link-unfurling.md#stageview) in Teams web client. You can't open a modal on top of another modal.
## Response codes
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
Link unfurling only apps don't provide significant value within Teams. Consider
</details> <br> - [Back to top](#teams-store-validation-guidelines) ### App Name
The following are the navigation guidelines:
* Horizontal scroll mustn't be present in an in-meeting tab. [*Mandatory Fix*] * In-meeting dialogs used in your app mustn't allow horizontal scrolling. Use in-meeting dialogs sparingly and for scenarios that are light and task oriented. You can specify the width of the in-meeting dialogΓÇÖs I-frame within the supported size range to account for different scenarios. [*Mandatory Fix*]
-* Dialogs used in your app mustn't allow horizontal scrolling. Dialogs allow you to select different sizes to make the content responsive without the need of Horizontal scroll. If necessary, you can use a Stage View (a full screen UI component to surface your web content) to complete the workflow without Horizontal scroll. [*Mandatory Fix*]
+* Dialogs used in your app mustn't allow horizontal scrolling. Dialogs allow you to select different sizes to make the content responsive without the need of Horizontal scroll. If necessary, you can use a Stageview (a full screen UI component to surface your web content) to complete the workflow without Horizontal scroll. [*Mandatory Fix*]
* Horizontal scroll present in the tab in a personal chat, channel, and in-meeting details tab in any scope isn't allowed if the entire tab canvas is scrollable, unless your tab uses an infinite canvas with fixed UI elements. [*Mandatory Fix*]
platform Design Teams App Advanced Ui Components https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
Title: Design your app with advanced UI components
-description: Learn about the Teams UI components, such as breadcrumbs, notification bar, Stage View along with relevant use cases.
+description: Learn about the Teams UI components, such as breadcrumbs, notification bar, Stageview along with relevant use cases.
ms.localizationpriority: medium
You can implement a notification bar using the Fluent UI [alert](https://react.f
:::image type="content" source="../../assets/images/ui-templates/notification-bar.png" alt-text="Example shows notification bar UI templates on desktop.":::
-## Stage View
+## Stageview
-Stage View lets users see contentΓÇölike an image, file, or websiteΓÇöon a large surface in Teams without switching context. This component is primarily for viewing content. Don't use it for complex interactions.
+Stageview lets users see contentΓÇölike an image, file, or websiteΓÇöon a large surface in Teams without switching context. This component is primarily for viewing content. Don't use it for complex interactions.
-See how to implement [Stage View](~/tabs/tabs-link-unfurling.md).
+See how to implement [Stageview](~/tabs/tabs-link-unfurling.md).
### Top use cases
platform Overview Analytics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/overview-analytics.md
This instrumentation is required to be done additionally in your SaaS app becaus
<!--Tracking Teams app specific analytics-->
-This section includes guidelines and pointers regarding what to look for, which events to capture, how to use instrumentation markers, and where to fetch Teams-relevant information that will help you plan and implement analytics for your app. Your Teams apps can be tabs, bots, message extensions, cards, Stage Views, and so on or any combination of these [capabilities and UI constructs](../../overview-explore.md#teams-app-features) across personal or shared scopes. It's best to understand, plan, and implement your instrumentation around each of these capabilities.
+This section includes guidelines and pointers regarding what to look for, which events to capture, how to use instrumentation markers, and where to fetch Teams-relevant information that will help you plan and implement analytics for your app. Your Teams apps can be tabs, bots, message extensions, cards, Stageviews, and so on or any combination of these [capabilities and UI constructs](../../overview-explore.md#teams-app-features) across personal or shared scopes. It's best to understand, plan, and implement your instrumentation around each of these capabilities.
You can classify Teams platform features into broadly two constructs:
You can classify Teams platform features into broadly two constructs:
#### Hosted web canvas constructs
-Visual canvas-oriented capabilities are Teams-aware webpages embedded in Microsoft Teams, such as tabs, personal apps, dialogs (displaying an embedded iframe), Stage Views, meeting tabs, shared meeting stage, and in-meeting dialogs. They're hosted in the cloud with the rest of your SaaS app that runs in the web browser.
+Visual canvas-oriented capabilities are Teams-aware webpages embedded in Microsoft Teams, such as tabs, personal apps, dialogs (displaying an embedded iframe), Stageviews, meeting tabs, shared meeting stage, and in-meeting dialogs. They're hosted in the cloud with the rest of your SaaS app that runs in the web browser.
These webpages often have the instrumentation done for core SaaS web app needs. You just need to capture Teams-specific events and handle them for Teams-specific instrumentation in your code. It's handy for your analytics needs that tabs are ΓÇ£Teams-awareΓÇ¥ webpages.
Since message extensions are based on the bot channel, most of the above applies
Besides the obvious metrics in the SaaS world such as daily, weekly, monthly active users, and time spent in your app implementing analytics thoughtfully for your Teams app per the guidance above will allow you to get insights such as: - **Aggregate metrics**
- - Which platform capabilities, surface areas (for example, tabs, bots, message extensions) and UI constructs (cards, dialogs, Stage Views) leveraged in your Teams app found the most usage by your users?
+ - Which platform capabilities, surface areas (for example, tabs, bots, message extensions) and UI constructs (cards, dialogs, Stageviews) leveraged in your Teams app found the most usage by your users?
- Which scope or UI entry point (like personal app, channel, group chat) is the most used by your users to invoke your app and begin a new app session inside Teams? - How many days on an average do users use your app in the first week after installing the app? - What is the week-over-week or month-over-month new user retention cohort analysis for your app or specific capabilities (like personal app or bot) in your app?
platform Strategize Measure https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/strategize-measure.md
Engagement intends to measure the intensity and depth of interaction between the
| ΓÇó # App users (R7, R14, R28). ΓÇô DAU and MAU. <br> ΓÇó # App users trendline. | ΓÇó App and feature level engagement <br> ΓÇó Segment users based on Microsoft Entra profile. <br> ΓÇó Report by client ΓÇô desktop, web, and mobile. <br> ΓÇó Segment by tenant and org name. <br> ΓÇó Segment by product feature (active users at feature level). | | ΓÇó % of users using key features in Teams app vs. using the same feature in a web or native app. | ΓÇó Indicates discoverability, ease of use, and value of using the feature within Teams app. <br> ΓÇó Report at app feature level. | | ΓÇó #, % users using the app across different scopes (R28). | ΓÇó Engagement penetration. <br> ΓÇó Report by scope. <br> ΓÇó Ability to drill down by capability. |
-| ΓÇó #, % users using the app in different platform capabilities (R28). <br> ΓÇó #, % Interacting with tab. <br> ΓÇó #, % Interacting with Messaging extension. <br> ΓÇó #, % Interacting with bot. <br> ΓÇó #, % Interacting with side panel in a meeting. <br> ΓÇó #, % Interacting with Stage View. | ΓÇó Engagement and value prop of app capabilities. <br> ΓÇó If usage of any of platform capabilities is low, consider drilling into details on ease of use and value add. |
+| ΓÇó #, % users using the app in different platform capabilities (R28). <br> ΓÇó #, % Interacting with tab. <br> ΓÇó #, % Interacting with Messaging extension. <br> ΓÇó #, % Interacting with bot. <br> ΓÇó #, % Interacting with side panel in a meeting. <br> ΓÇó #, % Interacting with Stageview. | ΓÇó Engagement and value prop of app capabilities. <br> ΓÇó If usage of any of platform capabilities is low, consider drilling into details on ease of use and value add. |
| **Task success** | | | ΓÇó % of users completing core action. | ΓÇó Ease of performing core task. <br> ΓÇó Report at a week level. | | ΓÇó User journey in a Teams app ΓÇô Funnel view with user drop offs. | ΓÇó Friction points in user journey. <br> ΓÇó Drill down at a tenant level. |
platform Glossary https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/glossary.md
Common terms and definitions used in Microsoft Teams developer documentation.
| [Configurable tab](../resources/schem#configurabletabs)| Configurable tabs are also known as channel or group tabs. Configurable tabs are used when your app experience has a team channel tab experience, which requires extra configuration before it's added. <br> **See also**: [App manifest](#a)| | [Configuration URL](../resources/schem#configurabletabs)| An app manifest property (`configurationUrl`) where the HTTPS URL to use when configuring the tab or connector. <br> **See also**: [App manifest](#a)| | [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) |
-| [Collaborative Stage View](../tabs/tabs-link-unfurling.md#collaborative-stage-view) | Collaborative Stage View is an enhancement to Stage View that allows users to engage with your app content in a new Teams window. <br> **See also**: [Stage View](#s)|
+| [Collaborative Stageview](../tabs/tabs-link-unfurling.md#collaborative-stageview) | Collaborative Stageview is an enhancement to Stageview that allows users to engage with your app content in a new Teams window. <br> **See also**: [Stageview](#s)|
| [Compose Extensions](../resources/schem#composeextensions) | An app manifest property (`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. <br>**See also**: [Message extension](#m) | | [Command lists](../resources/schem#botscommandlists)| An app manifest property (`commandLists`) that consists of a list of commands that the bot supplies, including their usage, description, and the scope for which the commands are valid. For each scope, you must use a specific command list. <br> **See also**: [App manifest](#a)|
Common terms and definitions used in Microsoft Teams developer documentation.
| Term | Definition | | | |
-| [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. <br>**See also**: [Adaptive Card](../task-modules-and-cards/cards/cards-reference.md#adaptive-card); [Stage View](#s) |
+| [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 Stageview. <br>**See also**: [Adaptive Card](../task-modules-and-cards/cards/cards-reference.md#adaptive-card); [Stageview](#s) |
| [Live Share SDK](../apps-in-teams-meetings/teams-live-share-overview.md) | An SDK designed to transform Teams apps into collaborative multi-user experiences without writing any dedicated back-end code. With Live Share, your users can co-watch, co-create, and co-edit during meetings. | | [Live Share canvas](../apps-in-teams-meetings/teams-live-share-canvas.md)| When collaborating in meetings, it's essential for users to be able to point out and emphasize content on the screen. Live Share canvas makes it easy to add inking, laser pointers, and cursors to your app for seamless collaboration. | | [Live share media](../apps-in-teams-meetings/teams-live-share-overview.md#live-share-media)| Live Share media enables media synchronization for any media player. By synchronizing media at the player state and transport controls layer, you can individually attribute views, when providing the highest possible quality available through your app.|
Common terms and definitions used in Microsoft Teams developer documentation.
| [Media capability](../concepts/device-capabilities/media-capabilities.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/teams-apps-in-meetings.md) | 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) |
+| [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**: [Stageview](#s) |
| [Messaging endpoint](../bots/how-to/authentication/bot-sso-register-aad.md) | It's the endpoint where messages are sent to your bot. <br> **See also**: [Endpoint address](#e); [Bot handle](#b); [OAuth connection](#o); [SSO](#s) | | [Message extension](../messaging-extensions/what-are-messaging-extensions.md) | Message extensions (previously called [composeExtensions](../resources/schem#composeextensions)) 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 designed to be used during the meeting lifecycle to make it more productive, such as whiteboard, dashboard, and more. |
Common terms and definitions used in Microsoft Teams developer documentation.
| [SPFx](../sbs-gs-spfx.yml) | SharePoint Framework (SPFx) is a development model to build client-side solutions for Microsoft Teams, Office Add-ins, and SharePoint. | | [SSO](../concepts/authentication/authentication.md) | Acronym for single sign-on, an authentication method in which a user needs to sign in to an independent service of a software platform (such as Microsoft 365) only once. The user is then able to access all services without having to go through authentication again. <br>**See also**: [Authentication](#a); [Scope](#s) | | [Static tab](../concepts/design/personal-apps.md) | See [Personal tab](#p) |
-|[Stage View](../sbs-meetings-stage-view.yml)|A user interface component that lets you render the content that is opened in full screen in Teams and pinned as a tab. It's invoked to surface web content within Teams. It *isn't* the same as meeting stage. <br>**See also**: [Meeting stage](#m); [Collaborative Stage View](#c); [stageView](../m365-apps/teamsjs-support-m365.md#stageview)|
+|[Stageview](../sbs-meetings-stage-view.yml)|A user interface component that lets you render the content that is opened in full screen in Teams and pinned as a tab. It's invoked to surface web content within Teams. It *isn't* the same as meeting stage. <br>**See also**: [Meeting stage](#m); [Collaborative Stageview](#c); [stageView](../m365-apps/teamsjs-support-m365.md#stageview)|
| [Standalone app](../samples/integrating-web-apps.md) | An app that can be added to Teams to customize chats and channels by adding bots, tabs, message extensions, or connectors. Anyone can install standalone apps for personal use, and based on permissions, admins and members can install them in channels for collaboration. Standalone apps can be extended to Outlook and Microsoft 365, and built by you through integrated development environments (IDEs) like Visual Studio or Visual Studio Code. Microsoft also provides standalone apps such as Planner, Word, or Outlook. <br>**See also**: [Collaboration app](#c) | | [Static search](../task-modules-and-cards/cards/dynamic-search.md) | A method of typeahead search that lets users search from pre-specified values in the Adaptive Cards payload. <br>**See also**: [Dynamic search](#d) | | [Teams Store validation guidelines](../concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md) | A set of standards and principles for validating an app before submitting the app to Teams store. The guidelines are applicable for apps that work across Teams, Outlook, and Microsoft 365. <br>**See also**: [Teams store](#t) |
platform Extend M365 Meeting App https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-meeting-app.md
The following table shows the Teams meeting app contexts supported in Outlook:
| [Meeting details view](../apps-in-teams-meetings/build-tabs-for-meeting.md#meeting-details-view) | `meetingDetailsTab` | `frameContext.content` | ✔️ | | [Meeting chat view](../apps-in-teams-meetings/build-tabs-for-meeting.md#meeting-chat-view) | `meetingChatTab` | `frameContext.content` | ✔️ | | [Meeting side panel view](../apps-in-teams-meetings/build-tabs-for-meeting.md#meeting-side-panel-view) | `meetingSidePanel` | `frameContext.sidePanel` | ✔️ |
-| [Meeting stage view](../apps-in-teams-meetings/build-tabs-for-meeting.md#meeting-stage-view) | `meetingStage` | `frameContext.meetingStage` | ❌ |
+| [Meeting Stageview](../apps-in-teams-meetings/build-tabs-for-meeting.md#meeting-stageview) | `meetingStage` | `frameContext.meetingStage` | ❌ |
-If your meeting app supports stage view, other in-meeting effects, or contains capabilities such as message extensions and bots, these continue to work in Teams when the meeting is scheduled from Outlook, but doesn't appear or run in Outlook.
+If your meeting app supports Stageview, other in-meeting effects, or contains capabilities such as message extensions and bots, these continue to work in Teams when the meeting is scheduled from Outlook, but doesn't appear or run in Outlook.
## Prerequisites
platform Extend M365 Teams Message Extension https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-teams-message-extension.md
Message extensions allow users to interact with your web service using buttons a
Outlook mobile users on Android and iOS can receive and take actions on cards from your apps that were sent to them by users on Outlook on the web and Outlook for Windows.
-Teams message extension across Microsoft 365 also supports [link unfurling](../messaging-extensions/how-to/link-unfurling.md) that display cards to launch [Stage View](../tabs/tabs-link-unfurling.md) and task modules.
+Teams message extension across Microsoft 365 also supports [link unfurling](../messaging-extensions/how-to/link-unfurling.md) that display cards to launch [Stageview](../tabs/tabs-link-unfurling.md) and task modules.
## Prerequisites
While your updated message extension continues to run in Teams, you must be awar
* [Card actions](/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json) of type `messageBack`, `imBack`, `invoke`, and `signin` aren't supported. `openURL` is the only supported card action.
-* Adaptive Card actions are supported. For `Action.Submit` only [stageview](../tabs/tabs-link-unfurling.md#invoke-collaborative-stage-view-from-adaptive-card) and [taskmodule](../task-modules-and-cards/task-modules/task-modules-bots.md#bot-framework-card-actions-vs-adaptive-card-actionsubmit-actions) launching is supported.
+* Adaptive Card actions are supported. For `Action.Submit` only [stageview](../tabs/tabs-link-unfurling.md#invoke-collaborative-stageview-from-adaptive-card) and [taskmodule](../task-modules-and-cards/task-modules/task-modules-bots.md#bot-framework-card-actions-vs-adaptive-card-actionsubmit-actions) launching is supported.
> [!NOTE] > When you test an app with link unfurling, ensure that you remove the app manually after testing. If multiple apps are monitoring the same domain, the app installed most recently might not be invoked to unfurl the link in Outlook, as it would in Teams.
Use the [Microsoft Teams developer community channels](/microsoftteams/platform/
||--|--| | NPM Search Connector | Teams Toolkit sample app to build a message extension app. Works in Teams and Outlook. | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v2.1.0/NPM-search-connector-M365) | | Teams Link Unfurling | Simple Teams app to demonstrate link unfurling. Works in Teams, Outlook. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-link-unfurling/nodejs)
-| Tab in Stage View | Microsoft Teams tab sample app for demonstrating a tab in Stage View. Works in Teams, Outlook, Microsoft 365 app. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/nodejs) |
+| Tab in Stageview | Microsoft Teams tab sample app for demonstrating a tab in Stageview. Works in Teams, Outlook, Microsoft 365 app. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/nodejs) |
|Teams action-based message extension for Microsoft 365| Teams Toolkit sample app to build a message extension app. Works in Teams and Outlook. | [View](https://github.com/OfficeDev/TeamsFx/tree/dev/templates/js/message-extension-action) | ## Next step
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/overview.md
The Teams app platform continues to evolve and expand holistically into the Micr
| Teams app features| App manifest element | Teams support |Outlook support | Microsoft 365 app support | Notes | |--|--|--|--|--|--| | [**Tabs-personal scope**](../tabs/how-to/create-personal-tab.md) |`staticTabs` | Web, Desktop, Mobile | Web, Desktop, Mobile (Android, iOS) | Web, Desktop, Mobile (Android, iOS)| Channel and group scopes aren't supported for Microsoft 365. For more information, see [Teams JavaScript client library](../tabs/how-to/using-teams-client-sdk.md#microsoft-365-support-running-teams-apps-in-office-and-outlook).
-| [**Meeting apps**](extend-m365-meeting-app.md)|`configurableTabs`|Web, Desktop, Mobile|Desktop|-|Meeting stage view isn't supported in Outlook. See [notes](extend-m365-meeting-app.md).|
+| [**Meeting apps**](extend-m365-meeting-app.md)|`configurableTabs`|Web, Desktop, Mobile|Desktop|-|Meeting Stageview isn't supported in Outlook. See [notes](extend-m365-meeting-app.md).|
| [**Message extensions-search-based**](../messaging-extensions/how-to/search-commands/define-search-command.md)| `composeExtensions` | Web, Desktop, Mobile| Web, Desktop | - |For limitations and troubleshooting, see [notes](extend-m365-teams-message-extension.md#limitations). | | [**Action-based message extensions**](../messaging-extensions/how-to/action-commands/define-action-command.md)| `composeExtensions` | Web, Desktop, Mobile| Web | - | Viewable/actionable (not composable) in Teams/Outlook mobile preview (iOS, Android). For limitations and troubleshooting, see [notes](extend-m365-teams-message-extension.md#limitations). |
-| [**Link unfurling (including Stage View)**](../tabs/tabs-link-unfurling.md) | `composeExtensions.messageHandlers` | Web, Desktop | Web, Desktop | - | See notes on [link unfurling](extend-m365-teams-message-extension.md) and [Stage View](extend-m365-teams-message-extension.md)|
-| [**Adaptive Card Loop components**](./design-loop-components.md)|`composeExtensions.messageHandlers`|Web, Desktop |Web, Desktop (only for [new Outlook](https://support.microsoft.com/office/getting-started-with-the-new-outlook-for-windows-656bb8d9-5a60-49b2-a98b-ba7822bc7627) |-| Viewable (not composable) in Teams/Outlook mobile preview (iOS, Android). See [notes](cards-loop-component.md).|
-| [**Stage View**](extend-m365-teams-message-extension.md)|`composeExtensions.messageHandlers`|Web, Desktop, Mobile|Web (preview), Desktop (preview)|-| Viewable/actionable (not composable) in Outlook mobile preview (iOS, Android). See [notes](extend-m365-teams-message-extension.md).|
+| [**Link unfurling (including Stageview)**](../tabs/tabs-link-unfurling.md) | `composeExtensions.messageHandlers` | Web, Desktop | Web, Desktop | - | See notes on [link unfurling](extend-m365-teams-message-extension.md) and [Stageview](extend-m365-teams-message-extension.md)|
+| [**Adaptive Card Loop components**](./design-loop-components.md)|`composeExtensions.messageHandlers`|Web, Desktop |Web, Desktop (only for [new Outlook](https://support.microsoft.com/office/getting-started-with-the-new-outlook-for-windows-656bb8d9-5a60-49b2-a98b-ba7822bc7627)) |-| Viewable (not composable) in Teams/Outlook mobile preview (iOS, Android). See [notes](cards-loop-component.md).|
+| [**Stageview**](extend-m365-teams-message-extension.md)|`composeExtensions.messageHandlers`|Web, Desktop, Mobile|Web (preview), Desktop (preview)|-| Viewable/actionable (not composable) in Outlook mobile preview (iOS, Android). See [notes](extend-m365-teams-message-extension.md).|
| [**Outlook Add-ins**](/office/dev/add-ins/develop/json-manifest-overview) (preview) | `extensions` | - | Web, Desktop | - | Only available in [devPreview](../resources/schem) app manifest version. See [notes](#outlook-add-ins-preview).| Enrollment to [Microsoft 365 Targeted Release](/microsoft-365/admin/manage/release-options-in-office-365) and [Microsoft 365 Apps update channel](/deployoffice/change-update-channels) requires admin opt-in for the entire organization or selected users. Update channels are device specific and apply only to installations of Microsoft 365 running on Windows.
You can extend your [Teams message extensions](extend-m365-teams-message-extensi
:::image type="content" source="images/outlook-teams-messaging-ext.png" alt-text="The screenshot is an example that shows Message extension running in Outlook and Teams.":::
-Link unfurling works in Outlook web and Windows environments the same way it does in Microsoft Teams without any further work than using the app manifest version 1.13 or later. You can also unfurl links with cards that launch Stage View.
+Link unfurling works in Outlook web and Windows environments the same way it does in Microsoft Teams without any further work than using the app manifest version 1.13 or later. You can also unfurl links with cards that launch Stageview.
:::image type="content" source="images/outlook-teams-link-unfurling.png" alt-text="The screenshot is an example that shows Link unfurling running in Outlook and Teams.":::
platform Teamsjs Support M365 https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/teamsjs-support-m365.md
Namespace to open a share dialog for web content. For more information, see [Sha
[Reference](/javascript/api/@microsoft/teams-js/stageview) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+stageView)
-Preview. Namespace to interact with the Stage View specific part of the library.
+Preview. Namespace to interact with the Stageview specific part of the library.
<br /> <table border>
platform High Quality Message Extension https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/high-quality-message-extension.md
Message extensions respond to a user input with an Adaptive Card. An Adaptive Ca
* `Action.OpenUrl`: Opens a specified URL from the Card. * `Action.ToggleVisibility`: Displays or hides one or more elements in the card. * `Action.Execute`: Collects the input fields and sends them as a request to your bot service.
- * `Action.Submit`: Opens a dialog or Stage view using type invoke in data object.
+ * `Action.Submit`: Opens a dialog or Stageview using type invoke in data object.
:::image type="content" source="../assets/images/Copilot/ailib-copilot-action-buttons.png" alt-text="Graphic shows an example of the Update Stock, restock, and Cancel restock action buttons in an Adaptive Card response in M365 Chat.":::
-* If a user can change any information on the card through dialog, stage view, or directly from the card, we recommend the Adaptive Card to support universal actions and automatic refresh. [*Recommended*]
+* If a user can change any information on the card through dialog, Stageview, or directly from the card, we recommend the Adaptive Card to support universal actions and automatic refresh. [*Recommended*]
* Adaptive Cards must include a URL as part of the [metadata](https://adaptivecards.io/explorer/Metadata.html), which allows cards to be easily copied from one hub to another. [*Recommended*] * Apart from thumbnails, any image in an Adaptive Card must have an alt-text. [*Recommended*]
platform Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/link-unfurling.md
To get your app ready for zero install link unfurling, follow these steps:
* The bot can't send back an [Adaptive Cards with Universal Actions](../../task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md) in response to the `composeExtensions/anonymousQueryLink` invoke request, either as a result or as a pre-auth card in auth. * If the bot selects to send back the `"type": "auth"` property with a pre-auth card, Teams strips away any action buttons from the card, and adds a sign in action button to get users to authenticate into your app.+ ## How to test zero install link unfurling
Follow the [step-by-step guide](../../sbs-botbuilder-linkunfurling.yml) to unfur
* [Message extensions](../what-are-messaging-extensions.md) * [Adaptive Cards](../../task-modules-and-cards/what-are-cards.md#adaptive-cards)
-* [Tabs link unfurling and Stage View](../../tabs/tabs-link-unfurling.md)
+* [Tabs link unfurling and Stageview](../../tabs/tabs-link-unfurling.md)
* [Bot activity handlers](../../bots/bot-basics.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
| Feature | Description | Useful for | | | | |
-|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. |
+|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, Stageview, 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. | | 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. |
platform Access Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/access-teams-context.md
Your tab requires contextual information to display relevant content:
* Basic information about the user, team, or company. * Locale and theme information.
-* The `page.id` and `page.subPageId` that identify what is in this tab (known as `entityId` and `subEntityId` prior to TeamsJS v.2.0.0).
+* The `page.id` and `page.subPageId` that identify what is in this tab (known as `entityId` and `subEntityId` before TeamsJS v.2.0.0).
## User context
You can access context information in two ways:
Use placeholders in your configuration or content URLs. Microsoft Teams replaces the placeholders with the relevant values when determining the actual configuration or content URL. The available placeholders include all fields on the [context](/javascript/api/@microsoft/teams-js/microsoftteams.context?view=msteams-client-js-latest&preserve-view=true) object. Common placeholders include the following properties:
-* [{page.id}](/javascript/api/@microsoft/teams-js/app.pageinfo#@microsoft-teams-js-app-pageinfo-id): The developer-defined unique ID for the page defined when first [configuring the page](~/tabs/how-to/create-tab-pages/configuration-page.md). (Known as `{entityId}` prior to TeamsJS v.2.0.0).
-* [{page.subPageId}](/javascript/api/@microsoft/teams-js/app.pageinfo#@microsoft-teams-js-app-pageinfo-subpageid): The developer-defined unique ID for the subpage this content points defined when generating a [deep link](~/concepts/build-and-test/deep-links.md) for a specific item within the page. (Known as `{subEntityId}` prior to TeamsJS v.2.0.0).
-* [{user.loginHint}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-loginhint): A value suitable as a sign in hint for Microsoft Entra ID. This is usually the login name of the current user in their home tenant. (Known as `{loginHint}` prior to TeamsJS v.2.0.0).
-* [{user.userPrincipalName}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-userprincipalname): The User Principal Name of the current user in the current tenant. (Known as `{userPrincipalName}` prior to TeamsJS v.2.0.0).
-* [{user.id}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-id): The Microsoft Entra object ID of the current user in the current tenant. (Known as `{userObjectId}` prior to TeamsJS v.2.0.0).
-* [{app.theme}](/javascript/api/@microsoft/teams-js/app.appinfo#@microsoft-teams-js-app-appinfo-theme): The current user interface (UI) theme such as `default`, `dark`, or `contrast`. (Known as `{theme}` prior to TeamsJS v.2.0.0).
-* [{team.groupId}](/javascript/api/@microsoft/teams-js/app.teaminfo#@microsoft-teams-js-app-teaminfo-groupid): The ID of the Microsoft 365 group in which the tab resides. (Known as `{groupId}` prior to TeamsJS v.2.0.0)
-* [{user.tenant.id}](/javascript/api/@microsoft/teams-js/app.tenantinfo#@microsoft-teams-js-app-tenantinfo-id): The Microsoft Entra tenant ID of the current user. (Known as `{tid}` prior to TeamsJS v.2.0.0).
-* [{app.locale}](/javascript/api/@microsoft/teams-js/app.appinfo#@microsoft-teams-js-app-appinfo-locale): The current locale of the user formatted as *languageId-countryId*, for example `en-us`. (Known as `{locale}` prior to TeamsJS v.2.0.0).
+* [{page.id}](/javascript/api/@microsoft/teams-js/app.pageinfo#@microsoft-teams-js-app-pageinfo-id): The developer-defined unique ID for the page defined when first [configuring the page](~/tabs/how-to/create-tab-pages/configuration-page.md). (Known as `{entityId}` before TeamsJS v.2.0.0).
+* [{page.subPageId}](/javascript/api/@microsoft/teams-js/app.pageinfo#@microsoft-teams-js-app-pageinfo-subpageid): The developer-defined unique ID for the subpage this content points defined when generating a [deep link](~/concepts/build-and-test/deep-links.md) for a specific item within the page. (Known as `{subEntityId}` before TeamsJS v.2.0.0).
+* [{user.loginHint}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-loginhint): A value suitable as a sign in hint for Microsoft Entra ID. This is usually the sign in name of the current user in their home tenant. (Known as `{loginHint}` before TeamsJS v.2.0.0).
+* [{user.userPrincipalName}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-userprincipalname): The User Principal Name of the current user in the current tenant. (Known as `{userPrincipalName}` before TeamsJS v.2.0.0).
+* [{user.id}](/javascript/api/@microsoft/teams-js/app.userinfo#@microsoft-teams-js-app-userinfo-id): The Microsoft Entra object ID of the current user in the current tenant. (Known as `{userObjectId}` before TeamsJS v.2.0.0).
+* [{app.theme}](/javascript/api/@microsoft/teams-js/app.appinfo#@microsoft-teams-js-app-appinfo-theme): The current user interface (UI) theme such as `default`, `dark`, or `contrast`. (Known as `{theme}` before TeamsJS v.2.0.0).
+* [{team.groupId}](/javascript/api/@microsoft/teams-js/app.teaminfo#@microsoft-teams-js-app-teaminfo-groupid): The ID of the Microsoft 365 group in which the tab resides. (Known as `{groupId}` before TeamsJS v.2.0.0)
+* [{user.tenant.id}](/javascript/api/@microsoft/teams-js/app.tenantinfo#@microsoft-teams-js-app-tenantinfo-id): The Microsoft Entra tenant ID of the current user. (Known as `{tid}` before TeamsJS v.2.0.0).
+* [{app.locale}](/javascript/api/@microsoft/teams-js/app.appinfo#@microsoft-teams-js-app-appinfo-locale): The current locale of the user formatted as *languageId-countryId*, for example `en-us`. (Known as `{locale}` before TeamsJS v.2.0.0).
> [!NOTE] > The previous `{upn}` placeholder is now deprecated. For backward compatibility, it is currently a synonym for `{user.loginHint}`.
For example, in your app manifest if you set your tab *configurationUrl* attribu
* They're a member of the Microsoft 365 group with ID **00209384-etc**. * The user has set their Teams theme to **dark**.
-Teams will call the following URL when configuring the tab:
+Teams calls the following URL when configuring the tab:
`https://www.contoso.com/config?name=user@example.com&tenant=e2653c-etc&group=00209384-etc&theme=dark`
The following fields are changed when your content page is in a private channel:
* `sharepointSite.url`: Set to the URL of a distinct, unique SharePoint site for the private channel * `sharepointSite.path`: Set to the path of a distinct, unique SharePoint site for the private channel * `sharepointSite.domain`: Set to the domain of a distinct, unique SharePoint site domain for the private channel
+* `channel.ownerGroupId`: Set to the host team groupId of the private channel
If your page makes use of any of these values, the value of `channel.membershipType` field must be `Private` to determine if your page is loaded in a private channel and can respond appropriately.
The following image shows the dark theme option in the Teams:
## Code sample
-| Sample name | Description | Javascript|
+| Sample name | Description | JavaScript|
:|:--|:| |Tab channel context|This sample shows how to use the contents of tab context object in a private and shared channel. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-channel-context/nodejs)
platform Tab Sso Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/tab-sso-overview.md
Some scenarios where you can use the SSO API to authenticate your app users are:
- If you want to authenticate your app users within a Teams tab app, the SSO API allows app users to use your app in Teams with no additional authentication needed. Based on the app user's Teams identity, you can obtain access token for them from Microsoft Entra ID. - If your app uses dialogs (referred as task modules in TeamsJS v1.x) from within a bot, a tab, a message extension, or Adaptive Cards, then you can use the SSO API to authenticate your app users.-- You can also use the SSO API for authenticating your app users who want to access to Stage view without need to be validated again.
+- You can also use the SSO API for authenticating your app users who want to access to Stageview without need to be validated again.
> [!TIP] > You can also use the SSO API to authenticate app users in [dialogs](../../../task-modules-and-cards/what-are-task-modules.md) that embed web content.
platform Build Adaptive Card Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/build-adaptive-card-tabs.md
Follow the [step-by-step](../../sbs-tab-with-adaptive-cards.yml) guide to build
## Next step > [!div class="nextstepaction"]
-> [Tabs link unfurling and Stage View](~/tabs/tabs-link-unfurling.md)
+> [Tabs link unfurling and Stageview](~/tabs/tabs-link-unfurling.md)
## See also
platform Removal Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/removal-page.md
When your tab is uploaded to a channel or group chat, Teams adds a right-click d
## Create a tab removal page for your application
-The optional removal page is an HTML page that you host and is displayed when the tab is removed. The removal page URL is designated by the `setConfig()` method (or `setSettings()` prior to TeamsJS v.2.0.0) within your configuration page. As with all pages in your app, the removal page must comply with [Teams tab prerequisites](../../../tabs/how-to/tab-requirements.md).
+The optional removal page is an HTML page that you host and is displayed when the tab is removed. The removal page URL is designated by the `setConfig()` method (or `setSettings()` before TeamsJS v.2.0.0) within your configuration page. As with all pages in your app, the removal page must comply with [Teams tab prerequisites](../../../tabs/how-to/tab-requirements.md).
### Register a remove handler
-Optionally, within your removal page logic, you can invoke the `registerOnRemoveHandler((RemoveEvent) => {}` event handler when the user removes an existing tab configuration. The method takes in the [`RemoveEvent`](/javascript/api/@microsoft/teams-js/pages.config.removeevent?view=msteams-client-js-latest&preserve-view=true) interface and executes the code in the handler when a user attempts to remove content. The method is used to perform clean up operations such as removing the underlying resource powering the tab content. At a time only one, remove handler can be registered.
+Optionally, within your removal page logic, you can invoke the `registerOnRemoveHandler((RemoveEvent) => {}` event handler when the user removes an existing tab configuration. The method takes in the [`RemoveEvent`](/javascript/api/@microsoft/teams-js/pages.config.removeevent?view=msteams-client-js-latest&preserve-view=true) interface and executes the code in the handler when a user attempts to remove content. The method is used to perform cleanup operations such as removing the underlying resource powering the tab content. At a time only one, remove handler can be registered.
The `RemoveEvent` interface describes an object with two methods:
You can use `getConfig()` (formerly `getSettings()`) to assign the tab content t
#### Use the `getContext()` function
-You can use `getContext()` to get the current context in which the frame is running. The `getContext()` function returns a promise that will resolve with the Context object. The Context object provides valid `Context` property values that you can use in your removal page logic to determine the content to display in the removal page.
+You can use `getContext()` to get the current context in which the frame is running. The `getContext()` function returns a promise that resolves with the Context object. The Context object provides valid `Context` property values that you can use in your removal page logic to determine the content to display in the removal page.
#### Include authentication Authentication is required before allowing a user to delete the tab content. Context information can be used to help construct authentication requests and authorization page URLs. See [Microsoft Teams authentication flow for tabs](~/tabs/how-to/authentication/auth-flow-tab.md). Make sure that all domains used in your tab pages are listed in the `validDomains` array of your app manifest.
-The following is a sample tab removal code block:
+The following sample is an example of tab removal code block:
# [TeamsJS v2](#tab/teamsjs-v2)
After the remove handler is executed, `removeEvent.notifySuccess()` or `removeEv
>[!NOTE] >
-> * To ensure that an authorized user's control over a tab is not inhibited, Teams removes the tab in both success and failure cases.
-> * After you invoke the `registerOnRemoveHandler` event handler, you'll have 15 seconds to respond to the method. By default, Teams enables the **Remove** button after five seconds even if you don't call `setValidityState(true)`. After the **Remove** button is enabled, to ensure that users aren't blocked from deleting a tab, the app isn't allowed to disable the **Remove** button by calling `setValidityState(false)`.
+> * To ensure that an authorized user's control over a tab isn't inhibited, Teams removes the tab in both success and failure cases.
+> * After you invoke the `registerOnRemoveHandler` event handler, respond to the method within 15 seconds. The app must call `setValidityState(true)` in order to enable the **Remove** button and for the remove handler to get invoked.
> * When the user selects **Remove**, Teams removes the tab after 30 seconds regardless of whether the actions have been completed or not. ## Next step
platform Tabs Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/tabs-link-unfurling.md
Title: Tabs link unfurling and Stage View
+ Title: Tabs link unfurling and Stageview
-description: Learn about Stage View and Collaborative Stage View, a full screen UI component invoked to surface your web content. Link unfurling is used to turn URLs into a tab using Adaptive Cards.
+description: Learn about Stageview and Collaborative Stageview, a full screen UI component invoked to surface your web content. Link unfurling is used to turn URLs into a tab using Adaptive Cards.
ms.localizationpriority: high Last updated 06/05/2023
-# Tabs link unfurling and Stage View
+# Tabs link unfurling and Stageview
-Stage View is a user interface (UI) component that allows you to render content in a full screen within Teams or as a new window.
+Stageview is a user interface (UI) component that allows you to render content in a full screen within Teams or as a new window.
> [!NOTE] > This article is based on Microsoft Teams JavaScript client library version 2.0.x. If you are using an earlier version, see [TeamsJS](how-to/using-teams-client-library.md) for guidance on the differences between the latest TeamsJS and earlier versions.
-<!--It allows users to maintain their context within their new window experience while continuing group chat conversation. <br> Developers have to enable Tab link Unfurling for their app to get Stage View update for free. Users are still able to pin the app content as a tab. It's a new entry point to pinning app content but it will not change the existing functionality of tabs or pinning.
+<!--It allows users to maintain their context within their new window experience while continuing group chat conversation. <br> Developers have to enable Tab link Unfurling for their app to get Stageview update for free. Users are still able to pin the app content as a tab. It's a new entry point to pinning app content but it will not change the existing functionality of tabs or pinning.
[!INCLUDE [sdk-include](~/includes/sdk-include.md)]-->
-## Stage View
+## Stageview
-Stage View is a full screen UI component that can be used to render your app content, providing users with a focused experience to engage with your app. Stage View can be invoked from either an Adaptive Card or a deep link, in both chats and channels.
+Stageview is a full screen UI component that can be used to render your app content, providing users with a focused experience to engage with your app. Stageview can be invoked from either an Adaptive Card or a deep link, in both chats and channels.
-* When users invoke Stage View from Adaptive Cards, Stage View opens in a new Teams window along with the originating chat or channel thread in the side panel. This new app canvas is called the [Collaborative Stage View](#collaborative-stage-view). The Collaborative Stage View allows users to multi-task and collaborate with each other.
+* When users invoke Stageview from Adaptive Cards, Stageview opens in a new Teams window along with the originating chat or channel thread in the side panel. This new app canvas is called the [Collaborative Stageview](#collaborative-stageview). The Collaborative Stageview allows users to multi-task and collaborate with each other.
-* The Collaborative Stage View surfaces the originating chat or thread from where it was invoked and helps the users to engage with content and conversation side-by-side.
+* The Collaborative Stageview surfaces the originating chat or thread from where it was invoked and helps the users to engage with content and conversation side-by-side.
-The following image is an example of the Collaborative Stage View:
+The following image is an example of the Collaborative Stageview:
-### Stage View vs. Dialog
+### Stageview vs. Dialog
-| Stage View | Dialog (referred as task module in TeamsJS v1.x)|
+| Stageview | Dialog (referred as task module in TeamsJS v1.x)|
|:--|:--|
-| Stage View is useful to display rich content to the users, such as a page, a dashboard, or a file. It provides rich features that help to render your content in the new pop-up window and the full-screen canvas. <br><br> After your app content opens in Stage View, users can choose to pin the content as a tab. <br><br> For more collaborative capabilities, opening your content in Collaborative Stage View (through an Adaptive Card) allows users to engage with content and conversation side-by-side, while enabling multi-window scenarios.| [Dialog](../task-modules-and-cards/task-modules/task-modules-tabs.md) is especially useful to display messages that need users' attention, or collect information required to move to the next step.|
+| Stageview is useful to display rich content to the users, such as a page, a dashboard, or a file. It provides rich features that help to render your content in the new pop-up window and the full-screen canvas. <br><br> After your app content opens in Stageview, users can choose to pin the content as a tab. <br><br> For more collaborative capabilities, opening your content in Collaborative Stageview (through an Adaptive Card) allows users to engage with content and conversation side-by-side, while enabling multi-window scenarios.| [Dialog](../task-modules-and-cards/task-modules/task-modules-tabs.md) is especially useful to display messages that need users' attention, or collect information required to move to the next step.|
> [!WARNING] > Microsoft's cloud services, including web versions of Teams (*teams.microsoft.com*), Outlook (*outlook.com*), and Microsoft 365 (*microsoft365.com*) domains are migrating to the *cloud.microsoft* domain. Perform the following steps before June 2024 to ensure your app continues to render on the Teams web client:
The following image is an example of the Collaborative Stage View:
> > 2. Update your [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) headers in your Teams app to allow your app to access the ***teams.cloud.microsoft*** domain. If your Teams app extends across Outlook and Microsoft 365, ensure you allow your app to access ***teams.cloud.microsoft***, ***outlook.cloud.microsoft***, and ***m365.cloud.microsoft*** domains.
-### Invoke Stage View through deep link
+### Invoke Stageview through deep link
-To invoke the Stage View through deep link from your tab, you must wrap the deep link URL in the `app.openLink(url)` API. Stage View from a deep link always defaults to the modal experience (and not a Teams window). While the Stage View deep link can be passed through an `OpenURL` action in the card, the Stage View deep link is intended for the tab canvas. For Stage View from Adaptive Cards, it's recommended to follow the JSON [Adaptive Card example](#example).
+To invoke the Stageview through deep link from your tab, you must wrap the deep link URL in the `app.openLink(url)` API. Stageview from a deep link always defaults to the modal experience (and not a Teams window). While the Stageview deep link can be passed through an `OpenURL` action in the card, the Stageview deep link is intended for the tab canvas. For Stageview from Adaptive Cards, it's recommended to follow the JSON [Adaptive Card example](#example).
-The following image is an example of Stage view when it's invoked from a deep link:
+The following image is an example of Stageview when it's invoked from a deep link:
:::image type="content" source="../assets/images/tab-images/open-stage-from-adaptive-card2.png" alt-text="Screenshot shows the open stage from card."lightbox="~/assets/images/tab-images/open-stage-from-adaptive-card2.png"::: #### Syntax
-Following is the deep link syntax for Stage View:
+Following is the deep link syntax for Stageview:
`https://teams.microsoft.com/l/stage/{appId}/0?context={"contentUrl":"contentUrl","websiteUrl":"websiteUrl","name":"Contoso"}` #### Examples
-Following are the deep link examples to invoke Stage View:
+Following are the deep link examples to invoke Stageview:
<br>
Encoded URL:
> * All deep links must be encoded before pasting the URL.The unencoded URLs aren't supported. > * The `name` property is optional in a deep link. If not included, the app name replaces it. > * The deep link can also be passed through an `OpenURL` action.
-> * When you launch a Stage View from a certain context, ensure that your app works in that context. For example, if the Stage View is launched from a personal app, you must ensure your app has a personal scope.
+> * When you launch a Stageview from a certain context, ensure that your app works in that context. For example, if the Stageview is launched from a personal app, you must ensure your app has a personal scope.
-## Collaborative Stage View
+## Collaborative Stageview
> [!NOTE]
-> Collaborative Stage View isn't supported in Teams web and mobile clients.
+> Collaborative Stageview isn't supported in Teams web and mobile clients.
-Collaborative Stage View is an enhancement to Stage View that allows users to engage with your app content in a new Teams window. When a user opens Collaborative Stage View from an Adaptive Card, the app content pops-out in a new Teams window instead of the default Stage View modal.
+Collaborative Stageview is an enhancement to Stageview that allows users to engage with your app content in a new Teams window. When a user opens Collaborative Stageview from an Adaptive Card, the app content pops-out in a new Teams window instead of the default Stageview modal.
-In the new Teams window, the Collaborative Stage View also opens a chat in the side panel. The chat brings the conversation from the group chat or channel thread where the users' Adaptive Card is originally shared. Users can continue to collaborate directly within the new window.
+In the new Teams window, the Collaborative Stageview also opens a chat in the side panel. The chat brings the conversation from the group chat or channel thread where the users' Adaptive Card is originally shared. Users can continue to collaborate directly within the new window.
-The following image is an example of Collaborative Stage View:
+The following image is an example of Collaborative Stageview:
-### Advantages of Collaborative Stage View
+### Advantages of Collaborative Stageview
-Collaborative Stage View helps unlock multi-tasking scenarios with your app content in Teams. Users can open and view your app content inside a new Teams window, while having meaningful conversation and collaboration from the same window. The ability to engage with content while also having a conversation on the content leads to higher user engagement for your app.
+Collaborative Stageview helps unlock multi-tasking scenarios with your app content in Teams. Users can open and view your app content inside a new Teams window, while having meaningful conversation and collaboration from the same window. The ability to engage with content while also having a conversation on the content leads to higher user engagement for your app.
|Feature |Notes |Desktop |Web |Mobile| | |:-- |:-- |:- |:-- |
-|Collaborative Stage View| Invoke from Adaptive Card action. |Chat or Channel: Opens Teams pop-out window with chat pane.| Opens Stage View modal. |Opens Stage View modal.|
-|Stage View |Invoke from Deep link. Only recommended when calling from your tab app, and not an Adaptive Card. |Opens Stage View modal.| Opens Stage View modal.| Opens Stage View modal.|
+|Collaborative Stageview| Invoke from Adaptive Card action. |Chat or Channel: Opens Teams pop-out window with chat pane.| Opens Stageview modal. |Opens Stageview modal.|
+|Stageview |Invoke from Deep link. Only recommended when calling from your tab app, and not an Adaptive Card. |Opens Stageview modal.| Opens Stageview modal.| Opens Stageview modal.|
-### Invoke Collaborative Stage View from Adaptive Card
+### Invoke Collaborative Stageview from Adaptive Card
-When the user enters an app content URL in a chat, the bot is invoked and returns an Adaptive Card with the option to open the URL. Depending on the context and the usersΓÇÖ client, the URL opens in the appropriate Stage View UI. When the Collaborative Stage View is invoked from an Adaptive Card in a chat or channel (and not from a deep link), a new window opens.
+When the user enters an app content URL in a chat, the bot is invoked and returns an Adaptive Card with the option to open the URL. Depending on the context and the usersΓÇÖ client, the URL opens in the appropriate Stageview UI. When the Collaborative Stageview is invoked from an Adaptive Card in a chat or channel (and not from a deep link), a new window opens.
-The following image is an example of a Collaborative Stage View from an Adaptive Card:
+The following image is an example of a Collaborative Stageview from an Adaptive Card:
#### Example
-The following is a JSON code example to create a Collaborative Stage View button in an Adaptive Card:
+The following is a JSON code example to create a Collaborative Stageview button in an Adaptive Card:
```json {
The following is a JSON code example to create a Collaborative Stage View button
```
-The following steps show how to invoke Collaborative Stage View:
+The following steps show how to invoke Collaborative Stageview:
* When the user shares a URL in a Teams chat, the bot receives an `composeExtensions/queryLink` invoke request. The bot returns an Adaptive Card with the type `tab/tabInfoAction`.
-* When the user selects the action button on the Adaptive Card, Collaborative Stage View opens based on the content in the Adaptive Card.
+* When the user selects the action button on the Adaptive Card, Collaborative Stageview opens based on the content in the Adaptive Card.
> [!NOTE] >
-> * Passing a Stage View deep link into an Adaptive Card doesn't open the Collaborative Stage View. A Stage View deep link always opens the Stage View Modal.
+> * Passing a Stageview deep link into an Adaptive Card doesn't open the Collaborative Stageview. A Stageview deep link always opens the Stageview Modal.
> * Ensure that the URL of the content is within the list of `validDomains` in your app manifest. > * The invoke request type must be a `composeExtensions/queryLink`. > * `invoke` workflow is similar to the `appLinking` workflow. > * To maintain consistency, it is recommended to name `Action.Submit` as `Open`. > * `websiteUrl` is a required property to be passed in the `TabInfo` object.
-> * If you don't have an optimized mobile experience for Teams mobile client, the Stage View for apps distributed through the [Microsoft Teams Store](../concepts/deploy-and-publish/apps-publish-overview.md) opens in a default web browser. The browser opens the URL specified in the `websiteUrl` parameter of the `TabInfo` object.
+> * If you don't have an optimized mobile experience for Teams mobile client, the Stageview for apps distributed through the [Microsoft Teams Store](../concepts/deploy-and-publish/apps-publish-overview.md) opens in a default web browser. The browser opens the URL specified in the `websiteUrl` parameter of the `TabInfo` object.
#### Query parameters
The following steps show how to invoke Collaborative Stage View:
| Sample name | Description | .NET |Node.js| Manifest| |-|-||-|-|
-|Tab in Stage View |Microsoft Teams tab sample app for demonstrating tab in Stage View.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/csharp/demo-manifest/tab-stage-view.zip)|
+|Tab in Stageview |Microsoft Teams tab sample app for demonstrating tab in Stageview.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-stage-view/csharp/demo-manifest/tab-stage-view.zip)|
## Next step
platform Cards Format https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-format.md
The following card types support Markdown formatting in Teams:
> [!NOTE] > Markdown isn't supported for OAuth sign in cards in bots.
-You can use newlines for Adaptive Cards using `\r` or `\n` escape sequences for newlines in lists. Formatting is different between the desktop and the mobile versions of Teams for Adaptive Cards. Card-based mentions are supported in web, desktop, and mobile clients. You can use the information masking property to mask specific information, such as password or sensitive information from users within the Adaptive Card `Input.Text` input element. You can expand the width of an Adaptive Card using the `width` object. You can enable typeahead support within Adaptive Cards and filter the set of input choices as the user types the input. You can use the `msteams` property to add the ability to display images in Stage View selectively.
+You can use newlines for Adaptive Cards using `\r` or `\n` escape sequences for newlines in lists. Formatting is different between the desktop and the mobile versions of Teams for Adaptive Cards. Card-based mentions are supported in web, desktop, and mobile clients. You can use the information masking property to mask specific information, such as password or sensitive information from users within the Adaptive Card `Input.Text` input element. You can expand the width of an Adaptive Card using the `width` object. You can enable typeahead support within Adaptive Cards and filter the set of input choices as the user types the input. You can use the `msteams` property to add the ability to display images in Stageview selectively.
Formatting is different between the desktop and the mobile versions of Teams for Adaptive Cards and connector cards. In this section, you can go through the Markdown format example for Adaptive Cards and connector cards.
Bots and message extensions can include mentions within the card content in [Tex
> * [Media elements](https://adaptivecards.io/explorer/Media.html) are currently not supported in Adaptive Cards on Teams platform. > * Channel and team mentions aren't supported in bot messages. > * You can @mention multiple users in a single Adaptive Card message, however, ensure that the message size limit doesn't exceed 28 KB for [Incoming Webhooks](~/webhooks-and-connectors/how-to/add-incoming-webhook.md) and 40 KB for a [bot message](~/bots/how-to/format-your-bot-messages.md).
+> * Adaptive Cards sent from Incoming Webhooks only support user mentions and don't support bot mentions.
To include a mention in an Adaptive Card, your app needs to include the following elements:
The following code shows an example of Adaptive Card with typeahead support:
} ```
-### Stage View for images in Adaptive Cards
+### Stageview for images in Adaptive Cards
-In an Adaptive Card, you can use the `msteams` property to add the ability to display images in Stage View selectively. When users hover over the images, they can see an expand icon, for which the `allowExpand` attribute is set to `true`. The following code is an example of the `msteams` property:
+In an Adaptive Card, you can use the `msteams` property to add the ability to display images in Stageview selectively. When users hover over the images, they can see an expand icon, for which the `allowExpand` attribute is set to `true`. The following is an example of the `msteams` property:
``` json {
When users hover over the image, an expand icon appears at the upper-right corne
:::image type="content" source="../../assets/images/Cards/adaptivecard-hover-expand-icon.png" alt-text="Adaptive Card with expandable image":::
-The image appears in Stage View when the user selects the expand icon as shown in the following image:
+The image appears in Stageview when the user selects the expand icon as shown in the following image:
-In the Stage View, users can zoom in and zoom out of the image. You can select the images in your Adaptive Card that must have this capability.
+In the Stageview, users can zoom in and zoom out of the image. You can select the images in your Adaptive Card that must have this capability.
> [!NOTE] > > * Zoom in and zoom out capability applies only to the image elements that is image type in an Adaptive Card.
-> * For Teams mobile apps, Stage View functionality for images in Adaptive Cards is available by default. Users can view Adaptive Card images in Stage View by simply tapping on the image, irrespective of whether the `allowExpand` attribute is present or not.
+> * For Teams mobile apps, Stageview functionality for images in Adaptive Cards is available by default. Users can view Adaptive Card images in Stageview by simply tapping on the image, irrespective of whether the `allowExpand` attribute is present or not.
# [Markdown format for connector cards for Microsoft 365 Groups](#tab/connector-md)
platform Debug Your Teams App Test Tool https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-your-Teams-app-test-tool.md
Test Tool offers a faster debug experience for bot applications when compared to
teamsapptester.exe start ```
- If the Test Tool for C# doesn't initiate because of a port conflict, alter the Test Tool's port number in the `TEAMSAPPTESTER_PORT` environment variable where you run `teamsapptester.exe start`.
+ If the Test Tool for C# doesn't initiate because of a port conflict, alter the Test Tool's port number in the `TEAMSAPPTESTER_PORT` environment variable where you run `teamsapptester.exe start`.
1. Test Tool opens the bot in a webpage.
It's vital to recognize that updating the configuration file has three major imp
* [Typeahead search](../task-modules-and-cards/cards/dynamic-search.md) * [User mention](../task-modules-and-cards/cards/cards-format.md#microsoft-azure-active-directory-azure-ad-object-id-and-upn-in-user-mention)
- * [Stage View](../task-modules-and-cards/cards/cards-format.md#stage-view-for-images-in-adaptive-cards)
+ * [Stageview](../task-modules-and-cards/cards/cards-format.md#stageview-for-images-in-adaptive-cards)
* [Full width](../task-modules-and-cards/cards/cards-format.md#full-width-adaptive-card) * Test Tool doesn't support the following experiences:
platform Debug Your Teams App Test Tool Vs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/toolkit-v4/debug-your-Teams-app-test-tool-vs.md
Teams App Test Tool (Test Tool) makes debugging bot-based apps effortless. You c
The following image shows a sample app displaying a response in Test Tool:
- :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool-sample-app-output-vs.png" alt-text="Screenshot shows the Teams App Test Tool Adaptive Card." lightbox="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool-sample-app-output-vs.png":::
+ :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool-sample-app-output-vs.png" alt-text="Screenshot shows the Teams App Test Tool Adaptive Card." lightbox="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool-sample-app-output-vs.png":::
The following are the advantages of Test Tool:
Test Tool offers a faster debug experience for bot applications when compared to
> [!NOTE] > * [OpenAI](https://platform.openai.com/apps) or [Azure OpenAI](https://oai.azure.com/portal) are the prerequisite to debug **AI Chat Bot** app.
- :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/project-teams-application-vs.png" alt-text="Screenshot shows the selection of Teams application to create a new project.":::
+ :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/project-teams-application-vs.png" alt-text="Screenshot shows the selection of Teams application to create a new project.":::
A GettingStarted window appears.
Test Tool offers a faster debug experience for bot applications when compared to
# [Azure OpenAI](#tab/azureopenai) 1. Update Azure `OpenAIApiKey` and `OpenAIEndpoint` in the `appsettings.TestTool.json` file.
-
+ :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/app-seetings-test-tool-azureAI.png" alt-text="Screenshot displays the updated OpenAI key and endpoint for Azure."::: 1. Replace model name with Azure OpenAI model deployment name in `Program.cs` file.
-
+
:::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/azure-openai-model-deployment-name.png" alt-text="Screenshot shows the AzureOpenAI model deployement name updated.":::
Test Tool offers a faster debug experience for bot applications when compared to
Test Tool opens the bot in a webpage.
- :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool.png" alt-text="Screenshot shows the bot opens the test tool in web page." lightbox="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/debug-test-tool-vs.png":::
+ :::image type="content" source="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/test-tool.png" alt-text="Screenshot shows the bot opens the test tool in web page." lightbox="../../assets/images/teams-toolkit-v2/teams-toolkit-vs/debug-test-tool-vs.png":::
## Activity triggers
Predefined activity triggers are available in the **Mock an Activity** menu in T
1. Select the **Program.cs** file. 1. In the **Program.cs** file, under `builder.Services.AddTransient<IBot>(sp =>` add the following code:
-
- ```csharp
+ ```csharp
app.OnConversationUpdate("membersAdded", async (context, state, cancellationToken) => { await context.SendActivityAsync($"new member added", cancellationToken: cancellationToken); }); ```
- The `OnConversationUpdate` handler recognizes the members who join the conversation as described by the Add user activity.
+ The `OnConversationUpdate` handler recognizes the members who join the conversation as described by the Add user activity.
:::image type="content" source="../../assets/images/teams-toolkit-v2/debug-VS/add-a-user-code-vs.png" alt-text="Screenshot shows the code added to program.cs file for predefined mock activity add user.":::
Predefined activity triggers are available in the **Mock an Activity** menu in T
### Custom activity triggers
-You can use **Custom activity** to customize activity trigger `reactionsAdded`, to fit the requirements of your bot app. Test Tool automatically populates the required properties of the activity. You can also modify the activity type and add more properties such as, `MembersAdded`, `membersremoved`, and `reactionsremoved`.
+You can use **Custom activity** to customize activity trigger `reactionsAdded`, to fit the requirements of your bot app. Test Tool automatically populates the required properties of the activity. You can also modify the activity type and add more properties such as, `MembersAdded`, `membersremoved`, and `reactionsremoved`.
1. In Visual Studio Code, go to **Solution Explorer**. 1. Select the **Program.cs** file.
You can use **Custom activity** to customize activity trigger `reactionsAdded`,
``` The `OnMessageReactionsAdded` handler identifies the reaction to append by using the `ReplyToId` property of the earlier conversation.
-
+ :::image type="content" source="../../assets/images/teams-toolkit-v2/debug-VS/custom-activity-code-vs.png" alt-text="Screenshot shows the code added to program.cs file for customization on mock activity."::: 1. Go to the Test Tool webpage and select the latest response from Log Panel to copy `replyToId`.
You can use **Custom activity** to customize activity trigger `reactionsAdded`,
* [Typeahead](../../task-modules-and-cards/cards/dynamic-search.md) * [User mention](../../task-modules-and-cards/cards/cards-format.md#microsoft-entra-object-id-and-upn-in-user-mention)
- * [Stage View](../../task-modules-and-cards/cards/cards-format.md#stage-view-for-images-in-adaptive-cards)
+ * [Stageview](../../task-modules-and-cards/cards/cards-format.md#stageview-for-images-in-adaptive-cards)
* [Full width Adaptive Card](../../task-modules-and-cards/cards/cards-format.md#full-width-adaptive-card) * Test Tool doesn't support the following experiences:
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Teams platform features that are available to all app developers.
| 28/08/2023 | Teams app manifest is now referred to as app manifest.|App manifest > [Overview](resources/schem)| | 16/08/2023 | Use Teams Toolkit Visual Studio v17.7 extension with many new app development features to get started with app development for Teams.|Tools and SDKs > Tools > [Teams Toolkit for Visual Studio](toolkit/toolkit-v4/teams-toolkit-fundamentals-vs.md) | | 10/08/2023 | Send a proactive message using Microsoft Entra ID.|Build bots > Bot conversations > [Proactive messages](bots/how-to/conversations/send-proactive-messages.md)|
-| 25/07/2023 | Use Collaborative Stage View to engage with your app content in a new Teams window.|Build tabs > [Tabs link unfurling and Stage View](tabs/tabs-link-unfurling.md#collaborative-stage-view).
+| 25/07/2023 | Use Collaborative Stageview to engage with your app content in a new Teams window.|Build tabs > [Tabs link unfurling and Stageview](tabs/tabs-link-unfurling.md#collaborative-stageview).
| 25/07/2023 | Use people icon in an Adaptive Card to view the images of users.|Build cards and task modules > Build cards > Review Teams Store validation guidelines > [Build cards](task-modules-and-cards/cards/cards-format.md#people-icon-in-an-adaptive-card) | | 20/07/2023 | App caching for iOS personal tray | Build tabs > [App caching for iOS personal tray](tabs/how-to/app-caching.md) | | 06/07/2023 | Use app icon badging to identify any app activity during a meeting | Build apps for Teams meetings and calls > Build in-meeting notification and app icon badging > [Use app icon badging to identify any app activity during a meeting](apps-in-teams-meetings/app-icon-badging-for-your-app.md) |
Explore updates from the previous GA releases listed here.
|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 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/09/2021| Introduced step-by-step guide to meeting Stageview | Build apps for Teams meetings > Enable and configure apps for meetings > [Step-by-step guide to create meetings Stageview](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 Teams 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)| |12/09/2021| Introduced step-by-step guide to create meeting side panel | Build apps for Teams meetings > Enable and configure apps for meetings > [Step-by-step guide to create meeting side panel in Teams](sbs-meetings-sidepanel.yml)| |12/01/2021 | Introduced new Teams Store icon | ΓÇó Design your app > App capabilities > [Designing your personal app for Microsoft Teams](concepts/design/personal-apps.md)</br> ΓÇó Design your app > UI components > [Designing your Microsoft Teams app with advanced UI components](concepts/design/design-teams-app-advanced-ui-components.md) |
Explore updates from the previous GA releases listed here.
|10/25/2021| Updated Get started module for Microsoft Teams Developer Documentation with new structure and procedures in a step-by-step guide | Get started > [Get started with your first Teams app](get-started/get-started-overview.md) | |10/20/2021| Meeting stage is now available in GA | Build apps for Teams meetings > [Enable and configure your apps for Teams meetings](apps-in-teams-meetings/build-tabs-for-meeting.md) | |10/20/2021| Meeting Details API and real-time Teams meeting events | Build apps for Teams meetings > [Get meeting details API](apps-in-teams-meetings/meeting-apps-apis.md) |
-|10/18/2021| Tabs link unfurling and Stage View | Build tabs > [Tabs link unfurling and Stage View](tabs/tabs-link-unfurling.md) |
+|10/18/2021| Tabs link unfurling and Stageview | Build tabs > [Tabs link unfurling and Stageview](tabs/tabs-link-unfurling.md) |
|10/08/2021| New best practices for designing Adaptive Cards | Design your app > UI components > [Designing Adaptive Cards for your Teams app](task-modules-and-cards/cards/design-effective-cards.md) | |10/05/2021| Hide Teams app until Admin allows to un-hide the app | Design your app > [Block apps by default for users until an admin approves](concepts/deploy-and-publish/add-default-install-scope.md#block-apps-by-default-for-users-until-an-admin-approves) | |10/05/2021| Plan your apps for Teams mobile | App fundamentals > [Plan responsive tabs for Teams mobile](concepts/design/plan-responsive-tabs-for-teams-mobile.md) |
Explore updates from the previous GA releases listed here.
|07/08/2021|Teams mobile adds support for apps in meetings | Build apps for Teams meetings > [Build apps for Teams meeting](apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md) | |06/28/2021|Integrate People Picker capability | Integrate with Teams > [Integrate People Picker capability](concepts/device-capabilities/people-picker-capability.md) | |06/25/2021| Introduced step-by-step guide to send proactive messages | Build bots > Bot conversation > Proactive messages > [Step-by-step guide to send proactive messages](sbs-send-proactive.yml) |
-|06/09/2021| Stage View for images in Adaptive Cards with `allowExpand` attribute | Build cards and task modules > Build cards > [Stage View for images in Adaptive Cards](task-modules-and-cards/cards/cards-format.md#stage-view-for-images-in-adaptive-cards) |
+|06/09/2021| Stageview for images in Adaptive Cards with `allowExpand` attribute | Build cards and task modules > Build cards > [Stageview for images in Adaptive Cards](task-modules-and-cards/cards/cards-format.md#stageview-for-images-in-adaptive-cards) |
|05/31/2021| Conversational tabs | Build tabs > [Start and continue conversations about content in your tabs](~/tabs/how-to/conversational-tabs.md) | |05/24/2021| Updated Teams app design guidelines with mobile patterns | Design your app > [Designing your Teams app](~/concepts/design/design-teams-app-overview.md) | |05/13/2021| Added information on mConnect and Skooler | Integrate with Teams > Moodle LMS > [Moodle learning management system](resources/moodle-overview.md)|