Updates from: 04/27/2021 03:40:39
Service Microsoft Docs article Related commit history on GitHub Change details
platform Create Apps For Teams Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
description: create apps for teams meetings
+localization_priority: Normal
keywords: teams apps meetings user participant role api # Create apps for Teams meetings
platform Designing Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
Title: Designing your meeting extension
description: Learn how to design apps in Teams meetings and get the Microsoft Teams UI Kit.
+localization_priority: Normal
# Designing your Microsoft Teams meeting extension
platform Teams Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
description: overview of apps in Teams meetings based on participant and user role
+localization_priority: Normal
keywords: teams apps meetings user participant role api
platform Bot Basics https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/bot-basics.md
Title: Bot activity handlers
description: Understand the bot activity handlers in Teams.
+localization_priority: Normal
platform Bot Features https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/bot-features.md
Title: Bots and SDKs
description: Bots and SDKs in Microsoft Teams.
+localization_priority: Normal
platform Call Notifications https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/call-notifications.md
Title: Incoming call notifications description: Detailed technical information on handling notifications from incoming calls
+localization_priority: Normal
keywords: calling calls notifications callback region affinity Last updated 04/02/2019
platform Calls Meetings Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/calls-meetings-bots-overview.md
Title: Calls and online meetings bots description: Learn how your Microsoft Teams apps can interact with users using voice and video using Microsoft Graph APIs for calls and online meetings.
+localization_priority: Normal
keywords: calling calls audio video IVR voice online meetings
platform Debugging Local Testing Calling Meeting Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/debugging-local-testing-calling-meeting-bots.md
Title: Debug your calling and meeting bot locally description: Learn how you can also use ngrok to develop calls and online meeting bots on your local PC.
+localization_priority: Normal
keywords: local development ngrok tunnel Last updated 11/18/2018
platform Real Time Media Concepts https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/real-time-media-concepts.md
Title: Real-time media calls and online meetings with Microsoft Teams description: Understand key concepts in building bot that can conduct real-time audio and video calls and online meetings.
+localization_priority: Normal
keywords: audio stream video stream audio/video calling meeting real-time media application-hosted media service-hosted media
platform Registering Calling Bot https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/registering-calling-bot.md
Title: Register calls and meetings bot for Microsoft Teams description: Learn how to register a new audio/video calling bot for Microsoft Teams
+localization_priority: Normal
keywords: calling bot audio/video audio video media # Register calls and meetings bot for Microsoft Teams
platform Requirements Considerations Application Hosted Media Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/calls-and-meetings/requirements-considerations-application-hosted-media-bots.md
Title: Requirements and considerations for application-hosted media bots description: Understand important requirements and considerations related to creating application-hosted media bots for Microsoft Teams.
+localization_priority: Normal
keywords: application-hosted media windows server azure vm Last updated 11/16/2018
platform Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/design/bots.md
Title: Designing your bot
description: Learn how to design a Teams bot and get the Microsoft Teams UI Kit.
+localization_priority: Normal
# Designing your Microsoft Teams bot
See more about writing for bots in the <a href="https://www.figma.com/community/
:::row::: :::column span=""::: #### Do: Clearly convey what your bot can do
Welcome messages and tours help people understand what they can do with your bot
:::column-end::: :::column span=""::: #### Don't: Obscure your bot's features
First impressions matter. People will likely be confused or suspicious when pres
:::row::: :::column span=""::: #### Do: Recognize non-questions
Your bot should be able to respond to messages like "Hi", "Help", and "Thanks" w
:::column-end::: :::column span=""::: #### Don't: Miss out on opportunities to delight
Some people expect conversations to flow naturally like they would with a real p
:::row::: :::column span=""::: #### Do: Provide help
If your bot canΓÇÖt satisfy a request, provide ways for a user to educate themse
:::column-end::: :::column span=""::: #### Don't: Leave users stranded
People will quickly abandon your bot if they canΓÇÖt troubleshoot issues.
:::row::: :::column span=""::: #### Do: Use task modules or tabs
If your bot provides an answer that requires a few more steps, you can link to a
:::column-end::: :::column span=""::: #### Don't: Make multi-turn interactions tedious
An extensive conversation to complete a single task is slow and overly complex.
:::row::: :::column span=""::: #### Do: Only show sensitive info in a personal context
If your bot is in a group chat or channel, we recommend directing users to a pri
:::column-end::: :::column span=""::: #### Don't: Some content isnΓÇÖt meant to be seen by everyone
platform Add Power Virtual Agents Bot To Teams https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/add-power-virtual-agents-bot-to-teams.md
Title: Add Power Virtual Agents chatbot to Teams
description: integrating a Power Virtual Agents chatbot in the Teams platform
+localization_priority: Normal
-# Integrate a Power Virtual Agents chatbot with Microsoft Teams
+# Add Power Virtual Agents chatbot
-[Power Virtual Agents](/power-virtual-agents/fundamentals-what-is-power-virtual-agents) is a no-code, guided graphical interface solution that empowers every member of your team to create rich, conversational chatbots that easily integrate with the Teams platform. All content authored in Power Virtual Agents renders naturally in Teams and Power Virtual Agents bots engage with users in the Teams native chat canvas. Your IT administrators, business analysts, domain specialists, and skilled app developers can design, develop and publish intelligent virtual agents for Teams without having to setup a development environment, create a web service, or directly register with the Bot Framework. *See* [Create a chatbot for Teams with Microsoft Power Virtual Agents](../bot-features.md#bots-and-the-microsoft-power-virtual-agents).
+Power Virtual Agents is a no-code, guided graphical interface solution that empowers every member of your team to create rich, conversational chatbots that easily integrate with the Teams platform. All content authored in Power Virtual Agents renders naturally in Teams. Power Virtual Agents bots engage with users in the Teams native chat canvas. The IT administrators, business analysts, domain specialists, and skilled app developers can design, develop and publish intelligent virtual agents for Teams without having to setup a development environment. They can create a web service, or directly register with the Bot Framework.
+
+This document guides you on how to make your chatbot available in Teams through the Power Virtual Agents portal, and add your bot to Teams using App Studio.
+
+Power Virtual Agents lets you create powerful chatbots that can answer questions posed by your customers, other employees, or visitors to your website or service.
+
+These bots can be created easily without the need for data scientists or developers.
> [!NOTE]
-> By adding your chatbot to Microsoft Teams, some of data, such as bot content and end-user chat content, will be shared with Microsoft Teams (meaning that your data will flow outside of your [organizationΓÇÖs compliance and geographic or regional boundaries](/power-virtual-agents/data-location)). <br/>
-> For more information, see the [Security and compliance in Microsoft Teams](/MicrosoftTeams/security-compliance-overview).
+> By adding your chatbot to Microsoft Teams, some of the data, such as bot content and user chat content, is shared with Microsoft Teams. It means that your data flows outside of your [organizationΓÇÖs compliance and geographic or regional boundaries](/power-virtual-agents/data-location). <br/>
+
+## Make your chatbot available in Teams through the Power Virtual Agents portal
-## Make your chatbot available in Teams via the Power Virtual Agents portal
+To make your chatbot available in Teams through the Power Virtual Agents portal, you must perform the following process steps:
-1. **Publish the latest bot content**. After you have created a chatbot in the [Power Virtual Agents portal](https://powervirtualagents.microsoft.com), you need to publish your bot at least once before Teams users can interact with it. See [Publish the latest bot content](/power-virtual-agents/publication-fundamentals-publish-channels#publish-the-latest-bot-content).
+**To make the chatbot available in Teams**
-![publish in power virtual agents portal](../../assets/images/pva-publish.png)
+1. **Publish the latest bot content**
+After creating a chatbot in the Power Virtual Agents portal, you must publish your bot before Teams users can interact with it. For more information, see [Publish the latest bot content](/power-virtual-agents/publication-fundamentals-publish-channels#publish-the-latest-bot-content).
-2. **Configure the Teams channel**. After publishing your bot, you can add the Teams channel to make the bot available to Teams users.
+ ![publish in power virtual agents portal](../../assets/images/pva-publish.png)
-![channels in power virtual agents portal](../../assets/images/pva-channels.png)
+1. **Configure the Teams channel**
+After publishing your bot, add the Teams channel to make the bot available to Teams users.
-3. **Generate an App Id for your chatbot**. When the Teams channel has been successfully added to your chatbot, an **App Id** will be generated in the dialog box. The App Id is a unique Microsoft generated identifier for your bot. Copy and save the App Id ΓÇö you will need it later to create an app package for Teams.
+ ![channels in power virtual agents portal](../../assets/images/pva-channels.png)
+
+1. **Generate an App ID for your chatbot**
+After adding the Teams channel to your chatbot, an **App ID** is generated in the dialog box. The App ID is a unique Microsoft generated identifier for your bot. Save the App ID to create an app package for Teams.
## Add your bot to Teams using App Studio
-If [uploading custom apps is enabled](/microsoftteams/admin-settings) in your Teams instance, you can use Teams App Studio to directly upload your chatbot and start using it right away. If you want to share your chatbot, you can request that your admin make your bot available in the tenant app catalog or you can send others your app package and ask them to upload it independently.
+If [uploading custom apps is enabled](/microsoftteams/admin-settings) in your Teams instance, you can use Teams App Studio to directly upload your chatbot and start using it immediately. To share your chatbot, you can request your admin to make your bot available in the tenant app catalog or you can send your app package to others and ask them to upload it independently.
+
+1. **Install App Studio in Teams**
+App Studio is a Teams app. Install App Studio from the Teams store that simplifies the process of bot creation and registration in Teams:
+
+ 1. Select the app store icon from Teams instance, and search for **App Studio**.
+
+ &emsp;&emsp; <img width="450px" alt="Finding App Studio in the Store" src="../../assets/images/get-started/app-studio-store.png"/>
+
+ 1. Select the **App Studio** tile and select **Install** in the pop-up dialog box.
+
+ &emsp;&emsp; <img width="450px" alt="Installing App Studio" src="../../assets/images/get-started/app-studio-install.png"/>
+
+1. **Create the Teams app manifest in App Studio**
+Bots in Teams are defined by an app manifest JSON file that provides the basic information about your bot and its capabilities. In **App Studio**, select **Manifest editor**, and select **Create a new app**.
+The following image guides you to create a new app in App Studio:
+
+ ![create a new app](../../assets/images/get-started/create-new-app.png)
+
+1. **Add your bot details**
+Complete all the required fields. For a full description of each field see [manifest schema definition](../../resources/schem).
+The following image guides you to add the app details:
+
+ ![add app details](../../assets/images/get-started/add-app-details.png)
+
+1. **Set up your bot**
+To set-up the bot, perform the following steps:
+ 1. Open the **Bots** tab.
+ 1. Select **Setup** > **Existing bot** and enter the name of your bot.
-1. **Install App Studio in Teams**. App Studio is a Teams app you can install from the Teams store that simplifies the creation and registration of your bot in Teams:
+ The following image guides you to set-up a bot:
- * Select the app store icon from the bottom of the left nav bar in your Teams instance, and search for **App Studio**.
->
+ ![Bot set-up](../../assets/images/get-started/bot-set-up.png)
-&emsp;&emsp; <img width="450px" alt="Finding App Studio in the Store" src="/msteams-docs/msteams-platform/assets/images/get-started/app-studio-store.png"/>
+ The following image guides you to set-up an existing bot:
- * Select the **App Studio** tile and choose **Install** in the pop-up dialog box.
->
-&emsp;&emsp; <img width="450px" alt="Installing App Studio" src="../../assets/images/get-started/app-studio-install.png"/>
+ ![existing bot set-up](../../assets/images/get-started/existing-bot-set-up.png)
+1. **Add your App ID**
+To add your App ID, perform the following steps:
+ 1. Select **Connect to a different bot id** and paste the **App Id** you copied earlier.
+ 1. Select **Scope** > **Personal** > **Save**.
+The following image guides you to set-up an existing bot:
-2. **Create the Teams app manifest in App Studio**. Bots in Teams are defined by an app manifest (JSON) file that provides basic information about your bot and its capabilities. In **App Studio** select **Manifest editor** => **Create a new app**.
-3. **Add your bot details**. For a full descriptions of each field see [manifest schema definition](../../resources/schem). Be sure to complete all required fields.
-4. **Set up your bot**. Navigate to the **Bots** tab, select the **Setup** button, choose **Existing bot**, and enter your bot name.
-5. **Add your App Id**. Navigate to **Connect to a different bot id** and paste in the **App Id** you copied earlier. Under scope, select **Personal** and then select **Save**.
-6. **Add valid domains for your bot**. This step is only required if your bot requires the user to sign in. Navigate to **Domains and permissions** and in the **Valid Domains** field input the following:
+ ![add app id](../../assets/images/get-started/add-app-id.png)
-```bash
-token.botframework.com
-```
+1. **Add valid domains for your bot**
+This step is only required if your bot requires the user to sign in. Select **Domains and permissions** and in the **Valid Domains** field, provide the following input:
-7. **Test and distribute your bot**. Choose the **Test and distribute** tab and choose **Install** to add your bot directly to your Teams instance. Optionally, you can download your completed app package to share with Teams users or provide it to your admin to make your bot available in the tenant app catalog.
-8. **Start a chat**. The setup process for adding your Power Virtual Agents chat bot to Teams is complete. You can now start a conversation with your bot in a personal chat.
+ ```bash
+ token.botframework.com
+ ```
+
+7. **Test and distribute your bot**
+Open **Test and distribute** tab and select **Install** to add your bot directly to your Teams instance. Alternately, you can download the completed app package to share with Teams users or provide it to your admin to make your bot available in the tenant app catalog.
+
+8. **Start a chat**
+The set-up process for adding your Power Virtual Agents chat bot to Teams is complete. You can now start a conversation with your bot in a personal chat.
+
+## See also
+> [!div class="nextstepaction"]
+> [Power Virtual Agents](/power-virtual-agents/fundamentals-what-is-power-virtual-agents)
+
+> [!div class="nextstepaction"]
+> [Create a chatbot for Teams with Microsoft Power Virtual Agents](../bot-features.md#bots-and-the-microsoft-power-virtual-agents).
+
+> [!div class="nextstepaction"]
+> [Power Virtual Agents portal](https://powervirtualagents.microsoft.com)
+
+> [!div class="nextstepaction"]
+> [Publish your Power Virtual Agents bot](/power-virtual-agents/publication-fundamentals-publish-channels)
> [!div class="nextstepaction"]
-> [Learn more: Publish your Power Virtual Agents bot](/power-virtual-agents/publication-fundamentals-publish-channels)
+> [Security and compliance in Microsoft Teams](/MicrosoftTeams/security-compliance-overview).
+
+## Next step
+
+> [!div class="nextstepaction"]
+> [Create virtual assistant](~/samples/virtual-assistant.md)
+
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/authentication/add-authentication.md
Title: Add authentication to your Teams bot
description: How to add OAuth authentication to a bot in Microsoft Teams.
+localization_priority: Normal
platform Auth Aad Sso Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/authentication/auth-aad-sso-bots.md
Title: Single sign-on support for bots description: Describes how to get a user token. Currently, a bot developer can use a sign in card or the azure bot service with the OAuth card support. keywords: token, user token, SSO support for bots
+localization_priority: Normal
platform Auth Flow Bot https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/authentication/auth-flow-bot.md
Title: Microsoft Teams Authentication flow for bots description: Describes Microsoft Teams authentication flow in bots keywords: teams authentication flow bots
+localization_priority: Normal
platform Bots Filesv4 https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/bots-filesv4.md
Title: Send and receive files through the bot
description: Describes how to send and receive files through the bot keywords: teams bots files send receive Last updated 05/20/2019
+localization_priority: Normal
# Send and receive files through the bot
platform Channel And Group Conversations https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/channel-and-group-conversations.md
Title: Channel and group conversations with a bot
description: How to send, receive, and handle messages for a bot in a channel or group chat.
+localization_priority: Normal
# Channel and group chat conversations with a bot
platform Conversation Basics https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/conversation-basics.md
Title: Conversation basics
description: Introduction to conversations
+localization_priority: Normal
keyword: conversations basics messages
platform Conversation Messages https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/conversation-messages.md
Title: Messages in bot conversations
description: Describes ways to have a conversation with a Microsoft Teams bot
+localization_priority: Normal
keyword: receive message send message picture message channel data adaptive cards
platform Send Proactive Messages https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/send-proactive-messages.md
Title: Send proactive messages
description: Describes how to send proactive messages with your Microsoft Teams bot.
+localization_priority: Normal
Keywords: send a message get user ID channel ID conversation ID # Send proactive messages
platform Subscribe To Conversation Events https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
Title: Conversation events
description: How to work with conversation events from your Microsoft Teams bot.
+localization_priority: Normal
platform Create A Bot Commands Menu https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/create-a-bot-commands-menu.md
Title: Create a command menu for your bot
description: How to create a command menu for your Microsoft Teams bot
+localization_priority: Normal
platform Locally With An Ide https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/debug/locally-with-an-ide.md
Title: Test and debug your bot locally
description: Testing and debugging your bot locally with an IDE
+localization_priority: Normal
platform Format Your Bot Messages https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/format-your-bot-messages.md
Title: Format your bot messages
description: Add rich formatting to your bot messages
+localization_priority: Normal
# Format your bot messages
platform Get Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/get-teams-context.md
Title: Get Teams specific context for your bot
description: How to get Microsoft Team's specific context for your bot, including the conversation roster, details, and channel list.
+localization_priority: Normal
# Get Teams specific context for your bot
platform Rate Limit https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/rate-limit.md
Title: Optimize your bot with rate limiting in Teams description: Rate limiting and best practices in Microsoft Teams
+localization_priority: Normal
keywords: teams bots rate limiting
platform Update And Delete Bot Messages https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/update-and-delete-bot-messages.md
Title: Update and delete messages sent from your bot
description: How to update and delete messages sent from your Microsoft Teams bot
+localization_priority: Normal
platform What Are Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/what-are-bots.md
Title: Bots in Microsoft Teams
description: An overview of bots in Microsoft Teams.
+localization_priority: Normal
# Bots in Microsoft Teams
platform Build And Run https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-and-run.md
Title: Get started - Build and run your first app
description: Quickly create a Microsoft Teams app that displays a "Hello, World!" message using the Microsoft Teams Toolkit.
+localization_priority: Normal
Last updated 11/03/2020
platform Build Bot https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-bot.md
Title: Get started - Build a bot
description: Quickly create a Microsoft Teams bot using the Microsoft Teams Toolkit.
+localization_priority: Normal
Last updated 11/04/2020
platform Build Channel Tab https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-channel-tab.md
Title: Get started - Build a channel and group tab
description: Quickly create a Microsoft Teams channel and group tab using the Microsoft Teams Toolkit.
+localization_priority: Normal
Last updated 10/09/2020
platform Build First App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-first-app-overview.md
Title: Get started - Build your first app overview and prerequisites
description: Learn how to get started with Microsoft Teams app development and set up your environment.
+localization_priority: Normal
Last updated 11/03/2020
platform Build Messaging Extension https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-messaging-extension.md
Title: Get started - Build a messaging extension
description: Quickly create a Microsoft Teams messaging extension using the Microsoft Teams Toolkit.
+localization_priority: Normal
Last updated 11/04/2020
platform Build Personal Tab https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-personal-tab.md
Title: Get started - Build a personal tab
description: Quickly create a Microsoft Teams personal tab using the Microsoft Teams Toolkit.
+localization_priority: Normal
Last updated 11/03/2020
platform App Fundamentals Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/app-fundamentals-overview.md
Title: App development fundamentals overview
description: Describe the foundational concepts of Teams platform development.
+localization_priority: Normal
platform Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/authentication/authentication.md
Title: Authenticating app users description: Describes authentication in Teams and how to use it in the apps
+localization_priority: Normal
keywords: teams authentication OAuth SSO AAD # Authenticate users in Microsoft Teams
platform Configure Identity Provider https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/authentication/configure-identity-provider.md
Title: Configure OAuth 2.0 identity providers description: Describes how to configure identity providers with a focus on Azure AD
+localization_priority: Normal
keywords: teams authentication AAD oauth identity provider # Configure identity providers
platform App Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/app-studio-overview.md
Title: Get started with App Studio for Microsoft Teams description: Get started building great apps in Microsoft Teams using App Studio keywords: getting started app studio teams
+localization_priority: Normal
platform Apps Localization https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/apps-localization.md
Title: Localization for your app description: Describes considerations for localizing your Microsoft Teams app.
+localization_priority: Normal
keywords: teams publish store office publishing AppSource localization language Last updated 05/15/2018
platform Apps Package https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/apps-package.md
Title: Package your app description: Learn how to package your Microsoft Teams app for testing, uploading, and store publishing.
+localization_priority: Normal
The color version of your icon displays in most Teams scenarios and must be 192x
Teams automatically crops your icon to display a square with rounded corners in multiple scenarios and a hexagonal shape in bot scenarios. Include 48 pixels of padding around your symbol so these crops can be made without losing any detail. ### Outline icon
platform Build App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/build-app-overview.md
Title: Build options for Microsoft Teams app development
description: Describe the SDKs, tools, and APIs you can use to build all types of Teams apps.
+localization_priority: Normal
# Build options for Microsoft Teams app development
platform Debug https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/debug.md
Title: Choosing a setup to test and debug your app description: Describes options for testing and debugging Microsoft Teams apps keywords: teams run debug apps
+localization_priority: Normal
platform Deep Links https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/deep-links.md
Title: Create deep links to content
+ Title: Create deep links
description: Describes deep links and how to use them in your apps
+localization_priority: Normal
keywords: teams deep link deeplink
-# Create deep links to content and features in Microsoft Teams
+# Create deep links
-You can create links to information and features within Teams. Examples where creating deep links are useful are as follows:
+You can create links to information and features within Teams. The scenarios where creating deep links are useful are as follows:
-* Navigating the user to content within one of your app's tabs. For instance, your app can have a bot that sends messages notifying the user of an important activity. When the user taps on the notification, the deep link navigates to the tab so the user can view more details about the activity.
-* Your app automates or simplifies certain user tasks, such as creating a chat or scheduling a meeting, by pre-populating the deep links with required parameters. This avoids the need for users to manually enter information.
+* Navigating the user to content within one of your app's tabs. For instance, your app can have a bot that sends messages notifying the user of an important activity. When the user taps on the notification, the deep link navigates to the tab so that the user can view more details about the activity.
+* Your app automates or simplifies certain user tasks, such as creating a chat or scheduling a meeting, by pre populating the deep links with required parameters. This avoids the need for users to manually enter information.
> [!NOTE] >
-> A deeplink launches the browser first before navigating to content and information as follows:
+> A deeplink launches the browser first before navigating to content. The behaviour of deep links on Teams entities are as follows:
> > **Tab**: > Γ£ö Directly navigates to the deeplink url.
You can create links to information and features within Teams. Examples where cr
## Deep linking to your tab
-You can create deep links to entities in Teams. Typically, this is used to create links that navigate to content and information within your tab. For example, if your tab contains a task list team members can create and share links to individual tasks. When you select the link, it navigates to your tab which focuses on the specific item. To implement this, you add a "copy link" action to each item, in whatever way best suits your UI. When the user takes this action, you call `shareDeepLink()` to display a dialog box containing a link that the user can copy to the clipboard. When you make this call, you also pass an ID for your item, which you get back in the [context](~/tabs/how-to/access-teams-context.md) when the link is followed and your tab is reloaded.
+You can create deep links to entities in Teams. This is used to create links that navigate to content and information within your tab. For example, if your tab contains a task list, team members can create and share links to individual tasks. When you select the link, it navigates to your tab which focuses on the specific item. To implement this, you add a **copy link** action to each item, in whatever way best suits your UI. When the user takes this action, you call `shareDeepLink()` to display a dialog box containing a link that the user can copy to the clipboard. When you make this call, you also pass an ID for your item, which you get back in the [context](~/tabs/how-to/access-teams-context.md) when the link is followed and your tab is reloaded.
-Alternatively, you can also generate deep links programmatically, using the format specified later in this topic. You can use these in [bot](~/bots/what-are-bots.md) and [connector](~/webhooks-and-connectors/what-are-webhooks-and-connectors.md) messages that inform users about changes to your tab, or to items within it.
+Alternatively, you can also generate deep links programmatically, using the format specified later in this topic. You can use deep links in [bot](~/bots/what-are-bots.md) and [connector](~/webhooks-and-connectors/what-are-webhooks-and-connectors.md) messages that inform users about changes to your tab, or to items within it.
> [!NOTE] > This deep link is different from the links provided by the **Copy link to tab** menu item, which just generates a deep link that points to this tab.
Alternatively, you can also generate deep links programmatically, using the form
To show a dialog box that contains a deep link to an item within your tab, call `microsoftTeams.shareDeepLink({ subEntityId: <subEntityId>, subEntityLabel: <subEntityLabel>, subEntityWebUrl: <subEntityWebUrl> })`
-Provide these fields:
+Provide the following fields:
-* `subEntityId`&emsp;A unique identifier for the item within your tab to which you are deep linking
-* `subEntityLabel`&emsp;A label for the item to use for displaying the deep link
-* `subEntityWebUrl`&emsp;An optional field with a fallback URL to use if the client does not support rendering the tab
+* `subEntityId`: A unique identifier for the item within your tab to which you are deep linking.
+* `subEntityLabel`: A label for the item to use for displaying the deep link.
+* `subEntityWebUrl`: An optional field with a fallback URL to use if the client does not support rendering the tab.
### Generating a deep link to your tab
Provide these fields:
> Personal tabs have a `personal` scope, while channel and group tabs use `team` or `group` scopes. The two tab types have a slightly different syntax since only the configurable tab has a `channel` property associated with its context object. See the [manifest](~/resources/schem) reference for more information on tab scopes. > [!NOTE]
-> Deep links work properly only if the tab was configured using the v0.4 or later library and because of that has an entity ID. Deep links to tabs without entity IDs still navigate to the tab but can not provide the sub-entity ID to the tab.
+> Deep links work properly only if the tab was configured using the v0.4 or later library and because of that has an entity ID. Deep links to tabs without entity IDs still navigate to the tab but cannot provide the sub entity ID to the tab.
Use the following format for a deep link that you can use in a bot, connector, or messaging extension card:
Use the following format for a deep link that you can use in a bot, connector, o
> [!NOTE] > If the bot sends a message containing a `TextBlock` with a deep link, then a new browser tab is opened when the user selects the link. This happens in Chrome and in the Microsoft Teams desktop app, both running on Linux.
-> If the bot sends the same deep link URL into an `Action.OpenUrl`, then the Teams tab is opened in the current browser tab when the user selects the link. No new browser tab is opened.
+> If the bot sends the same deep link URL into an `Action.OpenUrl`, then the Teams tab is opened in the current browser tab when the user selects the link. A new browser tab is not opened.
The query parameters are:
-* `appId`&emsp;The ID from your manifest; for example, "fe4a8eba-2a31-4737-8e33-e5fae6fee194"
-* `entityId`&emsp;The ID for the item in the tab, which you provided when [configuring the tab](~/tabs/how-to/create-tab-pages/configuration-page.md); for example, "tasklist123"
-* `entityWebUrl` or `subEntityWebUrl`&emsp;An optional field with a fallback URL to use if the client does not support rendering the tab; for example, "https://tasklist.example.com/123" or "https://tasklist.example.com/list123/task456"
-* `entityLabel` or `subEntityLabel`&emsp;A label for the item in your tab, to use when displaying the deep link; for example, "Task List 123" or "Task 456"
-* `context`&emsp;A JSON object containing the following fields:
- * `subEntityId`&emsp;An ID for the item _within_ the tab; for example, "task456"
- * `channelId`&emsp;The Microsoft Teams channel ID that is available from the tab [context](~/tabs/how-to/access-teams-context.md); for example, "19:cbe3683f25094106b826c9cada3afbe0@thread.skype". This property is only available in configurable tabs with a scope of "team". It is not available in static tabs, which have a scope of "personal".
+| Parameter name | Description | Example |
+|:|:--|:|
+| `appId`&emsp; | The ID from your manifest. |fe4a8eba-2a31-4737-8e33-e5fae6fee194|
+| `entityId`&emsp; | The ID for the item in the tab, which you provided when [configuring the tab](~/tabs/how-to/create-tab-pages/configuration-page.md).|Tasklist123|
+| `entityWebUrl` or `subEntityWebUrl`&emsp; | An optional field with a fallback URL to use if the client does not support rendering the tab. | https://tasklist.example.com/123 or https://tasklist.example.com/list123/task456 |
+| `entityLabel` or `subEntityLabel`&emsp; | A label for the item in your tab, to use when displaying the deep link. | Task List 123 or "Task 456 |
+| `context`&emsp; </br></br>* `subEntityId`&emsp;</br></br> * `channelId`&emsp;| A JSON object containing the following fields</br></br> * An ID for the item within the tab. </br></br> * The Microsoft Teams channel ID that is available from the tab [context](~/tabs/how-to/access-teams-context.md). |
+| `subEntityId`&emsp; | An ID for the item within the tab. |Task456 |
+| `channelId`&emsp; | The Microsoft Teams channel ID that is available from the tab [context](~/tabs/how-to/access-teams-context.md). This property is only available in configurable tabs with a scope of **team**. It is not available in static tabs, which have a scope of **personal**.| 19:cbe3683f25094106b826c9cada3afbe0@thread.skype |
Examples:
Examples:
> [!IMPORTANT] > Ensure that all query parameters are properly URI encoded. You must follow the preceeding examples using the last example:+ > ```javascript > var encodedWebUrl = encodeURI('https://tasklist.example.com/123/456&label=Task 456'); > var encodedContext = encodeURI('{"subEntityId": "task456"}');
Example: `https://teams.microsoft.com/l/chat/0/0?users=joe@contoso.com,bob@conto
The query parameters are:
-* `users`: The comma-separated list of user IDs representing the participants of the chat. The user that performs the action is always included as a participant. Currently, the User ID field supports the Azure AD UserPrincipalName, typically an email address only.
+* `users`: The comma-separated list of user IDs representing the participants of the chat. The user that performs the action is always included as a participant. Currently, the User ID field supports the Azure AD UserPrincipalName, such as an email address only.
* `topicName`: An optional field for chat's display name, in the case of a chat with 3 or more users. If this field is not specified, the chat's display name is based on the names of the participants. * `message`: An optional field for the message text that you want to insert into the current user's compose box while the chat is in a draft state.
-To use this deep link with your bot, you can specify this as the URL target in your card's button or tap action through the `openUrl` action type.
+To use this deep link with your bot, specify this as the URL target in your card's button or tap action through the `openUrl` action type.
## Generate deep links to file in channel
The following deep link format can be used in a bot, connector or messaging exte
The query parameters are:
-* `appID`: Your manifest ID fe4a8eba-2a31-4737-8e33-e5fae6fee194.
+* `appID`: Your manifest ID **fe4a8eba-2a31-4737-8e33-e5fae6fee194**.
+ * `entityID`: The item ID that you provided when [configuring the tab](~/tabs/how-to/create-tab-pages/configuration-page.md). For example, **tasklist123**. * `entityWebUrl`: An optional field with a fallback URL to use if the client does not support rendering of the tab - https://tasklist.example.com/123 or https://tasklist.example.com/list123/task456. * `entityName`: A label for the item in your tab, to use when displaying the deep link, Task List 123 or Task 456.
Example: https://teams.microsoft.com/l/entity/fe4a8eba-2a31-4737-8e33-e5fae6fee1
## Linking to the scheduling dialog
-> [!Note]
+> [!NOTE]
> This feature is currently in developer preview.
-You can create deep links to the Teams built-in scheduling dialog. This is especially useful if your app helps the user complete calendar or scheduling-related tasks.
+You can create deep links to the Teams built-in scheduling dialog. This is especially useful if your app helps the user complete calendar or scheduling related tasks.
### Generating a deep link to the scheduling dialog
The query parameters are:
> Currently, specifying the location is not supported. You must specify the UTC offset, it means time zones when generating your start and end times. To use this deep link with your bot, you can specify this as the URL target in your card's button or tap action through the `openUrl` action type.+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Prepare Your O365 Tenant https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/prepare-your-o365-tenant.md
Title: Prepare your Microsoft 365 tenant description: How to get started with Teams in Microsoft 365
+localization_priority: Normal
keywords: Configure Microsoft 365 tenant Teams uploading
platform Share To Teams https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/share-to-teams.md
Title: Create a Share-to-Teams button
+ Title: Create Share-to-Teams button
description: How to add the Share to Teams embedded button on your website
+localization_priority: Normal
keywords: Share Teams Share-to-Teams
-# Create a Share-to-Teams button for your website
+# Create Share-to-Teams button
->[!NOTE]
+Third-party websites can use the launcher script to embed Share-to-Teams buttons on their webpages. When you select, it launches the Share-to-Teams experience in a pop-up window. This allows you to share a link directly to any person or Microsoft Teams channel without switching the context. This document guides you on how to create, and embed a Share-to-Teams button for your website, craft your website preview, and extend Share-to-Teams for Education.
+
+> [!NOTE]
> * Only the desktop versions of Edge and Chrome are supported.
-> * Use of Freemium or guest accounts is not supported.
+> * Use of Freemium or guest accounts is not supported.
-Third-party websites can use the launcher script to embed Share to Teams buttons on their webpages which will launch the Share to Teams experience in a popup window when clicked. This will allow you to share a link directly to any person or Microsoft Teams channel without switching context.
+The following image displays the Share-to-Teams pop-up experience:
-![Share to Teams popup](~/assets/images/share-to-teams-popup.png)
+![Share-to-Teams popup](~/assets/images/share-to-teams-popup.png)
-## How to embed a Share to Teams button
+## Embed a Share to Teams button
-First, you'll need to add the `launcher.js` script on your webpage.
+1. Add the `launcher.js` script on your webpage.
-```html
-<script async defer src="https://teams.microsoft.com/share/launcher.js"></script>
-```
+ ```html
+ <script async defer src="https://teams.microsoft.com/share/launcher.js"></script>
+ ```
-Next, add an HTML element on your webpage with the `teams-share-button` class attribute and the link to share in the `data-href` attribute.
+1. Add a HTML element on your webpage with the `teams-share-button` class attribute and the link to share in the `data-href` attribute.
-```html
-<div
- class="teams-share-button"
- data-href="https://<link-to-be-shared>">
-</div>
-```
+ ```html
+ <div
+ class="teams-share-button"
+ data-href="https://<link-to-be-shared>">
+ </div>
+ ```
-This will add the Microsoft Teams icon to your website.
+ After completing this, the Microsoft Teams icon gets added to your website. The following image shows Share-to-Teams icon:
-![Share to Teams icon](~/assets/icons/share-to-teams-icon.png)
+ ![Share to Teams icon](~/assets/icons/share-to-teams-icon.png)
-Optionally, if you want a different icon size for the Share to Teams button, use the `data-icon-px-size` attribute.
+1. Alternatively, if you want a different icon size for the Share-to Teams button, use the `data-icon-px-size` attribute.
-```html
-<div
- class="teams-share-button"
- data-href="https://<link-to-be-shared>"
- data-icon-px-size="64">
-</div>
-```
+ ```html
+ <div
+ class="teams-share-button"
+ data-href="https://<link-to-be-shared>"
+ data-icon-px-size="64">
+ </div>
+ ```
+1. If the shared link requires user authentication, and the URL preview from your link to be shared does not render well in Teams then, you can disable the URL preview by adding the `data-preview` attribute set to `false`.
-If you know that the URL preview from your link to be shared won't render well in Teams (for example the link would require user authentication) you can disable the URL preview by adding the `data-preview` attribute set to `false`.
+ ```html
+ <div
+ class="teams-share-button"
+ data-href="https://<link-to-be-shared>"
+ data-preview="false">
+ </div>
+ ```
-```html
-<div
- class="teams-share-button"
- data-href="https://<link-to-be-shared>"
- data-preview="false">
-</div>
-```
+1. If your page dynamically renders content, you can use the the `shareToMicrosoftTeams.renderButtons()` method to force the **Share** button to render at the appropriate place in the pipeline.
-If your page dynamically renders content, you can use the the `shareToMicrosoftTeams.renderButtons()` method to force the **Share** button to render at the appropriate place in the pipeline.
+## Craft your website preview
-## Crafting your website preview
+When your website is shared to Teams, the card that is inserted into the selected channel contains a preview of your website. You can control the behavior of this preview by ensuring the appropriate meta-data is added to the website being shared, such as the `data-href` URL.
-When your website is shared to Teams, the card that is inserted into the selected channel will contain a preview of your website. You can control the behavior of this preview by ensuring the appropriate meta-data is added to the website being shared (the `data-href` URL). The table below outlines the necessary tags. You can use either the html default versions, or the Open Graph version.
+**To display the preview**
-In order for the preview to be displayed you must:
+* You must include either a **Thumbnail image**, or both a **Title** and **Description**. For best results, include all three.
+* The shared URL does not require authentication. If it requires authentication, you can share it, but the preview is not created.
-* Include either a Thumbnail image, or both a Title and Description (for best results, include all three).
-* The URL being shared cannot require authentication. If it does you can still share it, but the preview will not be created.
+The following table outlines the necessary tags:
|Value|Meta tag| Open Graph| |-|-|-| |Title|`<meta name="title" content="Example Page Title">`|`<meta property="og:title" content="Example Page Title">`| |Description|`<meta name="description" content="Example Page Description">`|`<meta property="og:description" content="Example Page Description">`|
-|Thumbnail Image| none |`<meta property="og:image" content="http://example.com/image.jpg">`|
+|Thumbnail Image| none. |`<meta property="og:image" content="http://example.com/image.jpg">`|
+
+You can use either the html default versions, or the Open Graph version.
## Share to Teams for Education
-For teachers using the Share to Teams button you'll be given an additional option to `Create an Assignment`. This enables you to quickly create an assignment in the chosen Team based on the shared link.
+For teachers using the Share to Teams button, there is an additional option to `Create an Assignment`. This enables you to quickly create an assignment in the chosen Team, based on the shared link. The following image displays Share-to-Teams for education:
-![Share to Teams popup](~/assets/images/share-to-teams-popup-edu.png)
+![Share to Teams popup education](~/assets/images/share-to-teams-popup-edu.png)
## Full launcher.js definition
For teachers using the Share to Teams button you'll be given an additional optio
| href | `data-href` | string | n/a | The href of the content to share. | | preview | `data-preview` | boolean (as a string) | `true` | Whether or not to show a preview of the content to share. | | iconPxSize | `data-icon-px-size` | number (as a string) | `32` | The size in pixels of the Share-to-Teams button to render. |
-| msgText | `data-msg-text` | string | n/a | Default Text to be inserted before the link in the message compose box (200 character limit) |
-| assignInstr | `data-assign-instr` | string | n/a | Default Text to be inserted in the assignments "Instructions" field (200 character limit) |
-| assignTitle | `data-assign-title` | string | n/a | Default Text to be inserted in the assignments "Title" field (50 character limit) |
+| msgText | `data-msg-text` | string | n/a | Default Text to be inserted before the link in the message compose box. Maximum number of characters is 200. |
+| assignInstr | `data-assign-instr` | string | n/a | Default Text to be inserted in the assignments "Instructions" field. Maximum number of characters is 200. |
+| assignTitle | `data-assign-title` | string | n/a | Default Text to be inserted in the assignments "Title" field. Maximum number of characters is 50. |
### Methods
For teachers using the Share to Teams button you'll be given an additional optio
`options` (optional): `{ elements?: HTMLElement[] }`
-Renders all share buttons currently on the page. If an optional `options` object is supplied with a list of elements, those elements will be rendered into share buttons.
+Currently, all share buttons are rendered on the page. If an optional `options` object is supplied with a list of elements, those elements are rendered into share buttons.
-### Setting default form values
+### Set default form values
-Optionally, you can choose to set default values for the following fields on the Share to Teams form:
+You can select to set default values for the following fields on the Share to Teams form:
-* Say something about this (`msgText`)
-* Assignment Instructions (`assignInstr`)
-* Assignment Title (`assignTitle`)
+* Say something about this: `msgText`
+* Assignment Instructions: `assignInstr`
+* Assignment Title: `assignTitle`
-#### Example: Default form values
+#### Example
+
+ Default form values are given in the following example:
```html <span
Optionally, you can choose to set default values for the following fields on the
data-assign-instr="Default Assignment Instructions" ></span> ```+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Test App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/test-app-overview.md
Title: Test your app overview description: Describes the process to test your Teams custom app in Microsoft 365
+localization_priority: Normal
keywords: Configure Microsoft 365 tenant Teams uploading test app
platform Test Data https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/build-and-test/test-data.md
Title: Add test data to your Microsoft 365 test tenant description: Set up your Office 365 developer program subscription for successful testing of Microsoft Teams Apps
+localization_priority: Normal
keywords: testing apps developer program teams Last updated 11/01/2019
platform Capabilities Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/capabilities-overview.md
Title: Understand app capabilities
description: Teams app capabilities explained
+localization_priority: Normal
Last updated 09/22/2020
platform Add Saas Offer https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/add-saas-offer.md
Title: Create a SaaS offer for your Teams app
description: Describes the necessary steps to make a SaaS offering part of a third-party Teams App experience keywords: teams app SaaS offer partner center marketplace software service
+localization_priority: Normal
platform Apps Upload https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/apps-upload.md
Title: Upload your custom app description: Describes how to upload your app in Microsoft Teams
+localization_priority: Normal
keywords: teams apps upload
platform Application Certification https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/post-publish/application-certification.md
Title: Microsoft 365 App Certification description: Describes the Microsoft 365 App Compliance program from store apps
+localization_priority: Normal
keywords: teams compliance appsource store app certification partner center Last updated 05/06/2019
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/post-publish/overview.md
Title: Maintaining and supporting your published app description: What to do after you have published your app-+
+localization_priority: Normal
keywords: teams post publish update certification app update manifest
platform App Manifest Checklist https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/prepare/app-manifest-checklist.md
Title: App manifest checklist description: The checklist for your app manifest for publishing your Microsoft Teams app to AppSource
+localization_priority: Normal
keywords: teams publish store office publishing checklist # App manifest checklist
platform Detail Page Checklist https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/prepare/detail-page-checklist.md
Title: Build a great app details page description: Describes requirements for app details page
+localization_priority: Normal
keywords: teams publish store office publishing policy AppSource content Metadata screenshot logo description app name icons short description
platform Frequently Failed Cases https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/prepare/frequently-failed-cases.md
Title: App submission tips and frequently failed cases description: describes tips for a successful Teams store submission and common reasons submissions fail
+localization_priority: Normal
keywords: app submission tips frequently failed cases validation guidelines
platform Submission Checklist https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
Title: Store submission checklist description: The checklist to use before publishing your Microsoft Teams app to AppSource
+localization_priority: Normal
keywords: teams publish store office publishing checklist submission Teams apps appsource validation # Prepare for AppSource submission
platform Publish https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/publish.md
Title: Understanding the Teams store submission process description: Describes the approval submission process for getting your app published to the Microsoft Teams app store
+localization_priority: Normal
keywords: teams publish store office publishing publish AppSource partner center account verification apps account not publish eligible app submission
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/overview.md
Title: Distribute your app description: Describes the three options for distributing your app`
+localization_priority: Normal
keywords: teams publish store office distribute AppSource sideload upload app # Distribute your Microsoft Teams app
platform Design Teams App Basic Ui Components https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
Title: Design your app with basic Fluent UI components
description: Learn about the primitive UI components commonly used to build Microsoft Teams apps and get the Microsoft Teams UI Kit.
+localization_priority: Normal
# Designing your Microsoft Teams app with basic Fluent UI components
platform Design Teams App Fundamentals https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/design-teams-app-fundamentals.md
Title: Design your app - Understanding the fundamentals description: Learn about the basics of designing your Microsoft Teams app, including layout, color scheme, and more.
+localization_priority: Normal
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-avatars.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-avatars.png" alt-text="Conceptual image for Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-color.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-color.png" alt-text="Concept image for Microsoft Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-iconography.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-iconography.png" alt-text="Conceptual illustration for Microsoft Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-typography.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-typography.png" alt-text="Conceptual figure for Microsoft Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-copy-and-content.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-copy-and-content.png" alt-text="Conceptual picture for Microsoft Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
Quickly learn about the fundamentals of Teams app design. You can find comprehen
:::column-end::: :::column span="1":::
- :::image type="content" source="../../assets/images/design-guidelines/teams-branding.png" alt-text="Conceptual image for Microsoft Teams UI Kit." border="false":::
+ :::image type="content" source="../../assets/images/design-guidelines/teams-branding.png" alt-text="Conceptual form for Microsoft Teams UI Kit." border="false":::
:::column-end::: :::row-end:::
platform Design Teams App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/design-teams-app-overview.md
Title: Designing your custom app description: Learn how to design Microsoft Teams apps. Resources include the Microsoft Teams UI Kit, best practices, examples, and more.
+localization_priority: Normal
platform Design Teams App Ui Templates https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/design-teams-app-ui-templates.md
Title: Designing your app with UI templates
description: Design your app faster with standardized UI components, layouts, and patterns commonly seen across Microsoft Teams.
+localization_priority: Normal
# Designing your Microsoft Teams app with UI templates
platform Map Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/map-use-cases.md
Title: Map your use cases to Teams app capabilities
description: Choose the correct app scope
+localization_priority: Normal
platform Personal Apps https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/personal-apps.md
Title: Designing your personal app
description: Learn how to design a Teams personal app and get the Microsoft Teams UI Kit.
+localization_priority: Normal
# Designing your personal app for Microsoft Teams
With responsive sizing, tabs on the right may become truncated or out of view.
Like a standard web app, tab navigation should progress in an order that helps make sense of your appΓÇÖs primary features. ### Tab hierarchy
Like a standard web app, tab navigation should progress in an order that helps m
Your tabs should categorize your appΓÇÖs primary features and content. With responsive sizing, content on the right may become truncated or out of view. #### Don't: Include different levels of hierarchy Your content should progress in a logical order that helps users make sense of it. If you have two tabs that are closely related, consider combining them into one tab. ### First-run experience
Your content should progress in a logical order that helps users make sense of i
There should be at least a welcome screen the first time you use a personal app. For bots, describe what your bot can do and provide quick actions, such as a sign-in button. #### Don't: Start with a blank screen Users might be confused if nothing displays the first time they run your app. ### Personalized content
Users might be confused if nothing displays the first time they run your app.
Whether it's a personal tab or bot, display content related to only a user's activity in your app. #### DonΓÇÖt: Show unrelated or overly broad content In personal contexts, donΓÇÖt display content for teams a user isn't part of. Personal bot content should focus on the individualΓÇönot a group. ### Complex app features
In personal contexts, donΓÇÖt display content for teams a user isn't part of. Pe
Your app should focus on core tasks in Teams, but you can still view the full, standalone app in a browser. #### DonΓÇÖt: Include your entire app Unless you created your app specifically for Teams, you probably have features that donΓÇÖt make sense in a collaboration tool. ## Manage a personal tab
platform Understand Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/understand-use-cases.md
Title: Understand your use cases
description: Understand your use cases
+localization_priority: Normal
platform Device Capabilities Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/device-capabilities-overview.md
Title: Overview of device capabilities
+ Title: Device capabilities - Overview
+ description: Overview of native device capabilities.
-keywords: camera image media microphone mic qr code qrcode bar code barcode scan scanner location map capabilities native device permissions
+
+keywords: camera image media microphone mic qr code qrcode bar code barcode scan scanner location map capabilities native device permissions
+localization_priority: Normal
-# Device capabilities
+# Device capabilities - Overview
Microsoft Teams platform is continuously enhancing developer capabilities aligning with built-in first-party experiences. The enhanced Teams platform allows partners to integrate device capabilities, such as camera, QR or barcode scanner, photo gallery, microphone, and location with their web apps. This integration reduces the barrier to app development, speeds-up development-cycle, and creates new scenarios or use-cases for the developer community.
platform Location Capability https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/location-capability.md
Title: Integrate location capabilities+ description: How to use Teams JavaScript client SDK to leverage location capabilities keywords: location map capabilities native device permissions
+localization_priority: Normal
platform Mobile Camera Image Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/mobile-camera-image-permissions.md
Title: Integrate media capabilities + description: How to use Teams JavaScript client SDK to enable media capabilities keywords: camera image microphone capabilities native device permissions media
+localization_priority: Normal
platform Native Device Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/native-device-permissions.md
Title: Request device permissions for your Microsoft Teams app keywords: teams apps capabilities permissions description: How to update your app manifest in order to request access to native features that usually require user consent
+localization_priority: Normal
platform Qr Barcode Scanner Capability https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/qr-barcode-scanner-capability.md
Title: Integrate QR or barcode scanner capability+ description: How to use Teams JavaScript client SDK to leverage QR or barcode scanner capability keywords: camera media qr code qrcode bar code barcode scanner scan capabilities native device permissions
+localization_priority: Normal
-+ # Integrate QR or barcode scanner capability
platform Extensibility Points https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/extensibility-points.md
Title: Entry points for Teams apps
description: Describes where people can discover and use your app in Teams.
+localization_priority: Normal
platform Feedback https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/feedback.md
Title: Microsoft Teams developer support and feedback description: The Microsoft Teams product team responds to the developer community across various feedback and support channels.
+localization_priority: Normal
keywords: teams feedback developer questions issues contact support request bugs contributions community discussions
platform Article Template https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/includes/article-template.md
Title: https://review.docs.microsoft.com/help/contribute/metadata-attributes?branch=master
-description:
+description:
+localization_priority: Normal
platform Azure Bot Channels Registration https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/includes/bots/azure-bot-channels-registration.md
+
+ Title: Azure bot channel registration
+description: describes Azure bot channels for registration
+localization_priority: Normal
++++ 1. In the [Azure portal](https://ms.portal.azure.com/#home), under Azure services, select **Create a resource**. 1. In the search box enter "bot". And in the drop-down list, select **Bot Channels Registration**. 1. Select the **Create** button.
platform Teams Bot Samples https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/includes/bots/teams-bot-samples.md
+
+ Title: Teams bot samples
+description: describes Teams samples for Bot Framework
+localization_priority: Normal
++++
+## Teams bot samples
+ ## Code sample For complete working samples demonstrating the functionality, see the following Teams samples for Bot Framework:
platform Messaging Extension Design https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/design/messaging-extension-design.md
Title: Designing your messaging extension
description: Learn how to design a Teams messaging extension and get the Microsoft Teams UI Kit. keywords: teams design guidelines reference messaging extensions tips best practice
+localization_priority: Normal
platform Create Task Module https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
Title: Create and send the task module description: How to handle the initial invoke action and respond with a task module from an action messaging extension command
+localization_priority: Normal
platform Define Action Command https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/action-commands/define-action-command.md
Title: Define messaging extension action commands description: An overview of messaging extension action commands
+localization_priority: Normal
platform Respond To Task Module Submit https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md
Title: Respond to the task module submit action description: Describes how to respond to the task module submit action from a messaging extension action command
+localization_priority: Normal
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/add-authentication.md
Title: Add authentication to your messaging extension description: How to add authentication to a messaging extension
+localization_priority: Normal
platform Add Configuration Page https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/add-configuration-page.md
Title: Add a configuration page to your messaging extension description: How to add a configuration page to a messaging extension
+localization_priority: Normal
platform Enable SSO Auth Me https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/enable-SSO-auth-me.md
Title: SSO support for your messaging extensions description: How to enable SSO support for your messaging extensions
+localization_priority: Normal
platform Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/how-to/link-unfurling.md
Title: Link unfurling description: How to perform link unfurling with messaging extension in a Microsoft Teams app.
+localization_priority: Normal
platform What Are Messaging Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/messaging-extensions/what-are-messaging-extensions.md
Title: Messaging extensions description: An overview of messaging extensions on the Microsoft Teams platform
+localization_priority: Normal
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/overview.md
Title: Build apps for the Microsoft Teams platform
description: Get an overview of how developers can extend Microsoft Teams features with custom apps.
+localization_priority: Normal
Last updated 09/22/2020
Some apps are simple (send notifications), while others are complex (manage pati
### Bots
-**Turn words into actions**: Conversations often result in the need to do something (generate an order, review my code, check ticket status, etc.). A [bot](bots/what-are-bots.md) can kick off these kinds of workflows right inside Teams.
+**Turn words into actions**: Conversations often result in the need to do something (generate an order, review my code, check ticket status, and so on). A [bot](bots/what-are-bots.md) can kick off these kinds of workflows right inside Teams.
:::image type="content" source="assets/images/overview-bots.png" alt-text="Conceptual representation of what bots look like in the Teams client." border="false":::
platform Auth Bot AAD https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-authentication/auth-bot-AAD.md
Title: Authentication for bots using Azure Active Directory description: Describes Azure AD authentication in Teams and how to use it in your bots keywords: teams authentication bots AAD
+localization_priority: Normal
Last updated 03/01/2018
platform Auth Flow Bot https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-authentication/auth-flow-bot.md
Title: Authentication flow for bots description: Describes authentication flow in bots keywords: teams authentication flow bots
+localization_priority: Normal
Last updated 03/01/2018
platform Auth Oauth Card https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-authentication/auth-oauth-card.md
Title: Using Azure Bot Service for Authentication in Teams description: Describes the Azure Bot Service OAuthCard and how it is used for authentication
+localization_priority: Normal
keywords: teams authentication OAuthCard OAuth card Azure Bot Service # Using Azure Bot Service for Authentication in Teams
platform Bots Conv Channel https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-channel.md
Title: Channel and Group chat conversations with bots description: Describes the end-to-end scenario of having a conversation with a bot in a channel in Microsoft Teams keywords: teams scenarios channels conversation bot
+localization_priority: Normal
Last updated 06/25/2019
platform Bots Conv Personal https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-personal.md
Title: 1-on-1 conversations with bots description: Describes the end-to-end scenario of having a 1-on-1 conversation with a bot in Microsoft Teams keywords: teams scenarios 1on1 1to1 conversation bot
+localization_priority: Normal
Last updated 05/20/2019
platform Bots Conv Proactive https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-proactive.md
Title: Proactive messages description: Describes bots can start a conversation in Microsoft Teams
+localization_priority: Normal
keywords: teams scenarios proactive messaging conversation bot # Proactive messaging for bots
platform Bots Conversations https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bot-conversations/bots-conversations.md
Title: Send and receive messages with a bot description: Describes how to send and receive messages with bots in Microsoft Teams
+localization_priority: Normal
keywords: teams bots messages Last updated 05/20/2019
Your bot can send rich text, pictures, and cards. Users can send rich text and p
| Emojis | Γ£û | Γ£ö | Teams currently supports emojis via UTF-16 (such as U+1F600 for grinning face) | |
-For more information on the types of bot interaction supported by the Bot Framework (which bots in teams are based on), see the Bot Framework documentation on [conversation flow](/azure/bot-service/dotnet/bot-builder-dotnet-manage-conversation-flow?view=azure-bot-service-3.0) and related concepts in the documentation for [the Bot Builder SDK for .NET](/azure/bot-service/dotnet/bot-builder-dotnet-overview?view=azure-bot-service-3.0) and [the Bot Builder SDK for Node.js](/azure/bot-service/nodejs/bot-builder-nodejs-overview?view=azure-bot-service-3.0).
+For more information on the types of bot interaction supported by the Bot Framework (which bots in teams are based on), see the Bot Framework documentation on [conversation flow](/azure/bot-service/dotnet/bot-builder-dotnet-manage-conversation-flow?view=azure-bot-service-3.0&preserve-view=true) and related concepts in the documentation for [the Bot Builder SDK for .NET](/azure/bot-service/dotnet/bot-builder-dotnet-overview?view=azure-bot-service-3.0&preserve-view=true) and [the Bot Builder SDK for Node.js](/azure/bot-service/nodejs/bot-builder-nodejs-overview?view=azure-bot-service-3.0&preserve-view=true).
## Message formatting
-You can set the optional [`TextFormat`](/azure/bot-service/dotnet/bot-builder-dotnet-create-messages?view=azure-bot-service-3.0#customizing-a-message) property of a `message` to control how your message's text content is rendered. See [Message formatting](~/resources/bot-v3/bots-message-format.md) for a detailed description of supported formatting in bot messages.
-You can set the optional [`TextFormat`](/azure/bot-service/dotnet/bot-builder-dotnet-create-messages?view=azure-bot-service-3.0#customizing-a-message) property to control how your message's text content is rendered.
+You can set the optional [`TextFormat`](/azure/bot-service/dotnet/bot-builder-dotnet-create-messages?view=azure-bot-service-3.0#customizing-a-message&preserve-view=true) property of a `message` to control how your message's text content is rendered. See [Message formatting](~/resources/bot-v3/bots-message-format.md) for a detailed description of supported formatting in bot messages.
+You can set the optional [`TextFormat`](/azure/bot-service/dotnet/bot-builder-dotnet-create-messages?view=azure-bot-service-3.0#customizing-a-message&preserve-view=true) property to control how your message's text content is rendered.
For detailed information on how Teams supports text formatting in teams see [Text formatting in bot messages](~/resources/bot-v3/bots-text-formats.md).
For information on formatting cards in messages, see [Card formatting](~/task-mo
## Picture messages
-Pictures are sent by adding attachments to a message. You can find more information on attachments in the [Bot Framework documentation](/azure/bot-service/dotnet/bot-builder-dotnet-add-media-attachments?view=azure-bot-service-3.0).
+Pictures are sent by adding attachments to a message. You can find more information on attachments in the [Bot Framework documentation](/azure/bot-service/dotnet/bot-builder-dotnet-add-media-attachments?view=azure-bot-service-3.0&preserve-view=true).
Pictures can be at most 1024×1024 and 1 MB in PNG, JPEG, or GIF format; animated GIF is not supported.
Depending on which scopes are declared, your bot can receive messages in the fol
* **personal chat** Users can interact in a private conversation with a bot by simply selecting the added bot in the chat history, or typing its name or app ID in the To: box on a new chat. * **Channels** A bot can be mentioned ("@_botname_") in a channel if it has been added to the team. Note that additional replies to a bot in a channel require mentioning the bot. It will not respond to replies where it is not mentioned.
-For incoming messages, your bot receives an [`Activity`](/azure/bot-service/rest-api/bot-framework-rest-connector-activities?view=azure-bot-service-3.0) object of type `messageType: message`. Although the `Activity` object can contain other types of information, like [channel updates](~/resources/bot-v3/bots-notifications.md#channel-updates) sent to your bot, the `message` type represents communication between bot and user.
+For incoming messages, your bot receives an [`Activity`](/azure/bot-service/rest-api/bot-framework-rest-connector-activities?view=azure-bot-service-3.0&preserve-view=true) object of type `messageType: message`. Although the `Activity` object can contain other types of information, like [channel updates](~/resources/bot-v3/bots-notifications.md#channel-updates) sent to your bot, the `message` type represents communication between bot and user.
Your bot receives a payload that contains the user message `Text` as well as other information about the user, the source of the message, and Teams information. Of note:
string tenantId = channelData.Tenant.Id;
## Sending replies to messages
-To reply to an existing message, call [`ReplyToActivity`](/dotnet/api/microsoft.bot.connector.conversationsextensions.replytoactivityasync?view=botbuilder-dotnet-3.0#Microsoft_Bot_Connector_ConversationsExtensions_ReplyToActivityAsync_Microsoft_Bot_Connector_IConversations_System_String_System_String_Microsoft_Bot_Connector_Activity_System_Threading_CancellationToken_) in .NET or [`session.send`](/javascript/api/botbuilder-core/TurnContext?view=botbuilder-ts-latest&viewFallbackFrom=botbuilder-ts-3.0#sendactivities) in Node.js. The Bot Builder SDK handles all the details.
+To reply to an existing message, call [`ReplyToActivity`](/dotnet/api/microsoft.bot.connector.conversationsextensions.replytoactivityasync?view=botbuilder-dotnet-3.0#Microsoft_Bot_Connector_ConversationsExtensions_ReplyToActivityAsync_Microsoft_Bot_Connector_IConversations_System_String_System_String_Microsoft_Bot_Connector_Activity_System_Threading_CancellationToken_&preserve-view=true) in .NET or [`session.send`](/javascript/api/botbuilder-core/TurnContext?view=botbuilder-ts-latest&viewFallbackFrom=botbuilder-ts-3.0#sendactivities&preserve-view=true) in Node.js. The Bot Builder SDK handles all the details.
-If you choose to use the REST API, you can also call the [`/v3/conversations/{conversationId}/activities/{activityId}`](/azure/bot-service/rest-api/bot-framework-rest-connector-send-and-receive-messages?view=azure-bot-service-3.0) endpoint.
+If you choose to use the REST API, you can also call the [`/v3/conversations/{conversationId}/activities/{activityId}`](/azure/bot-service/rest-api/bot-framework-rest-connector-send-and-receive-messages?view=azure-bot-service-3.0&preserve-view=true) endpoint.
The message content itself can contain simple text or some of the Bot Framework supplied [cards and card actions](~/task-modules-and-cards/cards/cards-actions.md).
platform Bots Cards https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-cards.md
Title: Using cards in bots
description: Describes cards and how they are used in bot messages keywords: bots cards messaging
+localization_priority: Normal
Last updated 03/29/2018 # Cards in bot conversations
platform Bots Context https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-context.md
Title: Get context for your Microsoft Teams bot
description: Describes how to get context for bots in Microsoft Teams keywords: teams bots context
+localization_priority: Normal
Last updated 05/20/2019 # Get context for your Microsoft Teams bot
platform Bots Create https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-create.md
Title: Create a bot
description: Describes how to create bots in Microsoft Teams keywords: teams bots creation
+localization_priority: Normal
Last updated 12/07/2018 # Create a bot
Last updated 12/07/2018
All bots created using the Microsoft Bot Framework are configured and ready to work in Microsoft Teams.
-See the [Bot Framework Documentation](/azure/bot-service/?view=azure-bot-service-3.0) for general information on bots.
+See the [Bot Framework Documentation](/azure/bot-service/?view=azure-bot-service-3.0&preserve-view=true) for general information on bots.
## Create a bot for Microsoft Teams
platform Bots Files https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-files.md
Title: Sending and receiving files from a bot
description: Describes how to send and receive files from a bot keywords: teams bots files send receive
+localization_priority: Normal
Last updated 05/20/2019 # Send and receive files through your bot
platform Bots Menus https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-menus.md
Title: Add a bot menu
description: Describes how to create menus for bots in Microsoft Teams keywords: teams bots menus creation
+localization_priority: Normal
Last updated 05/20/2019 # Add a bot menu in Microsoft Teams
platform Bots Message Format https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-message-format.md
Title: Bot message format
description: Describes the details of formatting for bot messages keywords: teams scenarios channels conversation bot message
+localization_priority: Normal
Last updated 05/20/2019 # Message formatting for bots
platform Bots Notification Only https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-notification-only.md
Title: Notification-only bots
description: Describes what notification-only bots are in Microsoft Teams keywords: teams bots notification
+localization_priority: Normal
Last updated 01/29/2020 # Notification-only bots in Microsoft Teams
platform Bots Notifications https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-notifications.md
description: Describes how to handle events in bots for Microsoft Teams
keywords: teams bots events Last updated 05/20/2019
+localization_priority: Normal
platform Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-overview.md
Title: Add bots to Microsoft Teams apps
description: Describes how to get started developing bots in Microsoft Teams keywords: teams bots development
+localization_priority: Normal
Last updated 05/20/2018 # Add bots to Microsoft Teams apps
platform Bots Test https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-test.md
Title: Test and debug your bot
description: Describes how to test bots in Microsoft Teams keywords: teams bots testing
+localization_priority: Normal
Last updated 03/20/2019 # Test and debug your Microsoft Teams bot
platform Bots Text Formats https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-text-formats.md
Title: Supported text formatting in conversations
description: Describes text formatting support in bot conversations keywords: bots conversations messaging
+localization_priority: Normal
Last updated 03/29/2018 # Formatting bot messages
platform Bots With Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/bot-v3/bots-with-tabs.md
Title: Combine bots with tabs
description: Describes how to use tabs and bots together keywords: teams bots tabs development
+localization_priority: Normal
Last updated 03/15/2018 # Combine bots with tabs
platform Create Messaging Extension Using Appstudio https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/create-messaging-extension-using-appstudio.md
Title: Create a messaging extension using App Studio
description: Learn how to create a Microsoft Teams messaging extension using App Studio.
+localization_priority: Normal
# Create a messaging extension using App Studio
platform Developer Preview Features https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/dev-preview/developer-preview-features.md
Title: Features in the Public Developer Preview description: Details the features in the Microsoft Teams Public Developer Preview
+localization_priority: Normal
keywords: teams preview developer features
platform Developer Preview Intro https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/dev-preview/developer-preview-intro.md
Title: Developer Preview description: Describes the features in the Public Developer Preview of Microsoft Teams
+localization_priority: Normal
keywords: teams preview developer features # Public developer preview for Microsoft Teams
platform Media Formats https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/media-formats.md
Title: Supported media formats for bots description: Bots on Microsoft Teams supports only the following media formats for audio and video content.
+localization_priority: Normal
keywords: teams bots media formats # Supported media formats for bots
platform Create Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/messaging-extension-v3/create-extensions.md
Title: Initiate actions with messaging extensions description: Create Action-based messaging extensions to allow users to trigger external services
+localization_priority: Normal
keywords: teams messaging extensions messaging extensions search
platform Messaging Extensions Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/messaging-extension-v3/messaging-extensions-overview.md
Title: Develop messaging extensions description: Describes how to get started with messaging extensions in Microsoft Teams
+localization_priority: Normal
keywords: teams messaging extensions messaging extensions # Develop messaging extensions for Microsoft Teams
platform Search Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/messaging-extension-v3/search-extensions.md
Title: Search with messaging extensions
description: Describes how to develop search based messaging extensions keywords: teams messaging extensions messaging extensions search
+localization_priority: Normal
Last updated 07/20/2019 # Search with messaging extensions
platform Moodleinstructions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/moodleInstructions.md
Title: Installing the Moodle integration with Microsoft Teams
+ Title: Install Moodle LMS
description: How to install and configure the Moodle integration app for Microsoft Teams keywords: Teams Moodle app integration plugin
+localization_priority: Normal
-# Installing the Moodle integration with Microsoft Teams
+# Install Moodle LMS
-[Moodle](https://moodle.org/), a popular open-source Learning Management System (LMS), is now integrated with Microsoft Teams. This integration helps educators and teachers collaborate around Moodle courses, ask questions about grades and assignments, and stay updated with notifications directly within Teams.
+Moodle is a popular open-source Learning Management System (LMS). It is now integrated with Microsoft Teams. This integration helps educators and teachers to collaborate around Moodle courses, ask questions about grades and assignments, and stay updated with notifications directly within Teams.
-To help IT admins easily set this integration up, we have updated our open-source Microsoft 365 Moodle Plugin with the following capabilities:
+To help IT admins easily set-up this integration, open-source Microsoft 365 Moodle Plugin is updated with the following capabilities:
* Auto-registration of your Moodle server with [Azure Active Directory](https://azure.microsoft.com/services/active-directory/) (Azure AD). * One-click deployment of your Moodle Assistant bot to Azure. * Auto-provisioning of teams and auto-synchronization of team enrollments for all or select Moodle courses. * Auto-installation of the Moodle tab and the Moodle assistant bot into each synchronized team.
-To learn more about the functionality this integration provides, please *see* [Microsoft Teams and Moodle](https://education.microsoft.com/resource/3dffb3a8).
+To learn more about the functionality this integration provides, see [Microsoft Teams and Moodle](https://education.microsoft.com/resource/3dffb3a8).
## Prerequisites
-In order to install and configure this application you'll need:
+Following are the prerequisites to install and configure the Moodle application:
1. Moodle administrator credentials.
In order to install and configure this application you'll need:
1. An Azure subscription where you can create new resources.
-## Step 1: Install the Microsoft 365 Moodle Plugins
+**To install and configure the Moodle application**
-The Moodle integration in Microsoft Teams is powered by the open source [Microsoft 365 Moodle plugin set](https://github.com/Microsoft/o365-moodle). To install the plugin in your Moodle server you need to have the following installed:
+Perform the following steps to install and configure the Moodle application:
+
+## 1. Install the Microsoft 365 Moodle Plugins
+
+The Moodle integration in Microsoft Teams is powered by the open source [Microsoft 365 Moodle plugin set](https://github.com/Microsoft/o365-moodle). To install the plugin in your Moodle server you must have the following applications installed:
1. A [current stable version of Moodle](https://download.moodle.org/releases/latest/). 1. The Moodle [OpenID Connect](https://moodle.org/plugins/auth_oidc) and the [Microsoft 365 Integration](https://moodle.org/plugins/local_o365) plugins downloaded and saved to your local computer.
-> [!NOTE]
-> Installing the OpenID Connect and Microsoft 365 Integration plugins are required for the Teams integration. Additionally the [Microsoft 365 Teams Theme](https://moodle.org/plugins/theme_boost_o365teams) plugin is highly recommended.
+ > [!NOTE]
+ > Installing the OpenID Connect and Microsoft 365 Integration plugins are required for the Teams integration. Additionally, the [Microsoft 365 Teams Theme](https://moodle.org/plugins/theme_boost_o365teams) plugin is highly recommended.
-3. Login to your Moodle server as an administrator and select **Site administration** from the [Settings block](https://docs.moodle.org/22/en/Settings_block) located in the left navigation panel.
+1. Sign in to your Moodle server as an administrator and select **Site administration** from the [Settings block](https://docs.moodle.org/22/en/Settings_block) located in the left navigation panel.
-1. Select the **Plugins** tab, and then choose **Install plugins**.
+1. Select the **Plugins** tab, and then select **Install plugins**.
-1. Under the **Install plugin from ZIP file** section select the **Choose a file** button.
+1. From the **Install plugin from ZIP file** section, select **Choose a file** button.
-1. Select the **Upload a file** options from the left navigation, browse for the file you downloaded above, and choose **Upload this file**.
+1. Select **Upload a file** option from the left navigation, browse for the file that you downloaded, and select **Upload this file**.
-1. Select the **Site administration** option from the left navigation panel to return to your admin dashboard. Scroll down to the **Local plugins** and select the **Microsoft 365 Integration** link. **Keep this configuration page open in a separate browser tab throughout the installation process**.
-
-You can find more information on how to install Moodle plugins in the [Moodle documentation](https://docs.moodle.org/34/en/Installing_plugins).
+1. Select the **Site administration** from the left navigation panel to return to your admin dashboard. Scroll down to the **Local plugins** and select the **Microsoft 365 Integration** link.
> [!IMPORTANT] >
-> * Keep your Microsoft 365 Moodle Plugin configuration page open in a separate browser tab ΓÇö you'll be returning to this set of pages throughout the process. <br/><br/>
->* If you don't have an existing Moodle site, you can check out Moodle on Azure [repo](https://github.com/azure/moodle) where you can quickly deploy a Moodle instance and customize it to your needs.
+> * Keep your Microsoft 365 Moodle Plugin configuration page open in a separate browser tab as you have to return to this set of pages throughout the process. <br/><br/>
+> * If you do not have an existing Moodle site, you can check out Moodle on Azure [repo](https://github.com/azure/moodle) where you can quickly deploy a Moodle instance and customize it to your needs.
-## Step 2: Configure the connection between the Microsoft 365 plugin and Azure Active Directory (Azure AD)
+## 2. Configure the connection between the Microsoft 365 plugin and Azure Active Directory (Azure AD)
-Next, you'll need to register Moodle as an application in your Azure AD. We've provided a PowerShell script to help you complete this process. The PowerShell script provisions a new Azure AD application for your Microsoft 365 tenant, which will be used by the Microsoft 365 Moodle Plugin. The script will provision the app for your Microsoft 365 tenant, set up the required reply URLs and permissions for the provisioned app, and return the `AppID` and `Key`. You can use the generated `AppID` and `Key` in your Microsoft 365 Moodle Plugin setup page to configure your Moodle server site with Azure AD.
+You must register Moodle as an application in your Azure AD. Use PowerShell script to complete this process. The PowerShell script provisions a new Azure AD application for your Microsoft 365 tenant, which is used by the Microsoft 365 Moodle Plugin. The script provisions the app for your Microsoft 365 tenant, set up the required reply URLs and permissions for the provisioned app, and return the `AppID` and `Key`. You can use the generated `AppID` and `Key` in your Microsoft 365 Moodle Plugin setup page to configure your Moodle server site with Azure AD.
->[!IMPORTANT]
-> The PowerShell script is not updated with the latest configuration items, so you'll have to complete the configuration manually following the steps outlined in the Moodle [3.8.0.4 and 3.9.1](https://docs.moodle.org/39/en/Office365#3.8.0.4_and_3.9.1_release) and [3.8.0.5 and 3.9.2](https://docs.moodle.org/39/en/Office365#3.8.0.5_and_3.9.2_release) release pages. </br></br>
-> To view the manual steps that the PowerShell script is automating in detail , *see* [Register your Moodle instance as an Application](https://docs.moodle.org/34/en/Office365#Register_your_Moodle_instance_as_an_Application).
+> [!IMPORTANT]
+> * The PowerShell script is not updated with the latest configuration items, so you must complete the configuration manually following the steps outlined in the Moodle [3.8.0.4 and 3.9.1](https://docs.moodle.org/39/en/Office365#3.8.0.4_and_3.9.1_release) and [3.8.0.5 and 3.9.2](https://docs.moodle.org/39/en/Office365#3.8.0.5_and_3.9.2_release) release pages. </br></br>
+> * To view the manual steps that the PowerShell script is automating in detail, see [Register your Moodle instance as an Application](https://docs.moodle.org/34/en/Office365#Register_your_Moodle_instance_as_an_Application).
### The Moodle tab for Microsoft Teams information flow <img width="530px" src="../assets/images/MoodleTabInformationFlow.png" alt="Moodle tab for Microsoft Teams information flow" />
-1. From the Microsoft 365 Integration plugin page select the **Setup** tab.
+1. From the Microsoft 365 Integration plugin page, select the **Setup** tab.
1. Select the **Download PowerShell Script** button and save it to your local computer.
-1. You'll need to prepare the PowerShell script from the ZIP file. To do so:
+1. You must prepare the PowerShell script from the ZIP file. Perform the following steps to prepare the PowerShell script from the ZIP file:
- * Download and extract the `Moodle-AzureAD-Powershell.zip` file.
- * Open the extracted folder.
- * Right-click on the `Moodle-AzureAD-Script.ps1` file and select **Properties**.
- * Under the **General** tab of the Properties window, check the `Unblock` box next to the **Security** attribute located at the bottom of the window.
- * Select **OK**.
- * Copy the directory path to the extracted folder.
+ 1. Download and extract the `Moodle-AzureAD-Powershell.zip` file.
+ 1. Open the extracted folder.
+ 1. Right-click on the `Moodle-AzureAD-Script.ps1` file and select **Properties**.
+ 1. Under the **General** tab of the Properties window, check the `Unblock` box next to the **Security** attribute located at the bottom of the window.
+ 1. Select **OK**.
+ 1. Copy the directory path to the extracted folder.
-1. Next you'll run PowerShell as an administrator:
+1. Run PowerShell as an administrator:
- * Select Start.
- * Type PowerShell.
- * Right-click Windows PowerShell.
- * Select "Run as Administrator".
+ 1. Select Start.
+ 1. Type PowerShell.
+ 1. Right-click Windows PowerShell.
+ 1. Select **Run as Administrator**.
1. Navigate to the unzipped directory by typing `cd .../.../Moodle-AzureAD-Powershell` where `.../...` is the path to the directory. 1. Execute the PowerShell script:
- * Enter `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`.
- * Enter `./Moodle-AzureAD-Script.ps1`.
- * Login to your Microsoft 365 administrator account in the pop-up window.
- * Enter the name of the Azure AD Application (e.g., Moodle/Moodle plugin).
- * Enter the URL for your Moodle server.
- * Copy the **Application ID** and **Application Key** generated by the script and save them.
+ 1. Enter `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`.
+ 1. Enter `./Moodle-AzureAD-Script.ps1`.
+ 1. Sign in to your Microsoft 365 administrator account in the pop-up window.
+ 1. Enter the name of the Azure AD Application (e.g., Moodle/Moodle plugin).
+ 1. Enter the URL for your Moodle server.
+ 1. Copy the **Application ID** and **Application Key** generated by the script and save them.
-1. Next you'll need to add the` AppID` and `Key` to the Microsoft 365 Moodle Plugin. Return to the plugin administration page (Site administration ➡ Plugins ➡ Microsoft 365 Integration).
+1. Next you must add the `AppID` and `Key` to the Microsoft 365 Moodle Plugin. Return to the plugin administration page. The flow is: Site administration ➡ Plugins ➡ Microsoft 365 Integration.
1. On the **Setup** tab add the **Application ID** and **Application Key** you copied previously, then select **Save changes**.
-1. Once the page refreshes you should see a new section **Choose connection method**. Select the checkbox labeled **Default** and then select **Save changes** again.
+1. After the page refreshes, you can see a new section **Choose connection method**. Select the checkbox labeled **Default** and then select **Save changes** again.
-1. Once the page refreshes you will see another new section **Admin consent & additional information**.
- * Select the **Provide Admin Consent** link, enter your Microsoft 365 Global Administrator credentials, then **Accept** to grant the permissions.
- * Next to the **Azure AD Tenant** field select the **Detect** button.
- * Next to the **OneDrive for Business URL** select the **Detect** button.
- * Once the fields populate, select the **Save changes** button again.
+1. After the page refreshes you can see another new section **Admin consent & additional information**.
+ 1. Select **Provide Admin Consent** link, enter your Microsoft 365 Global Administrator credentials, then **Accept** to grant the permissions.
+ 1. Next to the **Azure AD Tenant** field, select the **Detect** button.
+ 1. Next to the **OneDrive for Business URL**, select the **Detect** button.
+ 1. After the fields populate, select the **Save changes** button again.
1. Select the **Update** button to verify the installation, then **Save changes**.
-1. Next, you'll need to synchronize users between your Moodle server and Azure AD. Depending on your environment, you may select different options during this stage. To get started:
- * Switch to the **Sync Settings tab**
- * In the **Sync users with Azure AD** section, select the checkboxes that apply to your environment. Typically, you would, at a minimum, select the following:
+1. Synchronize users between your Moodle server and Azure AD. Depending on your environment, you can select different options during this stage. To get started:
+ 1. Switch to the **Sync Settings tab**
+ 1. In the **Sync users with Azure AD** section, select the checkboxes that apply to your environment. You must select the following:
Γ£ö Create accounts in Moodle for users in Azure AD . Γ£ö Update all accounts in Moodle for users in Azure AD.
- * In the **User Creation Restriction** section, you can setup a filter to limit the Azure AD users that will be synced to Moodle.
- * The **User Field Mapping** section will allow you to customize the Azure AD to Moodle User Profile field mapping.
- * In the **Teams Sync** section you can choose to automatically create Groups (i.e. teams) for some, or all, of your existing Moodle courses.
+ 1. In the **User Creation Restriction** section, you can setup a filter to limit the Azure AD users that is synced to Moodle.
+ 1. The **User Field Mapping** section allows you to customize the Azure AD to Moodle User Profile field mapping.
+ 1. In the **Teams Sync** section, you can select to automatically create Groups, such as teams for some, or all, of your existing Moodle courses.
> [!NOTE]
-> The Moodle [Cron](https://docs.moodle.org/310/en/Cron) will run according to the task schedule (once a day by default). However, the cron should run more frequently to keep everything in sync.
+> The Moodle [Cron](https://docs.moodle.org/310/en/Cron) runs according to the task schedule. The default schedule is once a day. However, the cron must run more frequently to keep everything in sync.
-13. To validate [cron](https://docs.moodle.org/310/en/Cron) jobs (and/or run them manually for the first run) select the **Scheduled tasks management page** link in the **Sync users with Azure AD** section. This will take you to the **Scheduled Tasks** page.
+13. To validate [cron](https://docs.moodle.org/310/en/Cron) jobs and run them manually for the first run, select the **Scheduled tasks management page** link in the **Sync users with Azure AD** section. This takes you to the **Scheduled Tasks** page.
- * Scroll down and find the **Sync users with Azure AD** job and select **Run now**.
- * If you chose to create Groups based on existing courses, you can also run the **Create user groups in Microsoft 365** job.
+ 1. Scroll down and find the **Sync users with Azure AD** job and select **Run now**.
+ 1. If you select to create Groups based on existing courses, you can also run the **Create user groups in Microsoft 365** job.
-1. Return to the plugin administration page (Site administration ➡ Plugins ➡ Microsoft 365 Integration) and select the **Teams Settings** page. You'll need to configure some settings to enable the Teams app integration.
+1. Return to the plugin administration page. The navigation flow is: Site administration ➡ Plugins ➡ Microsoft 365 Integratio. Then, select the **Teams Settings** page. You must configure some settings to enable the Teams app integration.
- * To enable **OpenID Connect**, select the **Manage Authentication** link, and select the eye icon on the **OpenId Connect** line if it is greyed out.
- * Next, you'll need to enable frame embedding. Select the **HTTP Security** link, then select the checkbox next to **Allow frame embedding**.
- * The next step is to enable web services which will enable the Moodle API features. Select the **Advanced Features** link, then make sure the checkbox next to **Enable web services** is checked.
- * Finally, you'll need to enable the external services for Microsoft 365. Select the **External services** link then next:
+ 1. To enable **OpenID Connect**, select the **Manage Authentication** link, and select the eye icon on the **OpenId Connect** line if it is greyed out.
+ 1. Enable frame embedding. Select the **HTTP Security** link, then select the checkbox next to **Allow frame embedding**.
+ 1. Enable web services which enables the Moodle API features. Select the **Advanced Features** link, then make sure the checkbox next to **Enable web services** is checked.
+ 1. Enable the external services for Microsoft 365. Select the **External services** link then next:
Γ£ö Select **Edit** on the **Moodle Microsoft 365 Webservices** row. Γ£ö Mark the checkbox next to **Enabled**, then select **Save Changes**
- * Next, you'll need to edit your authenticated user permissions to allow them to create web service tokens. Select the **Editing role 'Authenticated user'** link. Scroll down and find the **Create a web service token** capability and mark the **Allow** checkbox.
+ 1. Edit your authenticated user permissions to allow them to create web service tokens. Select the **Editing role 'Authenticated user'** link. Scroll down and find the **Create a web service token** capability and mark the **Allow** checkbox.
-## Step 3: Deploy the Moodle Assistant Bot to Azure
+## 3. Deploy the Moodle Assistant Bot to Azure
The free Moodle assistant bot for Microsoft Teams helps teachers and students answer questions about their courses, assignments, grades and other information in Moodle. The bot also sends Moodle notifications to students and teachers within Teams. The bot is an open-source project maintained by Microsoft, and is available on [GitHub](https://github.com/microsoft/Moodle-Teams-Bot). > [!NOTE]
-> In this section you'll deploy resources to your Azure subscription. All resources will be configured using the **free** tier. Depending on the usage of your bot, you may need to scale these resources.
-> If you want to use the Moodle tab without the bot, skip to [step 4](#step-4-deploy-your-microsoft-teams-app).
+> * In this section you must deploy resources to your Azure subscription. All resources ware configured using the **free** tier. Depending on the usage of your bot, you mhave to scale these resources.
+> * To use the Moodle tab without the bot, skip to [4](#4-deploy-your-microsoft-teams-app).
### Moodle bot information flow <img width="530px" src="../assets/images/MoodleBotInformationFlow.png" alt="Moodle bot for Microsoft Teams information flow" />
-To install the bot, you'll first need to register it on the [Microsoft Identity Platform](https://identity.microsoft.com/Landing). This allows your bot to authenticate against your Microsoft endpoints. To register your bot:
+To install the bot, you must register it on the [Microsoft Identity Platform](https://identity.microsoft.com/Landing). This allows your bot to authenticate against your Microsoft endpoints.
-1. Return to the plugin administration page (Site administration ➡ Plugins ➡ Microsoft 365 Integration) and select the **Teams Settings** tab.
+**To register your bot**:
-1. Select the **Microsoft Application Registration Portal** link and login with your Microsoft ID.
+1. Go to the plugin administration page. Go to **Plugins**. Under **Microsoft 365 Integration**, select the **Teams Settings** tab.
-1. Enter a name for your app (e.g., MoodleBot) and select the **Create** button.
+1. Select the **Microsoft Application Registration Portal** link and sign in with your Microsoft ID.
+
+1. Enter a name for your app, such as MoodleBot and select the **Create** button.
1. Copy the **Application ID** and paste it into the **Bot Application ID** field on the **Team Settings** page.
To install the bot, you'll first need to register it on the [Microsoft Identity
1. Scroll to the bottom of the form and select **Save Changes**.
-Now that you've generated your Application ID and Password, it's time to deploy your bot to Azure:
+As you generated your Application ID and Password, next step is to deploy your bot to Azure:
> [!div class="checklist"]
-> * Select the **Deploy to Azure** button and complete the form with the necessary information (the Bot Application ID, Bot Application Password and the Moodle Secret are on the **Team Settings** page. The Azure information is on the **Setup** page).
-> * Once you have the form completed, select the check box to agree to the terms and conditions.
-> * Select the **Purchase** button (all Azure resources are deployed to the free tier).
+> * Select the **Deploy to Azure** button and complete the form with the necessary information, such as the Bot Application ID, Bot Application Password and the Moodle Secret are on the **Team Settings** page. The Azure information is on the **Setup** page).
+> * After completing the form, select the check box to agree to the terms and conditions.
+> * Select the **Purchase** button. All Azure resources are deployed to the free tier.
-Once the resources have completed deploying to Azure, you'll need to configure the Microsoft 365 Moodle plugin with a messaging endpoint. You'll need to get the endpoint from your bot in Azure:
+After the resources have completed deploying to Azure, you must configure the Microsoft 365 Moodle plugin with a messaging endpoint. You must get the endpoint from your bot in Azure:
-1. Log into the [Azure portal](https://portal.azure.com).
+**Configure the Microsoft 365 Moodle plugin with a messaging endpoint**
+1. Sign in to the [Azure portal](https://portal.azure.com).
-1. In the left pane select **Resource groups** and choose the resource group you used (or created) while deploying your bot.
+1. In the left pane, select **Resource groups** and select the resource group you used or created, while deploying your bot.
1. Select the **WebApp Bot** resource from the list of resources in the group.
Once the resources have completed deploying to Azure, you'll need to configure t
1. In Moodle, open the **Team Settings** page of your Microsoft 365 Moodle Plugin.
-1. In the **Bot Endpoint** field paste the URL you just copied and change the word *messages* to *webhook*. The URL should now appear as follows: `https://botname.azurewebsites.net/api/webhook`
+1. In the **Bot Endpoint** field paste the URL you just copied and change the word *messages* to *webhook*. The URL should now appear as follows: `https://botname.azurewebsites.net/api/webhook`
1. Select **Save Changes**.
-1. Once your changes have been saved, go back to the **Team Settings** tab, select the **Download manifest file** button, and save the app manifest package to your computer (you'll use it in the next section).
+1. After saving the changes, go back to the **Team Settings** tab, select the **Download manifest file** button, and save the app manifest package to your computer for further use.
+
+## 4. Deploy your Microsoft Teams app
-## Step 4: Deploy your Microsoft Teams app
+After your bot deployed to Azure and configured to talk to your Moodle server, you must deploy your Microsoft Teams app. To do this you must load the app manifest file that you downloaded from the Microsoft 365 Moodle Plugin Team Settings page in the previous step.
-Now that you have your bot deployed to Azure and configured to talk to your Moodle server, it's time to deploy your Microsoft Teams app. To do this you'll load the app manifest file that you downloaded from the Microsoft 365 Moodle Plugin Team Settings page in the previous step.
+Before you install the app you must ensure to enable external apps and uploading of apps. To do so, you can follow the steps in the Teams [Prepare your Microsoft 365 tenant](../concepts/build-and-test/prepare-your-o365-tenant.md) documentation. You can perform th the following steps to deploy your app:
-Before you can install the app you'll need to make sure external apps and uploading of apps is enabled. To do so, you can follow the steps in the Teams [Prepare your Microsoft 365 tenant](../concepts/build-and-test/prepare-your-o365-tenant.md) documentation. Once you've ensured that external apps are enabled, you can follow the steps below to deploy your app:
+**To deploy your app**
1. Open **Microsoft Teams**.
Before you can install the app you'll need to make sure external apps and upload
1. Select the **Upload a custom app** link from the list of options.
-> [!Note]
-> If you're logged in as a global administrator you'll have the option of uploading the app to your organization's app catalog, otherwise you'll only be able to load the app for a team in which you are a member.
+ > [!NOTE]
+ > If you are logged in as a global administrator, you must have the option of uploading the app to your organization's app catalog, otherwise you can only load the app for a team in which you are a member.
-4. Select the `manifest.zip` package you downloaded previously and select **Save**. If you haven't downloaded the app manifest package, you can do so from the **Team Settings** tab of the plugin configuration page in Moodle.
+4. Select the `manifest.zip` package you downloaded previously and select **Save**. If you have not downloaded the app manifest package, you can download from the **Team Settings** tab of the plugin configuration page in Moodle.
Now that you have the app installed, you can add the tab to any channel that you have access to. To do so, navigate to the channel, select the **plus** (Γ₧ò) symbol and select your app from the list. Follow the prompts to finish adding your Moodle course tab to a channel.
-## Step 5: Allow automatic creation of Moodle tabs in Microsoft Teams
+## 5. Allow automatic creation of Moodle tabs in Microsoft Teams
-Although the Moodle tabs can be created manually in Microsoft Teams, you may decide to have them automatically created when teams are created from course synchronization. To do this, you'll configure the ID of the uploaded Microsoft Teams app in Moodle:
+Although the Moodle tabs are created manually in Microsoft Teams, you can decide to have them automatically created when teams are created from course synchronization. To do this, you must configure the ID of the uploaded Microsoft Teams app in Moodle:
1. Open Microsoft Teams.
Although the Moodle tabs can be created manually in Microsoft Teams, you may dec
1. Locate the uploaded **Moodle app** ➡ select the **options** icon ➡ select **copy link**.
-1. In a text editor, paste the copied content. It should contain a URL such as ht&#8203;tps://teams.microsoft.com/l/app/00112233-4455-6677-8899-aabbccddeeff. Copy the last part of the URL, e.g. `00112233-4455-6677-8899-aabbccddeeff`, which is the ID of the Microsoft Teams app.
+1. In a text editor, paste the copied content. It must contain a URL such as ht&#8203;tps://teams.microsoft.com/l/app/00112233-4455-6677-8899-aabbccddeeff. Copy the last part of the URL, such as `00112233-4455-6677-8899-aabbccddeeff`, which is the ID of the Microsoft Teams app.
1. In Moodle, open the **Teams Moodle app** tab from your Microsoft 365 Moodle Plugin configuration page. 1. Paste the ID of the Microsoft Teams app into the Moodle app ID field, and save changes.
-Now when a Moodle course is synced, Microsoft Teams will automatically install the Moodle app in the team, create a Moodle tab in the General channel of Teams, and configure it to contain the course page for the Moodle course from which it is synced.
+When a Moodle course is synced, Microsoft Teams automatically installs the Moodle app in the team, create a Moodle tab in the General channel of Teams, and configure it to contain the course page for the Moodle course from which it is synced. You can now start working with your Moodle courses directly from Microsoft Teams.
+
+To share any feature requests or feedback with us, visit our [User Voice page](https://microsoftteams.uservoice.com/forums/916759-moodle).
+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
-### That's it! You and your team, can now start working with your Moodle courses directly from Microsoft Teams.
+> [!div class="nextstepaction"]
+> [Moodle](https://moodle.org/)
-To share any feature requests or feedback with us, please visit our [User Voice page](https://microsoftteams.uservoice.com/forums/916759-moodle).
+> [!div class="nextstepaction"]
+> [Moodle documentation](https://docs.moodle.org/34/en/Installing_plugins).
platform Removing Tab Margins https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/removing-tab-margins.md
description: Describes how the removal of tab margins will enhance developer's experience. keywords: tab removing margins padding
+localization_priority: Normal
platform Samesite Cookie Update https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/samesite-cookie-update.md
Title: Microsoft Teams and the SameSite cookie attribute (2020 update)
-description:
+description: describes the attributes of SameSite cookie
keywords: cookie attributes samesite
+localization_priority: Normal
Chrome 80, scheduled for release in February 2020, introduces new cookie values
## Handling incompatible clients > [!IMPORTANT]
-> Currently, `SameSite=None` is not supported by the [**Teams desktop client**](/aspnet/core/security/samesite?view=aspnetcore-3.1#test-with-electron) or older versions of Chrome or Safari. *See* [Known Incompatible Clients]( https://www.chromium.org/updates/same-site/incompatible-clients).
+> Currently, `SameSite=None` is not supported by the [**Teams desktop client**](/aspnet/core/security/samesite?view=aspnetcore-3.1#test-with-electron&preserve-view=true) or older versions of Chrome or Safari. **See** [Known Incompatible Clients]( https://www.chromium.org/updates/same-site/incompatible-clients).
>However, there are two **workaround solutions**: > >1. Check the user-agent in order to provide the correct SameSite property. You can implement the user-agent check in [**C#**](https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/) and [**Node.js**](https://web.dev/samesite-cookie-recipes/).
platform Localization Schema https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/schema/localization-schema.md
Title: Localization file JSON schema reference description: Describes the localization schema supported by the localization file for Microsoft Teams
+localization_priority: Normal
keywords: teams manifest schema localization Last updated 05/20/2019
platform Manifest Schema Dev Preview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/schema/manifest-schema-dev-preview.md
Title: Developer Preview Manifest schema reference
description: Describes the schema supported by the manifest for Microsoft Teams keywords: teams manifest schema Developer Preview
+localization_priority: Normal
Last updated 05/20/2019 # Developer preview manifest schema for Microsoft Teams
platform Manifest Schema https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/schema/manifest-schema.md
Title: Manifest schema reference
description: Describes the manifest schema for Microsoft Teams
+localization_priority: Normal
keywords: teams manifest schema
platform Team Chat Member Api Changes https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/team-chat-member-api-changes.md
Title: Bot API changes for team and chat members
description: Describes upcoming and in-progress changes to the Bot APIs used for retrieving members of teams and chats keywords: bot framework apis team members roster
+localization_priority: Normal
platform Teams Contributor Reference https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/teams-contributor-reference.md
Title: Contributing to Microsoft Teams documentation
description: steps for creating and publishing Teams documentation
+localization_priority: Normal
platform Troubleshoot https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/troubleshoot.md
Title: Troubleshoot your app description: Troubleshoot issues or errors while building apps for Microsoft Teams keywords: teams apps development troubleshooting
+localization_priority: Normal
Last updated 07/09/2018
platform App Templates https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/app-templates.md
Title: Microsoft Teams app templates
description: Links and descriptions of app templates for the Microsoft Teams platform keywords: Microsoft Teams templates samples demo
+localization_priority: Normal
# App templates for Microsoft Teams
-App templates are examples of complete apps for Microsoft Teams that are open-source and available on GitHub. Each app template contains detailed instructions for deploying and installing that app for your organization. It also provides a sample app that you can install and begin using immediately. The complete source code is available too, which allows you to explore it in detail or fork the code and alter it to meet your specific requirements.
+App templates are examples of complete apps for Microsoft Teams that are open-source and available on GitHub. Each app template contains detailed instructions for deploying and installing that app for your organization. It also provides a sample app that you can install and start using immediately. The complete source code is also available, which allows you to explore it in detail or fork the code and alter it to meet your specific requirements.
All app templates are provided under the [MIT License](https://github.com/OfficeDev/microsoft-teams-apps-eprescription/blob/master/LICENSE) terms.+ > [!NOTE]
-> You must license and support apps created from app templates for your users and organizations. Microsoft is not responsible for licenses and support.
+> You must license and support apps created from app templates for your users and organizations.
**&#9734; Indicates newly released app templates.**
All app templates are provided under the [MIT License](https://github.com/Office
* **Deploy directly to the cloud:** All app templates include deployment scripts that allows you to host all required services in Microsoft Azure or the Power Platform. * **Recommended sample code:** The app templates conform to recommended best practices around security and infrastructure. All community submitted changes to the app templates are reviewed to ensure conformance.
-* **Customizable and extensible:** While all app templates can be deployed with minimal configuration, we provide the entire code base and deployment scripts so that you can easily customize or extend them to fit your unique needs.
+* **Customizable and extensible:** While all app templates are deployed with minimal configuration, the entire code base and deployment scripts are provided, so that you can easily customize or extend them to fit your unique needs.
* **Detailed documentation:** All app templates are accompanied by end-to-end documentation on solution architecture, deployment, and configuration steps. ## Adoption Bot
-Adoption Bot is a user care chat bot built with Power Virtual Agent for Teams (PVA). It can be considered as the PVA version of FAQPlus. Adoption Bot answers 100+ common questions about Microsoft 365 and Teams. You can edit the existing topics, add your own topics, and ingest existing FAQs. If users need additional help, Adoption Bot can connect them to experts or even be extended to open service tickets with premium flow connectors.This bot can be installed on it's own or built into a custom app like the [Adoption Hub](https://github.com/akporzondek/adoption_hub).
+Adoption Bot is a user care chat bot built with Power Virtual Agent for Teams PVA. It is considered as the PVA version of FAQ Plus. Adoption Bot answers 100+ common questions about Microsoft 365 and Teams. You can edit the existing topics, add your own topics, and ingest existing FAQs. If users need additional help, Adoption Bot can connect them to experts or even be extended to open service tickets with premium flow connectors. This bot is self-installed or built into a custom app, such as the [Adoption Hub](https://github.com/akporzondek/adoption_hub).
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-adopt-bot)
The Get Started app template allows you to bring the power of Microsoft 365 lear
## Appointment Manager
-Appointment Manager is a Teams app template to help businesses create, manage, and conduct virtual appointments with consumers through Teams. New appointment requests from consumers are visible in Teams channels, where they can quickly be assigned and reassigned to staff in a team. Appointment requests can be viewed at team or personal levels through custom tabs. Every appointment is associated with a Teams online meeting, hence the staff and consumers can easily join the meeting at the scheduled time.
+Appointment Manager is a Teams app template to help businesses create, manage, and conduct virtual appointments with consumers through Teams. New appointment requests from consumers are visible in Teams channels, where they are quickly assigned and reassigned to staff in a team. Appointment requests are viewed at team or personal levels through custom tabs. Every appointment is associated with a Teams online meeting, hence the staff and consumers can easily join the meeting at the scheduled time.
The app template integrates with Microsoft Bookings for easy appointment management. Scheduled appointments automatically appear on assigned staff members' calendars, and consumers receive customizable email notifications and reminders with embedded meeting links.
The app template integrates with Microsoft Bookings for easy appointment managem
## Ask Away
-Ask Away is a [Microsoft Teams bot](../bots/what-are-bots.md) that enables users to conduct Q&A (Question and Answer) sessions within Teams. Using the Ask Away bot, team members can submit and up-vote questions shared by colleagues allowing Q&A hosts to easily gather top-of-mind questions within a channel or chat. The bot can be used to conduct a real-time Q&A session in a Teams meeting and allows attendees to submit questions live via chat.
+Ask Away is a [Microsoft Teams bot](../bots/what-are-bots.md) that enables users to conduct Question and Answer, called Q&A sessions within Teams. Using the Ask Away bot, team members can submit and up-vote questions shared by colleagues allowing Q&A hosts to easily gather top-of-mind questions within a channel or chat. The bot is used to conduct a real-time Q&A session in a Teams meeting and allows attendees to submit questions live through chat.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-askaway)
Ask Away is a [Microsoft Teams bot](../bots/what-are-bots.md) that enables users
## Associate Insights
-Associate Insights is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) template that empowers firstline workers to directly capture and submit customer opinion, sentiment, and perception. Firstline workers are often the first company representative to engage with customers in a one-to-one point-of contact. The collected data can be shared and used collaboratively by business teams, e.g., via a Power BI Teams tab, for product improvement and enhancing the customer experience.
+Associate Insights is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) template that empowers firstline workers to directly capture and submit customer opinion, sentiment, and perception. Firstline workers are often the first company representative to engage with customers in a one-to-one point-of contact. The collected data are shared and used collaboratively by business teams, such as through a Power BI Teams tab, for product improvement and enhancing the customer experience.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-associateinsights)
Associate Insights is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-ap
## Attendance
-The Attendance app is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) tab that can be pinned in a team. It is designed to record presence, typically in settings such as learning and training environments. Users can mark or edit attendance for up to 30 days in the past and view summarized attendance reports for an entire group or individual attendees.
+The Attendance app is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) tab that are pinned in a team. It is designed to record presence in settings, such as learning and training environments. Users can mark or edit attendance for up to 30 days in the past and view summarized attendance reports for an entire group or individual attendees. For more information on teams attendance, see [Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-attendance).
-[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-attendance)
+The following image displays the attendance app demo:
![Attendance app demo](../assets/images/attendance-app.png) ## Book-a-room
-Book-a-room is a [Microsoft Teams bot](../bots/what-are-bots.md) that lets users quickly find and reserve a meeting room for 30 (default), 60, or 90 minutes starting from the current time. The Book-a-room bot scopes to personal or 1:1 conversations.
-
-[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-bookaroom)
+Book-a-room is a [Microsoft Teams bot](../bots/what-are-bots.md) that allows users quickly to find and reserve a meeting room for 30, 60, or 90 minutes starting from the current time. The default time is 30 minutes. The Book-a-room bot scopes to personal or 1:1 conversations. For more information on Book-a-room app, see [Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-bookaroom).
+The following image displays the Book-a-room demo:
![Book-a-room demo](../assets/images/book-a-room.png) ## Building Access
-Building Access is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/)-based app that supports the administration of building occupancy thresholds and social distancing norms by enabling facilities directors to manage, track, and report employee on-site presence. The app, built using Microsoft [Power Apps](/powerapps/powerapps-overview), and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams and enables organizations to determine building readiness, establish eligibility criteria for on-site access, and gather insights for future planning.
+Building Access is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/) based app that supports the administration of building occupancy thresholds and social distancing norms by enabling facilities directors to manage, track, and report employee on-site presence. The app, built using Microsoft [Power Apps](/powerapps/powerapps-overview), and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams and enables organizations to determine building readiness, establish eligibility criteria for on-site access, and gather insights for future planning.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-buildingaccess)
Building Access is a Microsoft [Power Platform](https://powerapps.microsoft.com/
## Celebrations
-Celebrations is a Teams app that helps team members celebrate each others' birthdays, anniversaries, and other recurring events. It remembers special occasions of all the team members and sends a friendly message in all the teams selected at the time of event creation, to make the team members feel special on their day.
+Celebrations is a Teams app that helps team members to celebrate each others' birthdays, anniversaries, and other recurring events. It remembers special occasions of all the team members and sends a friendly message in all the teams selected at the time of event creation, to make the team members feel special on their day.
The app provides an easy interface for all the team members to personally add and view their events and also allows the user to select the teams in which the events gets shared.
The app provides an easy interface for all the team members to personally add an
## Checklist
-Checklist is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to collaborate with your team by creating a shared checklist in a chat or channel. The app is supported across all Teams platform clients ΓÇö desktop, browser, iOS, and Android ΓÇö and is ready for deployment as part of your Microsoft 365 subscription.
+Checklist is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to collaborate with your team by creating a shared checklist in a chat or channel. The app is supported across all Teams platform clients, such as desktop browser, iOS, and Android. The app is ready for deployment as part of your Microsoft 365 subscription.
-[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-checklist-app )
+[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-checklist-app)
:::row::: :::column span="2":::
Checklist is a custom Microsoft Teams [messaging extension](../messaging-extensi
## Classroom Drop-in
-Classroom Drop-in is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/)-based app that enables system leaders to find class teams (virtual classrooms) and add themselves or others to these class teams for a specified drop-in period, as needed. The app built using Microsoft [Power Apps](/powerapps/powerapps-overview) and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams to ensure educational institutes can optimize their operations in a hybrid learning environment by providing access to relevant stakeholders for class teams per business requirements.
+Classroom Drop-in is a Microsoft [Power Platform](https://powerapps.microsoft.com/blog/now-in-preview-customize-teams-with-built-in-power-platform-capabilities/)-based app that enables system leaders to find class teams, means virtual classrooms and add themselves or others to these class teams for a specified drop-in period, as needed. The app built using Microsoft [Power Apps](/powerapps/powerapps-overview) and [Power Automate](/power-automate/getting-started), deeply integrates with Microsoft Teams to ensure educational institutes can optimize their operations in a hybrid learning environment by providing access to relevant stakeholders for class teams per business requirements.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-classroom-dropin)
It provides a foundation to build custom targeted communication capabilities suc
## Contact Group Lookup
-The Contact Group Lookup app provides a convenient and useful approach to creating, accessing, and managing your organization's contact groups (formerly known as distribution lists or communication groups). Users can quickly view and chat with group members, view member status, and create a group chat with selected members in the contact group, all within the Teams environment.
+The Contact Group Lookup app provides a convenient and useful approach to creating, accessing, and managing your organization's contact groups, formerly known as distribution lists or communication groups. Users can quickly view and chat with group members, view member status, and create a group chat with selected members in the contact group, all within the Teams environment.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-app-contactgrouplookup)
The Contact Group Lookup app provides a convenient and useful approach to creati
## Co-worker Appreciation
-Using the co-worker appreciation template in Microsoft Teams, users can recognize their colleagues' achievements within the TeamsΓÇÖ context. When co-workers select to reward a colleague, recipients and other team members are tagged in a channel conversation and they receive a notification about the channel's award details. The awards are recorded in the Teams app, which is secure, portable, and easily shareable. This can be considered as the PowerApps based version of the Open Badges app template, with a leaderboard.
+Using the co-worker appreciation template in Microsoft Teams, users can recognize their colleagues' achievements within the TeamsΓÇÖ context. When co-workers select to reward a colleague, recipients and other team members are tagged in a channel conversation and they receive a notification about the channel's award details. The awards are recorded in the Teams app, which is secure, portable, and easily shareable. This is considered as the PowerApps based version of the Open Badges app template, with a leaderboard.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-coworker-appreciation)
Using the co-worker appreciation template in Microsoft Teams, users can recogniz
## CrowdSourcer
-CrowdSourcer is a [Microsoft Teams bot](../bots/what-are-bots.md) that gives teams queried information sourced collaboratively from group members. It's a great way to answer frequently asked questions while enabling participants to actively engage in and contribute to a fun and helpful information resource.
+CrowdSourcer is a [Microsoft Teams bot](../bots/what-are-bots.md) that gives teams queried information sourced collaboratively from group members. It helps to answer frequently asked questions while enabling participants to actively engage in and contribute to a fun and helpful information resource.
[Get it on Github](https://github.com/OfficeDev/microsoft-teams-crowdsourcer-app)
CrowdSourcer is a [Microsoft Teams bot](../bots/what-are-bots.md) that gives tea
## Custom Stickers
-Self-expression is core to a healthy team culture. This app template is a [messaging extension](~/messaging-extensions/what-are-messaging-extensions.md) that enables your users to use custom stickers and GIFs within Microsoft Teams. This template provides an easy web-based configuration experience where anyone with configuration access can upload the GIFs/stickers/images they want their end-users to have, allowing your entire team to use any set of stickers you chose.
+Self-expression is core to a healthy team culture. This app template is a [messaging extension](~/messaging-extensions/what-are-messaging-extensions.md) that enables your users to use custom stickers and GIFs within Microsoft Teams. This template provides an easy web-based configuration experience where anyone with configuration access can upload the GIFs, stickers, and images they want their users to have, allowing your entire team to use any set of stickers you choose.
-This app also enables easy sharing of images/GIFs/stickers across teams without needing access to SharePoint sites or individual channels as storage and sharing mechanisms. For example, product teams can easily share product images and GIFs to social media, marketing and sales teams programmatically. One can also extend this app by triggering a notification flow to specific teams/individuals when new images/GIFs are made available.
+This app also enables easy sharing of images, GIFs, stickers across teams without needing access to SharePoint sites or individual channels as storage and sharing mechanisms. For example, product teams can easily share product images and GIFs to social media, marketing and sales teams programmatically. One can also extend this app by triggering a notification flow to specific teams or individuals when new images, and GIFs are made available.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-stickers-app)
This app also enables easy sharing of images/GIFs/stickers across teams without
The Employee Ideas app is the PowerApps version of the Azure based Great Ideas app template. The app enables the Teams users to set up and configure an idea campaign. An idea campaign is a category for grouping ideas around common themes.
-Teams users can also perform following activities:
-* Configure a standard submission form that employees need to submit for each idea.
+Teams users can also perform the following activities:
+
+* Configure a standard submission form that employees must submit for each idea.
* Review and manage the ideas and list of campaigns. * Modify and delete campaigns. * Review leader boards of ideas.
Teams users can also perform following activities:
## E-Prescriptions
-E-Prescriptions is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app)-based app that enhances telemedicine and virtual care by automating the process of issuing e-prescriptions to patients. Medical professionals can quickly review appointments, generate e-prescriptions, and send emails with e-prescription attachments to patients directly within the Teams platform.
+E-Prescriptions is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) based app that enhances telemedicine and virtual care by automating the process of issuing e-prescriptions to patients. Medical professionals can quickly review appointments, generate e-prescriptions, and send emails with e-prescription attachments to patients directly within the Teams platform.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-eprescription)
E-Prescriptions is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app)-
## Employee Training
-Employee training is a Microsoft Teams app that enables organizers to easily publish, track, and promote learning and training events for your organization. With the app, event planners can send reminders and notifications to event registrants and employees can indicate interest in upcoming events, stay updated on current events, and share event details with colleagues via the Teams messaging extension.
+Employee training is a Microsoft Teams app that enables organizers to easily publish, track, and promote learning and training events for your organization. With the app, event planners can send reminders and notifications to event registrants and employees can indicate interest in upcoming events, stay updated on current events, and share event details with colleagues through the Teams messaging extension.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-employeetraining)
Employee training is a Microsoft Teams app that enables organizers to easily pub
## Expert Finder
-Expert Finder is a [Microsoft Teams bot](../bots/what-are-bots.md) that identifies specific organization members based on their skills, interests, and education attributes. Members find experts within an organization that match a keyword search of Azure Active Directory user profiles.
+Expert Finder is a [Microsoft Teams bot](../bots/what-are-bots.md) that identifies specific organization members based on their skills, interests, and education attributes. Members find experts within an organization that match a keyword search of Azure Active Directory user profiles.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-expertfinder)
Expert Finder is a [Microsoft Teams bot](../bots/what-are-bots.md) that identifi
## FAQ Plus
-Conversational Q&A bots are an easy way to provide answers to frequently asked questions by users. However, most bots fail to engage with users in meaningful way because there is no human in the loop when the bot fails. FAQ bot is a friendly Q&A bot that brings a human in the loop when it is unable to help. One can ask the bot a question and the bot responds with an answer if it is contained in the knowledge base. If not, the bot allows the user to submit a query which then gets posted to a pre-configured team of experts who help to provide support by acting upon the notifications from within the team itself.
+Conversational Q&A bots are an easy way to provide answers to frequently asked questions by users. But, most bots fail to engage with users in meaningful way because there is no human in the loop when the bot fails. FAQ bot is a friendly Q&A bot that brings a human in the loop when it is unable to help. One can ask the bot a question and the bot responds with an answer if it is contained in the knowledge base. If not, the bot allows the user to submit a query which then gets posted to a pre-configured team of experts who help to provide support by acting upon the notifications from within the team itself.
> [!NOTE] > The latest release of **FAQ Plus** supports improved Q&A resolutions by enabling a team of experts to complete the following:
Conversational Q&A bots are an easy way to provide answers to frequently asked q
> > &#x2714; Track the revision history of Q&As. >
-> &#x2714; Configure an answer with additional details to display as an [adaptive card](../task-modules-and-cards/cards/cards-reference.md#adaptive-card).
+> &#x2714; Configure an answer with additional details to display as an [Adaptive Card](../task-modules-and-cards/cards/cards-reference.md#adaptive-card).
> [Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-faqplusv2)
Conversational Q&A bots are an easy way to provide answers to frequently asked q
## Get Support App
-The Get Support app can be used by organizations that are using Microsoft Teams, to enable any set of users to request assistance from supervisors. This app includes various features, such as:
-- Requesting assistance on different categories from a Power App-- Notifications sent to requestors informing them of who has been assigned -- Notifications sent to assigned supervisors informing them of who needs assistance -- Analyzing escalations and patterns in SharePoint and PowerBI
+The Get Support app is used by organizations that are using Microsoft Teams, to enable any set of users to request assistance from supervisors. This app includes the following features:
+* Requesting assistance on different categories from a Power App.
+* Notifications sent to requestors informing them of who hare assigned.
+* Notifications sent to assigned supervisors informing them of who needs assistance.
+* Analyzing escalations and patterns in SharePoint and PowerBI.S
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-app-get-support/)
The Grow Your Skills app supports professional growth and development by enablin
## HR Support
-HR Support bot is a friendly Q&A bot that brings a support professional/expert from the HR team in the loop when it is unable to help. One can ask the bot a question and the bot responds with an answer if it is contained in the knowledge base. If not, the bot allows the user to submit a query which then gets posted in a pre-configured team of experts who are help to provide support by acting upon the notifications from within their team itself. Additionally, the bot suggests links to recommended HR policies/questions by searching for pre-configured tags in the question. These tiles can also be found in the associated tab as a quick reference. HR Support works well for light weight QnA and to provide quick support when launching new projects/initiatives in the organization.
+HR Support bot is a friendly Q&A bot that brings a support professional or expert from the HR team in the loop when it is unable to help. One can ask the bot a question and the bot responds with an answer if it is contained in the knowledge base. If not, the bot allows the user to submit a query which then gets posted in a pre-configured team of experts who are help to provide support by acting upon the notifications from within their team itself. Additionally, the bot suggests links to recommended HR policies or questions by searching for pre-configured tags in the question. These tiles are found in the associated tab as a quick reference. HR Support works well for light weight Q&A and to provide quick support when launching new projects or initiatives in the organization.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-hrsupport-app)
In addition to encouraging personal connections across your entire team, the Ice
## Incentives
-Incentives is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) template that manages and tracks incentivized employee participation in designated activities such as trainings and change management initiatives. Admins use the app to establish designated activities, assign points for completion, and specify required eligibility point levels for rewards. Employees use the app to view their accumulated points and, upon reaching eligibility, request and claim redeemable rewards.
+Incentives is a [Power Apps](/powerapps/maker/canvas-apps/embed-teams-app) template that manages and tracks incentivized employee participation in designated activities, such as trainings and change management initiatives. Admins use the app to establish designated activities, assign points for completion, and specify required eligibility point levels for rewards. Employees use the app to view their accumulated points and, upon reaching eligibility, request and claim redeemable rewards.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-incentives)
The app empowers the front line workers to inspect an asset or area, to manage q
The Issue Reporting app empowers the employees and managers to raise and manage issues. It consists of two apps, Issue reporting app for reporting issues and Manage Issues app for managing issues.
-The team managers use the Manage Issues app to configure the app experience, including the channel in which Microsoft Teams messages and Planner tasks are created by the app. Managers also use the app to create template forms to collect details when a user reports an issue. For example, review, edit, or delete issue template forms. The app can also be used to review team issues, report on issue history, and efficiently manage issue resolution.
+The team managers use the Manage Issues app to configure the app experience, including the channel in which Microsoft Teams messages and Planner tasks are created by the app. Managers also use the app to create template forms to collect details when a user reports an issue. For example, review, edit, or delete issue template forms. The app is also used to review team issues, report on issue history, and efficiently manage issue resolution.
The employees use the Issue reporting app to log issues and details required to resolve them. The app is also used to modify and resolve existing issues and get a high-level view of individual or team issues.
The employees use the Issue reporting app to log issues and details required to
## New Employee Onboarding
-New Employee Onboarding is an integrated Microsoft Teams and [SharePoint New Employee Onboarding Solution](https://lookbook.microsoft.com/details/75e60a32-9849-4ed4-b83e-b2b08983ad19) that enables your organization to provide a consistent, high-quality onboarding experience for employees on their new-hire journey. The app can be used by human resource teams and hiring managers to provide relevant information throughout the orientation and induction process and by new hires to share feedback, provide introductions, and complete onboarding tasks.
+New Employee Onboarding is an integrated Microsoft Teams and [SharePoint New Employee Onboarding Solution](https://lookbook.microsoft.com/details/75e60a32-9849-4ed4-b83e-b2b08983ad19) that enables your organization to provide a consistent, high-quality onboarding experience for employees on their new-hire journey. The app is used by human resource teams and hiring managers to provide relevant information throughout the orientation and induction process and by new hires to share feedback, provide introductions, and complete onboarding tasks.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-newemployeeonboarding)
Open Badges is a Microsoft Teams app that enables individuals to earn digital le
## Poll
-Poll is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to quickly create and send polls in a chat or a channel to gather team opinions and preferences. The app is supported across all Teams platform clients ΓÇö desktop, browser, iOS, and Android ΓÇö and is ready for deployment as part of your Microsoft 365 subscription.
+Poll is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to quickly create and send polls in a chat or a channel to gather team opinions and preferences. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-poll-app)
Poll is a custom Microsoft Teams [messaging extension](../messaging-extensions/w
## Quick Responses
-Quick Responses is a Microsoft Teams app that delivers a robust solution for effectively answering users' commonly asked questions (FAQs). Instead of answering each query manually and continuously repeating information, the app will build a library of responses for an interactive user experience via Teams [messaging extensions](../messaging-extensions/what-are-messaging-extensions.md).
+Quick Responses is a Microsoft Teams app that delivers a robust solution for effectively answering users' commonly asked questions FAQs. Instead of answering each query manually and continuously repeating information, the app builds a library of responses for an interactive user experience through Teams [messaging extensions](../messaging-extensions/what-are-messaging-extensions.md).
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-quickresponses)
Rapid Assist is a Microsoft [Power Platform](https://powerapps.microsoft.com/blo
## Reflect
-Reflect is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that provides a safe and inclusive resource for your team members to share the state of their emotional well-being with colleagues and/or group leaders directly within Teams. The app is available in channel, group, meeting, and 1:1 chats and the check-in response can be set to public, private-to-sender, or fully anonymous.
+Reflect is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that provides a safe and inclusive resource for your team members to share the state of their emotional well-being with colleagues or group leaders directly within Teams. The app is available in channel, group, meeting, and 1:1 chats and the check-in response is set to public, private-to-sender, or fully anonymous.
[Get it on GitHub](https://github.com/OfficeDev/Microsoft-Teams-App-Reflect)
Scrums for Channels is a scrum assistant app that enables users to schedule and
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-scrumsforchannels) > [!NOTE]
-> To conduct scrum meetings in a group chat, please see our [Scrums for Group Chat](#scrums-for-group-chat) app template.
+> To conduct scrum meetings in a group chat, see [Scrums for Group Chat](#scrums-for-group-chat) app template.
:::row::: :::column span="2":::
Scrums for Channels is a scrum assistant app that enables users to schedule and
## Scrums for Group Chat > [!NOTE]
-> The Scrums Status app template has been updated and is now Scrums for Group Chat.
+> The Scrums Status app template is updated and is now Scrums for Group Chat.
Scrums for Group Chat is a supportive scrum assistant that enables group chat members to run asynchronous stand-up meetings and easily share their daily updates. It allows all members of the group chat to contribute to the scrum and view the updates made by others in the running scrum.
The Share Now app promotes the positive exchange of information between colleagu
## SharePoint List Search
-Collaboration in Microsoft Teams quite often references information contained within items in a SharePoint list. Simply pasting a link to the item in question forces everyone to switch context away from the conversation, find the needed information, then return to Teams to continue the conversation. As the conversation continues typically people will have to switch back to the reference item multiple times to verify new comments and refresh their memories of the information contained within the item. This context switching creates a barrier to smooth collaboration, and is a recipe for things falling through the cracks.
-
-To help alleviate this pain, we are happy to bring to you the List Search app template. Millions of users use SharePoint to power some of the core workflows in their organizations. However, collaborating around lists can be especially tedious. Using the List Search app template in Microsoft Teams, users can insert information from SharePoint list items directly within a chat conversation to alleviate the context-switching caused when simply inserting a link into a chat. The information is inserted as an easy-to-read auto-formatted card, helping your users stay engaged in the conversation.
+Collaboration in Microsoft Teams quite often references information contained within items in a SharePoint list. Paste a link to the item in question forces everyone to switch context away from the conversation, find the needed information, then return to Teams to continue the conversation. As the conversation continues people have to switch back to the reference item multiple times to verify new comments and refresh their memories of the information contained within the item. This context switching creates a barrier to smooth collaboration.
+To resolve this problem, the List Search app template is used. Many users use SharePoint to power some of the core workflows in their organizations. However, collaborating around lists is difficult. Using the List Search app template in Microsoft Teams, users can insert information from SharePoint list items directly within a chat conversation to alleviate the context-switching caused when simply inserting a link into a chat. The information is inserted as an easy-to-read auto-formatted card, helping the users stay engaged in the conversation.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-list-search-app)
To help alleviate this pain, we are happy to bring to you the List Search app te
## Staff Check-ins
-Staff Check-ins is a [Power Apps](/powerapps/powerapps-overview)-based app that enables oversight communication between your business and field personnel. Staff can easily provide time-critical information and status updates on either a scheduled or ad-hoc basis directly from Teams. The app supports real-time location, photos, and notes as well as reminder notifications and automated workflows.
+Staff Check-ins is a [Power Apps](/powerapps/powerapps-overview) based app that enables oversight communication between your business and field personnel. Staff can easily provide time-critical information and status updates on either a scheduled or ad-hoc basis directly from Teams. The app supports real-time location, photos, notes, reminder notifications and automated workflows.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-staffcheckins)
Staff Check-ins is a [Power Apps](/powerapps/powerapps-overview)-based app that
## Survey
-Survey is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a survey in a chat or a channel to gather data and gain actionable insight. The app is supported across all Teams platform clients ΓÇö desktop, browser, iOS, and Android ΓÇö and is ready for deployment as part of your Microsoft 365 subscription.
+Survey is a custom Microsoft Teams [messaging extension](../messaging-extensions/what-are-messaging-extensions.md) app that enables you to create a survey in a chat or a channel to gather data and gain actionable insight. The app is supported across all Teams platform clients, such as desktop, browser, iOS, and Android and is ready for deployment as part of your Microsoft 365 subscription.
[Get it on GitHub](https://github.com/OfficeDev/Microsoft-Teams-Survey-app)
Training is a custom [Teams messaging extension](../messaging-extensions/what-a
## Virtual Rounding
-Hospital and emergency room providers make dozens, and often hundreds of **rounds** per day. These quick check-ins on patients are intended to provide a status check on how the patient is doing and ensure that the patientΓÇÖs concerns are addressed. While rounding is an essential practice to ensure patients are being monitored by multiple types of providers, they represent a huge drain on PPE, because for each visit, from each provider, a new mask, and new set of gloves must be used. With this app templates, medical workers can easily conduct rounds virtually, through a Microsoft Teams meeting between the provider and the patient.
+Hospital and emergency room providers make many **rounds** per day. These quick check-ins on patients are intended to provide a status check on how the patient is doing and ensure that the patientΓÇÖs concerns are addressed. While rounding is an essential practice to ensure patients are being monitored by multiple types of providers, they represent a huge drain on PPE, because for each visit, from each provider, a new mask, and new set of gloves are used. With this app templates, medical workers can easily conduct rounds virtually, through a Microsoft Teams meeting between the provider and the patient.
The Virtual Rounding solution is also referenced in the Microsoft Health and Life Sciences [blog post](https://aka.ms/teamsvirtualrounding).
The Visitor Management app enables your organization and employees to easily and
## Workplace Awards
-Workplace Awards is a Teams app template that provides a positive framework to foster recognition and encourage the culture of employee appreciation in the modern workplace. The app enables you to setup and manage an employee rewards and recognition (R&R) program where employees can easily nominate and endorse colleagues and your R&R leader can view submitted nominations, grant awards, and announce recipients.
+Workplace Awards is a Teams app template that provides a positive framework to foster recognition and encourage the culture of employee appreciation in the modern workplace. The app enables you to setup and manage an employee rewards and recognition, called R&R program where employees can easily nominate and endorse colleagues and your R&R leader can view submitted nominations, grant awards, and announce recipients.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-apps-workplaceawards)
Workplace Awards is a Teams app template that provides a positive framework to f
:::column-end::: :::row-end:::
-Have an idea for an app template you'd like to see? [Please let us know](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2_7qFm_lcZAr4eqEhnLsZ9UMVZGT1lCT0FXUDdZMUM0RkpBS1BESTAwWC4u).
+For more information on app template, see [App template](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2_7qFm_lcZAr4eqEhnLsZ9UMVZGT1lCT0FXUDdZMUM0RkpBS1BESTAwWC4u).
+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Integrate Web Apps Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/integrate-web-apps-overview.md
+
+ Title: Integrate web apps
+
+description: An overview of integrating web applications and device capabilities with Microsoft Teams app.
++++
+# Integrate web apps
+
+You can provide an enriched user experience by integrating the features of an existing web application into Microsoft Teams platform. Ensure to follow [Teams design guidelines](~/concepts/design/understand-use-cases.md) to make your app native to Teams.
+This document gives an overview of prerequisites to integrate web applications with Teams, Power platform to create Power apps, Power Virtual Agents, Virtual Assistant, app templates, Shift connectors, Moodle LMS, creating a Share-to-Teams button for your website, adding a Microsoft Teams tab in SharePoint, creating deep links, and integrating device capabilities.
+
+## Prerequisites
+
+For effective integration, ensure to have a better understanding of the following prerequisites:
+* Teams capabilities.
+* SharePoint requirements for file and data storage.
+* API requirements.
+* Authentication.
+* Deep linking of your app with Teams.
+* Map your app's use cases to Teams platform capabilities.
+* Determine your app's entry points, such as personal use, collaboration, or both.
+
+## Low code platforms
+
+Low code platforms provide an intuitive approach to software development and require little or no coding to build applications and processes. You can create custom apps easily with low code platforms. These platforms consist of a visual interface, connectors to back end services, and a built-in app lifecycle management system to build, debug, deploy, and maintain applications. Microsoft provides the following innovative gateways to rapidly build Teams-compatible apps using low code attributes:
+* Microsoft Power platform
+* Microsoft Teams app templates
+
+## Microsoft Power platform
+
+Microsoft Power platform combines four robust Microsoft technologies, such as Power BI, Power Apps, Power Automate, and Power Virtual Agents in one powerful application platform. These technologies empower you to build solutions, automate processes, analyze data, and create virtual agents within a unified and integrated environment.
+
+### Power Apps
+
+With Power Apps, you can build business apps that connect to your business data and are tailored to your organization's needs. Power Apps enable a wide range of app scenarios to solve business challenges through canvas apps. After building the app, you can export it from the Power Apps maker portal and embed in Microsoft Teams.
+
+### Power Virtual Agents
+
+Power Virtual Agent is a no code, guided graphical interface solution. It is built on the Microsoft Power Platform and the Bot Framework. It empowers every member of your team to create and maintain rich conversational chatbots that easily integrate with the Teams platform. You can design, develop, and publish intelligent virtual agents for Teams without having to setup a development environment, create a web service, or directly register with the Bot Framework.
+
+### Create Virtual Assistant
+
+Virtual Assistant is a Microsoft open-source template that enables you to create a robust conversational solution while maintaining full control of user experience, organizational branding, and necessary data.
+
+## App templates
+
+You can use app template to create custom made apps to suit your organizational needs. These are production-ready apps for Microsoft Teams that are community driven, open-source, and available on GitHub. Each template contains detailed instructions to deploy and install the app for your organization. It provides a ready-to-use application that you can install and start using immediately.
+
+## Teams Shifts Work Force Management connectors
+
+Teams Shifts Work Force Management connectors are production-ready, open-source, and community-driven integrations. They offer a seamless experience and quick process for the digital transformation of firstline workers with Teams Shifts.
+
+## Install Moodle LMS
+
+Moodle is a popular open-source Learning Management System (LMS). It is now integrated with Microsoft Teams. This integration helps educators and teachers to collaborate around Moodle courses, ask questions about grades and assignments, and stay updated with notifications directly within Teams.
+
+## Create a Share-to-Teams button for your website
+
+Third-party websites can use the launcher script to embed Share to Teams buttons on their webpages. When you select the button, it launches the Share to Teams experience in a pop-up window. This allows you to share a link directly to any person or Microsoft Teams channel without switching context.
+
+## Add a Microsoft Teams tab in SharePoint
+
+You can get a rich integration experience between Microsoft Teams and SharePoint by adding a Microsoft Teams tab in SharePoint as an SPFx web part.
+
+## Create deep link
+
+You can create deep links to the entities in Teams. You can create links to information and features within Teams. These deep links navigate to content and information within your tab. You can use deep links to link your app with Teams as they tie together multiple pieces of an app for a more native Teams experience.
+
+## Integrate device capabilities
+
+Microsoft Teams platform is continuously enhancing developer capabilities aligning with built-in first-party experiences. The enhanced Teams platform allows partners to access and integrate the native device capabilities, such as camera, QR or barcode scanner, photo gallery, microphone, and location using dedicated APIs available in Microsoft Teams JavaScript client SDK.
+
+## See also
+
+> [!div class="nextstepaction"]
+> [Map your app's use cases to Teams platform capabilities](~/concepts/design/map-use-cases.md)
+
+> [!div class="nextstepaction"]
+> [Determine your app's entry points](~/concepts/extensibility-points.md)
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrating-web-apps.md)
+
+> [!div class="nextstepaction"]
+> [Create low-code custom apps for Microsoft Teams](~/samples/teams-low-code-solutions.md)
+
+> [!div class="nextstepaction"]
+> [Add a Power Virtual Agents chatbot](~/bots/how-to/add-power-virtual-agents-bot-to-teams.md)
+
+> [!div class="nextstepaction"]
+> [Create virtual assistant](~/samples/virtual-assistant.md)
+
+> [!div class="nextstepaction"]
+> [App templates for Microsoft Teams](~/samples/app-templates.md)
+
+> [!div class="nextstepaction"]
+> [Production-ready Shift Connectors](~/samples/shifts-wfm-connectors.md)
+
+> [!div class="nextstepaction"]
+> [Install Moodle LMS](~/resources/moodleinstructions.md)
+
+> [!div class="nextstepaction"]
+> [Create a Share-to-Teams button](~/concepts/build-and-test/share-to-teams.md)
+
+> [!div class="nextstepaction"]
+> [Add a Teams tab to SharePoint](~/tabs/how-to/tabs-in-sharepoint.md)
+
+> [!div class="nextstepaction"]
+> [Create deep links](~/concepts/build-and-test/deep-links.md)
+
+> [!div class="nextstepaction"]
+> [Device capabilities](~/concepts/device-capabilities/device-capabilities-overview.md)
platform Integrating Web Apps https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/integrating-web-apps.md
description: Best practices for integrating existing web apps with Microsoft Teams Last updated 08/26/2020
+localization_priority: Normal
Title: Integrate a web app with Microsoft Teams
+ Title: Web apps
-# Integrate web apps with Teams
+# Web apps
-Do you have a web app you think would fit naturally with Teams' social and collaborative features? These guidelines can help you understand how to integrate the following types of apps:
-
-* **Standalone apps**: Could be a single-page app or large, complex app you want people to use some aspects of in Teams.
+You can make web apps suitable with Teams' social and collaborative features, by properly integrating them with Teams.
+
+The different types of apps which you can integrate with Teams are as follows:
+* **Standalone apps**: A stand alone app is a single-page or large, and complex app. The user can use some aspects of it in Teams.
* **Collaboration apps**: An app already built for the social and collaborative features inherent to Teams. * **SharePoint**: A SharePoint page you want to surface in Teams.
-For each guideline, you can see if it's applicable to your integration scenario.
-
+You can map and follow the appropriate guideline applicable to your integration scenario.
+This document gives an overview of Teams capabilities, share-point requirements for file and data storage, API requirements, authentication and deep-linking of your app with Teams.
+
## Get to know Teams platform capabilities ***Integration scenarios**: Standalone apps, collaboration apps, SharePoint*
-Your Teams app can include features users want and might expect when collaborating, but you may be unfamiliar with Teams development terminology.
+Your Teams app must include required and expected collaborative features. To work with app integration, it is important to familiarize with Teams development terminology.
|Common app features |Teams platform capabilities | |-|--|
Your Teams app can include features users want and might expect when collaborati
***Integration scenarios**: Standalone apps*
-Integrating all features of an existing application into Teams often leads to a forced or unnatural user experience, particularly in larger apps. Consider starting with the most impactful features and those that will integrate more naturally with Teams. Remember, you can always allow users to launch the main app and access its full set of features.
+Integrating all features of an existing application into Teams often leads to a forced or unnatural user experience, particularly in larger apps. Start with the most impactful features and those that integrates more naturally with Teams. You can allow users to launch the main app and access its full set of features.
-Before you begin any technical work, do some planning for your Teams app:
+**Prerequisites to integrate your app with Teams**
+Following are the prerequisites to integrate your app with Teams.
1. [Map your app's use cases to Teams platform capabilities](../concepts/design/map-use-cases.md). 1. [Determine your app's entry points](../concepts/extensibility-points.md). Is it for personal use, collaboration, or both?
Before you begin any technical work, do some planning for your Teams app:
***Integration scenarios**: SharePoint*
-You can integrate an existing [SharePoint page](https://docs.microsoft.com/MicrosoftTeams/teams-standalone-static-tabs-using-spo-sites) as a Teams tab. Remember the following:
+To integrate an existing [SharePoint page](https://docs.microsoft.com/MicrosoftTeams/teams-standalone-static-tabs-using-spo-sites) as a Teams tab, you must consider the following:
-* It must be a *modern* SharePoint Online page
-* Only personal tabs are supported (you can't integrate your page as a channel tab)
+* It must be a *modern* SharePoint online page.
+* Only personal tabs are supported. You cannot integrate your page as a channel tab.
Alternatively, you can build a Teams tab [using the SharePoint Framework](https://docs.microsoft.com/sharepoint/dev/spfx/integrate-with-teams-introduction).
Alternatively, you can build a Teams tab [using the SharePoint Framework](https:
***Integration scenarios**: Standalone apps, collaboration apps, SharePoint*
-If your app is used by multiple organizations, consider multi-tenant hosting that would make your product scalable and greatly simplify distribution.
+If your app is used by multiple organizations, consider multi-tenant hosting that makes your product scalable and greatly simplify the distribution.
## Review your APIs ***Integration scenarios**: Standalone apps, collaboration apps*
-Don't assume your app's existing APIs and data structures fully support the app when integrated with Teams. You might need to augment these with contextual information about Teams for [identity mapping](../concepts/authentication/configure-identity-provider.md), [deep-link support](../concepts/build-and-test/deep-links.md), and [incorporating Microsoft Graph](https://docs.microsoft.com/graph/teams-concept-overview).
+You must make your app's existing APIs and data structures support the app when integrating with Teams. To extend the support, you must augment the APIs and data structures with contextual information about Teams for [identity mapping](../concepts/authentication/configure-identity-provider.md), [deep-link support](../concepts/build-and-test/deep-links.md), and [incorporating Microsoft Graph](https://docs.microsoft.com/graph/teams-concept-overview).
Learn more about getting context for your Teams [tab](../tabs/how-to/access-teams-context.md) or [bot](../bots/how-to/get-teams-context.md).
Learn more about getting context for your Teams [tab](../tabs/how-to/access-team
***Integration scenarios**: Standalone apps, collaboration apps, SharePoint*
-Azure Active Directory (AD) is the identity provider for Teams. If your app uses a different identity provider, you must either do an identity mapping exercise or federate with Azure AD.
+Azure Active Directory (AD) is the identity provider for Teams. If your app uses a different identity provider, you must either do an identity mapping exercise or combine with Azure AD.
-Teams has single sign-on (SSO) mechanisms with Azure AD for third-party apps and guidance for authentication flows to other identity providers using standards such as OAuth and Open ID Connect (OIDC).
+Teams has single sign-on (SSO) mechanisms with Azure AD for third-party apps. It also provides the guidance for authentication flows to other identity providers using standards such as OAuth and Open ID Connect, known as OIDC.
-For SharePoint pages, you can only use SSO and can't add another Azure AD ID if you want SSO to work for another app (since the ID is the SharePoint app).
+For SharePoint pages, you can only use SSO and cannot add another Azure AD ID if you want SSO to work for another app as the ID is the SharePoint app.
Learn more about [authentication in Teams](../concepts/authentication/authentication.md).
Learn more about [authentication in Teams](../concepts/authentication/authentica
***Integration scenarios**: Standalone apps, collaboration apps*
-In general, your app should feel natural in Teams. You might think migrating existing app content to a Teams tab is sufficient, but we strongly recommend your app follows [Teams design guidelines](../concepts/design/understand-use-cases.md). See also: [Fluent Design System](https://fluentsite.z22.web.core.windows.net/).
+Ensure to follow [Teams design guidelines](../concepts/design/understand-use-cases.md) to make your app native to Teams. You cannot migrate an existing app content to a Teams tab. For more information on app design, see [Fluent Design System](https://fluentsite.z22.web.core.windows.net/).
## Maximize deep linking ***Integration scenarios**: Standalone apps, collaboration apps, SharePoint*
-Almost everything in Teams can be linked to directly with a [deep link](../concepts/build-and-test/deep-links.md). Your app should maximize use of these, including linking to and from specific messages and tab content. Deep links can really tie together multiple pieces of an app for a more native Teams experience.
+You can create links to information and features within Teams. Use [deep links](../concepts/build-and-test/deep-links.md) to link your app with Teams as they tie together multiple pieces of an app for a more native Teams experience.
## Be smart when messaging users ***Integration scenarios**: Standalone apps, collaboration apps, SharePoint*
-Consider the types of messages your Teams app might send now and in the long term. If you think your app will ever have a multi-threaded conversation, a [bot](../bots/what-are-bots.md) might offer more flexibility than a [webhook](../webhooks-and-connectors/what-are-webhooks-and-connectors.md).
+Use a [bot](../bots/what-are-bots.md) in your Teams app for multi-threaded conversation, as it offers more flexibility than a [webhook](../webhooks-and-connectors/what-are-webhooks-and-connectors.md).
-Bots also allow you to send *proactive messages* to individual users or channels. These are unprompted messages triggered by an outside event and not a message sent to a bot. (For example, your bot can send a welcome message when it's installed or a new user joins a channel.)
+Bots also allow you to send **proactive messages** to individual users or channels. The proactive messages are unprompted messages triggered by an outside event and not a message sent to a bot. For example, your bot sends a welcome message when it is installed or a new user joins a channel.
-Sending proactive messages requires Teams-specific identifiersΓÇöyou can capture this information by [fetching roster or user profile data](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile), [subscribing to conversation events](../bots/how-to/conversations/subscribe-to-conversation-events.md), or using [Microsoft Graph](https://docs.microsoft.com/graph/teams-proactive-messaging).
+Sending proactive messages requires Teams-specific identifiers. You can capture the information by [fetching roster or user profile data](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile), [subscribing to conversation events](../bots/how-to/conversations/subscribe-to-conversation-events.md), or using [Microsoft Graph](https://docs.microsoft.com/graph/teams-proactive-messaging).
-Be careful not to spam users with excessive messages. If the Teams capability supports it, consider letting users configure notification settings for your app (for example, "Don't send me unprompted messages.").
+Do not spam users with excessive messages. If the Teams capability supports it, the users can configure notification settings for your app.
+Following is an example of a notification message:
+**Don't send me unprompted messages**.
## Use SharePoint for file and data storage ***Integration scenarios:** Standalone apps, collaboration apps, SharePoint pages*
-When a team is created, a [SharePoint site collection](https://docs.microsoft.com/microsoftteams/sharepoint-onedrive-interact) is also provisioned to support file and data storage for that team. Your app can and should leverage this feature if it interacts with files. You can also use the site collection to store raw data in SharePoint Lists and Excel.
+When a team is created, a [SharePoint site collection](https://docs.microsoft.com/microsoftteams/sharepoint-onedrive-interact) is also provisioned to support file and data storage for that team. Your app must leverage this feature if it interacts with files. Use the site collection to store raw data in SharePoint Lists and Excel.
+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Shifts Wfm Connectors https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/shifts-wfm-connectors.md
Title: Teams Shifts Connectors
+ Title: Production-ready Shifts Connectors
description: Workforce management Shifts connectors for Teams Last updated 03/09/2020
+localization_priority: Normal
keywords: Microsoft Teams connectors kronos
-# Microsoft Teams Shifts WFM connectors
+# Production-ready Shifts Connectors
-## Workforce management connectors (WFM) for firstline workers
+Teams Shifts Workforce management (WFM) connectors are production-ready, open-source, and community-driven integrations, useful for firstline workers. They offer a seamless experience and quick process for the digital transformation of firstline workers with Teams Shifts.
-Teams Shifts WFM connectors are production-ready, open-source, and community-driven integrations that offer a seamless experience and quick process for the digital transformation of firstline workers with Teams Shifts.
+Each connector provides detailed guidance for deployment and integration to your organization. The complete source code is available in GitHub repository. You can explore in detail or fork, and customize to meet your specific needs.
-Each connector provides detailed guidance for deployment and integration to your organization. The complete source code is available in our GitHub repo where it can be explored in detail and/or forked and tailored to meet your specific needs.
+This document gives an overview of key benefits of Teams Shifts WFM connectors, Kronos-to-Teams Shifts connector, and JDA-to-Teams Shifts connector.
-## Key benefits: Teams Shifts WFM connectors
+## Key benefits of Teams Shifts WFM connectors
-* **Plug and play experience.** All Shifts WFM connectors include ARM Azure deployment scripts that allow you to host all necessary services in Microsoft Azure. No coding is required to deploy the apps.
+Following are the key benefits of Teams Shifts WFM connectors:
-* **Production-ready code.** All  Shifts connectors conform to recommended security and infrastructure best practices and all community-submitted changes are reviewed to ensure continued conformance.
+* **Plug and play experience:** All Shifts WFM connectors include ARM Azure deployment scripts that allow you to host all necessary services in Microsoft Azure. No coding is required to deploy the apps.
-* **Customizable and extensible.**  While all Shifts WFM connectors are ready to deploy for immediate use, we provide the entire code base and deployment scripts so that you can easily customize or extend them to fit your unique needs.
+* **Production-ready code:** All  Shifts connectors conform to the recommended security and infrastructure best practices and all community-submitted changes are reviewed to ensure continued conformance.
-* **Detailed documentation & support.**  All Shifts WFM connectors are accompanied by end-to-end documentation for solution architecture, deployment, and configuration steps. The connector repositories are monitored, so please report any issues, challenges or difficulties you encounter through the repo's GitHub Issues tracker.
+* **Customizable and extensible:**  While all Shifts WFM connectors are ready to deploy for immediate use, with the entire code base and deployment scripts readily available. You can easily customize or extend them to fit your unique needs.
-* **Seamless integration.** The integration between WFM solutions and Teams Shifts allows firstline workers to use the Teams Shifts app to view/manage their schedules and shift times, and use all the other rich collaboration features provided in Teams right from their mobile device or desktop without having to switch context to another app.
+* **Detailed documentation & support:**  All Shifts WFM connectors are accompanied by end-to-end documentation for solution architecture, deployment, and configuration steps. The connector repositories are monitored, so that you can report any issues, challenges or difficulties you encounter through the repo's GitHub Issues tracker.
+
+* **Seamless integration:** The integration between WFM solutions and Teams Shifts allows firstline workers to use the Teams Shifts app to view or manage their schedules and shift times, and use all the other rich collaboration features provided in Teams right from their mobile device or desktop without having to switch context to another app.
+
+**Open shifts view in Teams**
+
+The shifts view in Teams is shown in the following image:
-**Open shifts view in Teams**
![Open shifts in Teams](../assets/images/teams-open-shifts-view.png) ## Kronos-to-Teams Shifts connector
-With open-source code, you can integrate Kronos Workforce Central Version 8.1 and above, with Teams Shifts (desktop/mobile Teams app) for the following firstline worker and manager scenarios:
+With open-source code, you can integrate Kronos Workforce Central Version 8.1 and above, with Teams Shifts such as, desktop or mobile Teams app for the following firstline worker and manager scenarios:
-1. View schedule.
+* View schedule.
-1. Publish and request open shifts.
+* Publish and request open shifts.
-1. Swap shifts.
+* Swap shifts.
-1. Request time off.
+* Request time off.
-1. Offer shifts.
+* Offer shifts.
-[Get it on GitHub]( https://aka.ms/KronosShiftsConnector)
+For more information on deployment of Kronos-to-Teams Shifts connector, see [Get it on GitHub](https://aka.ms/KronosShiftsConnector).
## JDA-to-Teams Shifts connector
-With open-source code, you can integrate JDA (BlueYonder) Version 17.2 and above, with Teams Shifts (desktop/mobile Teams app) for the following firstline worker and manager scenarios:
+With open-source code, you can integrate JDA, such as BlueYonder Version 17.2 and above, with Teams Shifts such as, desktop or mobile Teams app for the following firstline worker and manager scenarios:
+
+* Publish shifts and schedule groups in JDA and view them in Teams.
+
+* Enable rich scheduling scenarios, including requesting shift swaps and time off.
-1. Publish shifts and schedule groups in JDA and view in Teams.
+* Set user availability using the [Microsoft Graph API for Shifts](/graph/api/resources/shift?view=graph-rest-beta&preserve-view=true).
-1. Enable rich scheduling scenarios, including requesting shift swaps and time off.
+For more information on contribution and suggestion, see [Get it on GitHub](https://aka.ms/JDAShiftsConnector).</br></br>
-1. Set user availability using the [Microsoft Graph API for Shifts](/graph/api/resources/shift?view=graph-rest-beta) .
+## See also
-[Get it on GitHub](https://aka.ms/JDAShiftsConnector)</br></br>
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Teams Low Code Solutions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/teams-low-code-solutions.md
Title: Low code solutions for Teams custom apps
+ Title: Create low-code custom apps for Microsoft Teams
description: Detail the available Microsoft low and no code solutions for Teams
+localization_priority: Normal
# Create low-code custom apps for Microsoft Teams
-[Microsoft Teams](/microsoftteams/platform) is both extensible and adaptive. This means that you have the freedom to build custom applications for Teams that meet the distinct needs of your users. Although you can create apps from scratch, with today's demand for speedy solutions, a low-code option may be just what you need to build elegant apps within a compressed time frame.
+Microsoft Teams is extensible and adaptive. This means that you can build custom applications for Teams that meet the distinct needs of your users. The low code custom apps save time, provide speedy solutions and meet the demand than the apps created from scratch. This document gives an overview of Microsoft Power Platform, Power Virtual Agents chatbot and Virtual Assistant.
-Low code platforms provide an intuitive approach to software development and require little or no coding to build applications and processes. Novice developers are enabled to easily build custom apps and professional developers can accelerate the app development and deployment process exponentially. Most low-code platforms consist of a visual interface, connectors to back-end services, and a built in app lifecycle management system to build, debug, deploy and maintain applications. Microsoft provides several innovative gateways to rapidly build great Teams-compatible apps using low-code attributes:
-
-1. [Microsoft Power Platform](#teams-and-microsoft-power-platform)
-1. [Microsoft Teams app templates](#teams-app-templates)
+Low code platforms provide an intuitive approach to software development and require little or no coding to build applications and processes. They allow the developers without experience, to build custom apps easily with little or no coding, and professional developers to develop and deploy the app quickly. These platforms consist of a visual interface, connectors to backend services, and a built-in app lifecycle management system to build, debug, deploy and maintain applications. Microsoft Power Platform is the innovative gateway to rapidly build Teams compatible apps using low code attributes.
## Teams and Microsoft Power Platform
-[Microsoft Power Platform](/power-platform) combines four robust Microsoft technologies in one powerful application platform. Power BI, Power Apps, Power Automate (formerly Microsoft Flow) and Power Virtual Agents empower you to build solutions, automate processes, analyze data, and create virtual agents within a unified and integrated environment:
+Microsoft Power Platform combines four robust Microsoft technologies, such as Power BI, Power Apps, Power Automate, formerly Microsoft Flow and Power Virtual Agents in one powerful application platform. These technologies empower you to build solutions, automate processes, analyze data, and create virtual agents within a unified and integrated environment:
:::image type="content" source="../assets/images/power-platform-and-teams/ms-power-platform.png" alt-text="Power platform services":::
+> [!NOTE]
+> You must not use Microsoft Power Platform to create apps that are to be published to the Teams app store. Microsoft Power Platform apps can be published to an organizationΓÇÖs app store only.
+ ### Γ£ö Teams and Power BI
-The [Power BI tab for Microsoft Teams](https://powerbi.microsoft.com/blog/announcing-new-power-bi-tab-for-microsoft-teams/) adds support for reports in the Teams workspace and allows users to [share interactive Power BI content](/power-bi/collaborate-share/service-embed-report-microsoft-teams) and [collaborate with others in Teams](/power-bi/collaborate-share/service-collaborate-microsoft-teams) channels and chats. You can create packaged [Power BI app](/power-bi/collaborate-share/service-create-distribute-apps) content from scratch and distribute it as an app or you can [create a template app in Power BI](/connect-data/service-template-apps-create). Additionally, use the new [Power BI app in Teams](https://go.microsoft.com/fwlink/?linkid=2143643) to bring your entire basic Power BI service experience into Teams.
+The [Power BI tab for Microsoft Teams](https://powerbi.microsoft.com/blog/announcing-new-power-bi-tab-for-microsoft-teams/) adds support for reports in the Teams workspace and allows users to [share interactive Power BI content](/power-bi/collaborate-share/service-embed-report-microsoft-teams) and [collaborate with others in Teams](/power-bi/collaborate-share/service-collaborate-microsoft-teams) channels and chats. You can create packaged [Power BI app](/power-bi/collaborate-share/service-create-distribute-apps) content from scratch and distribute it as an app or [create a template app in Power BI](/connect-data/service-template-apps-create). Additionally, use the new [Power BI app in Teams](https://go.microsoft.com/fwlink/?linkid=2143643) to bring your entire basic Power BI service experience into Teams.
### Γ£ö Teams and Power Apps
-With [Power Apps](/powerapps/powerapps-overview), you can build business apps that connect to your business data and are tailored to your organization's needs. Power Apps enables a wide range of app scenarios to solve business challenges via [canvas apps](/powerapps/maker/#canvas-apps). Once your app is built, it can be exported from the Power Apps maker portal and [embedded in Microsoft Teams](/power-platform/admin/embed-app-teams).
+With [Power Apps](/powerapps/powerapps-overview), you can build business apps that connect to your business data and are tailored to your organization's needs. Power Apps enable a wide range of app scenarios to solve business challenges through [canvas apps](/powerapps/maker/#canvas-apps). After building, you can export the app from the Power Apps maker portal and [embed in Microsoft Teams](/power-platform/admin/embed-app-teams).
-The new [Power Apps app](https://go.microsoft.com/fwlink/?linkid=2143374) in Teams provides an integrated experience for app makers to create and edit apps and workflows within Teams and quickly publish and share them for anyone on the team to use without having to switch between multiple apps and services.
+The new [Power Apps app](https://go.microsoft.com/fwlink/?linkid=2143374) in Teams provides an integrated experience for app makers to create and edit apps and workflows within Teams. They can quickly publish and share the apps to team members. The members can use the apps without having to switch between multiple apps and services.
### Γ£ö Teams and Power Automate
-With the [Power Automate app in Teams](/power-automate/flows-teams), you can [create flows to automate repetitive work tasks](https://flow.microsoft.com/connectors/shared_teams/microsoft-teams/) directly within the Teams environment. You can [trigger a flow from any message in Microsoft Teams](/power-automate/trigger-flow-teams-message) and [use adaptive cards within Power Automate](/power-automate/create-adaptive-cards). Additionally, you can build flows to customize and add further value to Microsoft Teams from within the new [Power Apps app](https://go.microsoft.com/fwlink/?linkid=2143539) in Teams.
+You can [create flows to automate repetitive work tasks](https://flow.microsoft.com/connectors/shared_teams/microsoft-teams/) directly within the Teams environment with the [Power Automate app in Teams](/power-automate/flows-teams). You can [trigger a flow from any message in Microsoft Teams](/power-automate/trigger-flow-teams-message) and [use Adaptive Cards within Power Automate](/power-automate/create-adaptive-cards). Additionally, you can build flows to customize and add further value to Microsoft Teams from within the new [Power Apps app](https://go.microsoft.com/fwlink/?linkid=2143539) in Teams.
### Γ£ö Teams and Power Virtual Agents
-[Power Virtual Agents](/power-virtual-agents/fundamentals-what-is-power-virtual-agents) is a no-code, guided graphical interface solution, built on the Microsoft Power Platform and the Bot Framework, that empowers every member of your team to create and maintain rich, conversational chatbots that easily integrate with the Teams platform. All content authored in Power Virtual Agents renders naturally in Teams and Power Virtual Agents bots engage with users in the Teams native chat canvas. You can [integrate your Power Virtual Agents chatbot](/power-virtual-agents/publication-add-bot-to-microsoft-teams) to Teams via the [Power Virtual Agents portal](https://powervirtualagents.microsoft.com).
-
-With the new [Power Virtual Agents app](https://aka.ms/pva-teams-docs) in Teams, you can create, manage, and publish conversational chatbots easily from within Teams and share your bots with other people in your organization so they can chat and have their questions answered.
-
-## Teams app templates
--
-### Γ£ö App template catalog
+[Power Virtual Agents](/power-virtual-agents/fundamentals-what-is-power-virtual-agents) is a no code, guided graphical interface solution, built on the Microsoft Power Platform and the Bot Framework. It empowers every member of your team to create and maintain rich, conversational chatbots that easily integrate with the Teams platform. All content authored in Power Virtual Agents renders naturally in Teams and Power Virtual Agents bots engage with users in the Teams native chat canvas. You can [integrate your Power Virtual Agents chatbot](/power-virtual-agents/publication-add-bot-to-microsoft-teams) to Teams through the [Power Virtual Agents portal](https://powervirtualagents.microsoft.com).
-[App templates](../samples/app-templates.md) are production-ready apps for Microsoft Teams that are community driven, open-source, and available on GitHub. Each template contains detailed instructions for deploying and installing the app for your organization, providing a ready-to-use application that you can install and begin using immediately. The complete source code is available as well, so you can explore it in detail, or fork the code and alter it to meet your specific needs.
+Use the new [Power Virtual Agents app](https://aka.ms/pva-teams-docs) in Teams, to create, manage, and publish conversational chatbots easily from within Teams. You can share your bots with other people in your organization to chat and get answers for their questions.
### Γ£ö Virtual Assistant for Teams Virtual Assistant is a Microsoft open-source template that enables you to create a robust conversational solution while maintaining full control of user experience, organizational branding, and necessary data. You can configure your virtual assistant for [integration into the Teams environment](https://microsoft.github.io/botframework-solutions/clients-and-channels/tutorials/enable-teams/1-intro).
-## Additional Resources
--
-### Γ£ö Teams Shift Connectors
-
-[Teams Shifts Work Force Management connectors](../samples/shifts-wfm-connectors.md) are production-ready, open-source, and community-driven integrations that offer a seamless experience and quick process for the digital transformation of firstline workers with Teams Shifts. Each connector provides detailed guidance for deployment and integration to your organization. The complete source code is available in our GitHub repo where it can be explored in detail and/or forked and tailored to meet your specific needs.
- ### Γ£ö Power Platform Learn modules
-|Topic|
-|--|
-|**Power BI**|
-|[Power BI for App Makers](/learn/browse/?expanded=power-platform&products=power-bi&roles=maker)|
-|[Power BI for Developers](/learn/browse/?expanded=power-platform&products=power-bi&roles=developer)|
-|**Power Apps**|
-|[Power Apps for App Makers](/learn/browse/?products=power-apps&roles=maker)|
-|[Power Apps for Developers](/learn/browse/?products=power-apps)|
-|**Power Automate**|
-|[Power Automate for App Makers](/learn/browse/?expanded=power-platform&products=power-automate&roles=maker)|
-|[Power Automate for Developers](/learn/browse/?expanded=power-platform&products=power-automate&roles=developer)|
-|**Power Virtual Agents**|
-|[Power Virtual Agents for App Makers and Developers](/learn/browse/?products=power-virtual-agents&expanded=power-platform&roles=maker)
+| Topic | Links |
+|:|:-|
+|Power BI|[Power BI for App Makers](/learn/browse/?expanded=power-platform&products=power-bi&roles=maker)</br>[Power BI for Developers](/learn/browse/?expanded=power-platform&products=power-bi&roles=developer)|
+|Power Apps|[Power Apps for App Makers](/learn/browse/?products=power-apps&roles=maker)</br>[Power Apps for Developers](/learn/browse/?products=power-apps)|
+|Power Automate|[Power Automate for App Makers](/learn/browse/?expanded=power-platform&products=power-automate&roles=maker)</br>[Power Automate for Developers](/learn/browse/?expanded=power-platform&products=power-automate&roles=developer)|
+|Power Virtual Agents|[Power Virtual Agents for App Makers and Developers](/learn/browse/?products=power-virtual-agents&expanded=power-platform&roles=maker)|
### Γ£ö Project Oakdale (preview)
Virtual Assistant is a Microsoft open-source template that enables you to create
> Project **Oakdale** is renamed to project **Dataverse for Teams**. [Project Oakdale](https://techcommunity.microsoft.com/t5/microsoft-teams-blog/teams-is-shaping-the-future-of-work-with-low-code-features-to/ba-p/1507180
-) is a new low-code data platform coming soon to Microsoft Teams. It will allow developers to create Teams Power Platform solutions directly within Teams. *See* [Teams Blog Microsoft Project Oakdale](https://powerapps.microsoft.com/blog/introducing-project-oakdale-a-new-low-code-data-platform-for-microsoft-teams).
+) is a new low code data platform coming soon to Microsoft Teams. It allows developers to create Teams Power Platform solutions directly within Teams. For more information on Project Oakdale, see [Teams Blog Microsoft Project Oakdale](https://powerapps.microsoft.com/blog/introducing-project-oakdale-a-new-low-code-data-platform-for-microsoft-teams).
### Γ£ö Microsoft Blog insights
Virtual Assistant is a Microsoft open-source template that enables you to create
> [!div class="nextstepaction"] > [Manage Microsoft Power Platform apps in the Microsoft Teams admin center](/microsoftteams/manage-power-platform-apps)+
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Virtual Assistant https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/virtual-assistant.md
Title: Virtual Assistant for Microsoft Teams
+ Title: Create Virtual Assistant
description: How to create Virtual Assistant bot and skills for use in Microsoft Teams
+localization_priority: Normal
keywords: teams virtual assistant bots
-# Virtual Assistant for Microsoft Teams
+# Create Virtual Assistant
-Virtual Assistant is a Microsoft open-source template that enables you to create a robust conversational solution while maintaining full control of user experience, organizational branding, and necessary data. The [Virtual Assistant core template](https://microsoft.github.io/botframework-solutions/overview/virtual-assistant-template) is the basic building block that brings together the Microsoft technologies required to build a Virtual Assistant, including the [Bot Framework SDK](https://github.com/microsoft/botframework-sdk), [Language Understanding (LUIS)](https://www.luis.ai/), [QnA Maker](https://www.qnamaker.ai/), as well as essential capabilities including skills registration, linked accounts, basic conversational intent to offer end users a range of seamless interactions and experiences. In addition, the template capabilities include rich examples of reusable conversational [skills](https://microsoft.github.io/botframework-solutions/overview/skills). Individual skills can be integrated in a Virtual Assistant solution to enable multiple scenarios. Using the Bot Framework SDK, Skills are presented in source code form enabling you to customize and extend as required. See [What is a Bot Framework Skill](https://microsoft.github.io/botframework-solutions/overview/skills/).
+Virtual Assistant is a Microsoft open-source template that enables you to create a robust conversational solution while maintaining full control of user experience, organizational branding, and necessary data. The [Virtual Assistant core template](https://microsoft.github.io/botframework-solutions/overview/virtual-assistant-template) is the basic building block that brings together the Microsoft technologies required to build a Virtual Assistant, including the [Bot Framework SDK](https://github.com/microsoft/botframework-sdk), [Language Understanding (LUIS)](https://www.luis.ai/), [QnA Maker](https://www.qnamaker.ai/). It also brings together the essential capabilities including skills registration, linked accounts, basic conversational intent to offer a range of seamless interactions and experiences to users. In addition, the template capabilities include rich examples of reusable conversational [skills](https://microsoft.github.io/botframework-solutions/overview/skills). Individual skills are integrated in a Virtual Assistant solution to enable multiple scenarios. Using the Bot Framework SDK, skills are presented in source code form, enabling you to customize and extend as required. For more information on skills of Bot Framework, see [What is a Bot Framework skill](https://microsoft.github.io/botframework-solutions/overview/skills/). This document guides you on Virtual Assistant implementation considerations for organizations, how to create a Teams focused Virtual Assistant, related example, code sample and limitations of Virtual Assistant.
+The following image displays the overview of virtual assistant:
![Virtual Assistant overview diagram](../assets/images/bots/virtual-assistant/overview.png)
Text message activities are routed to associated skills by the Virtual Assistant
## Implementation considerations
-The decision to add a Virtual Assistant can include many determinants and differ for each organization. Here are the factors that support implementing a Virtual Assistant for your organization:
+The decision to add a Virtual Assistant includes many determinants and differs for each organization. The supporting factors of a Virtual Assistant implementation for your organization are as follows:
-- A central team manages all employee experiences and has the capability to build a Virtual Assistant experience and manage updates to the core experience including the addition of new skills.-- Multiple applications exist across business functions and/or the number is expected to grow in the future.-- Existing applications are customizable, owned by the organization, and can be converted into skills for a Virtual Assistant.-- The central employee-experiences team is able to influence customizations to existing apps and provide necessary guidance for integrating existing applications as skills in Virtual Assistant experience
+* A central team manages all employee experiences. It has the capability to build a Virtual Assistant experience and manage updates to the core experience including the addition of new skills.
+* Multiple applications exist across business functions and the number is expected to grow in the future.
+* Existing applications are customizable, owned by the organization, and are converted into skills for a Virtual Assistant.
+* The central employee experiences team is able to influence customizations to existing apps. It also provides necessary guidance for integrating existing applications as skills in Virtual Assistant experience.
+The following image displays the business functions of Virtual Assistant:
![Central team maintains the assistant, and business function teams contribute skills](../assets/images/bots/virtual-assistant/business-functions.png) ## Create a Teams-focused Virtual Assistant
-Microsoft has published a [Visual Studio template](https://marketplace.visualstudio.com/items?itemName=BotBuilder.VirtualAssistantTemplate) for building Virtual Assistants and skills. With the Visual Studio template, you can create a Virtual Assistant, powered by a text-based experience with support for limited rich cards with actions. We have enhanced the Visual Studio base template to include Microsoft Teams platform capabilities and power great Teams app experiences. A few of the capabilities include support for rich adaptive cards, task modules, teams/group chats and messaging extensions. *See also*, [Tutorial: Extend Your Virtual Assistant to Microsoft Teams](https://microsoft.github.io/botframework-solutions/clients-and-channels/tutorials/enable-teams/1-intro/).
+Microsoft has published a [Visual Studio template](https://marketplace.visualstudio.com/items?itemName=BotBuilder.VirtualAssistantTemplate) for building Virtual Assistants and skills. With the Visual Studio template, you can create a Virtual Assistant, powered by a text based experience with support for limited rich cards with actions. We have enhanced the Visual Studio base template to include Microsoft Teams platform capabilities and power great Teams app experiences. A few of the capabilities include support for rich Adaptive Cards, task modules, teams or group chats and messaging extensions. For more information on extending Virtual Assistant to Microsoft Teams, see [Tutorial: Extend Your Virtual Assistant to Microsoft Teams](https://microsoft.github.io/botframework-solutions/clients-and-channels/tutorials/enable-teams/1-intro/).
+The following image displays the high level diagram of a Virtual Assistant solution:
![High-level diagram of a Virtual Assistant solution](../assets/images/bots/virtual-assistant/high-level-diagram.png)
-### Add adaptive cards to your Virtual Assistant
+### Add Adaptive Cards to your Virtual Assistant
-To dispatch requests properly, your Virtual Assistant needs to identify the correct LUIS model and corresponding skill associated with it. However, the dispatching mechanism cannot be used for card action activities since the LUIS model associated with a skill may not be trained for card action texts since these are fixed, pre-defined keywords, not utterances from a user.
+To dispatch requests properly, your Virtual Assistant must identify the correct LUIS model and corresponding skill associated with it. However, the dispatching mechanism cannot be used for card action activities as the LUIS model associated with a skill, is trained for card action texts. The card action texts are fixed, pre-defined keywords, and not commented from a user.
-We have resolved this by embedding skill information in the card action payload. Every skill should embed `skillId` in the `value` field of card actions. This is the best way to ensure that each card action activity carries the relevant skill information and Virtual Assistant can utilize this information for dispatching.
-
-Below is a card action data sample. By providing `skillId` in the constructor we ensure that skill information is always present in card actions.
+This drawback is resolved this by embedding skill information in the card action payload. Every skill should embed `skillId` in the `value` field of card actions. You must ensure that each card action activity carries the relevant skill information, and Virtual Assistant can utilize this information for dispatching.
+You must provide `skillId` in the constructor to ensure that the skill information is always present in card actions.
+A card action data sample code is shown in the following section:
```csharp public class CardActionData {
Below is a card action data sample. By providing `skillId` in the constructor we
}; ```
-Next, we introduce `SkillCardActionData` class in the Virtual Assistant template to extract `skillId` from the card action payload.
+Next, `SkillCardActionData` class in the Virtual Assistant template is introduces to extract `skillId` from the card action payload.
+A code snippet to extract `skillId` from card action payload is shown in the following section:
```csharp // Skill Card action data should contain skillId parameter
Next, we introduce `SkillCardActionData` class in the Virtual Assistant template
} ```
-Below is a code snippet to extract `skillId` from card action data. We implemented it as an extension method in the [Activity](https://github.com/microsoft/botframework-sdk/blob/master/specs/botframework-activity/botframework-activity.md) class.
+The implementation is done by an extension method in the [Activity](https://github.com/microsoft/botframework-sdk/blob/master/specs/botframework-activity/botframework-activity.md) class.
+A code snippet to extract `skillId` from card action data is shown in the following section:
```csharp public static class ActivityExtensions
Below is a code snippet to extract `skillId` from card action data. We implemen
} ```
-### Handle interruptions gracefully
+### Handle interruptions
-Virtual Assistant can handle interruptions in cases where a user tries to invoke a skill while another skill is currently active. we have introduced `TeamsSkillDialog` and `TeamsSwitchSkillDialog`, based on Bot Framework's [SkillDialog](https://github.com/microsoft/botframework-solutions/blob/5b46d73e220bbb4fba86c48be532e495535ca78a/sdk/csharp/libraries/microsoft.bot.solutions/Skills/SkillDialog.cs) and [SwitchSkillDialog](https://github.com/microsoft/botframework-solutions/blob/6d40fa8ae05f96b0c5e0464e01361a9e1deb696c/sdk/csharp/libraries/microsoft.bot.solutions/Skills/Dialogs/SwitchSkillDialog.cs), to enable users to switch a skill experience from card actions. To handle this request the Virtual Assistant prompts the user with a confirmation message to switch skills.
+Virtual Assistant can handle interruptions in cases where a user tries to invoke a skill while another skill is currently active. `TeamsSkillDialog`, and `TeamsSwitchSkillDialog`are introduced based on Bot Framework's [SkillDialog](https://github.com/microsoft/botframework-solutions/blob/5b46d73e220bbb4fba86c48be532e495535ca78a/sdk/csharp/libraries/microsoft.bot.solutions/Skills/SkillDialog.cs) and [SwitchSkillDialog](https://github.com/microsoft/botframework-solutions/blob/6d40fa8ae05f96b0c5e0464e01361a9e1deb696c/sdk/csharp/libraries/microsoft.bot.solutions/Skills/Dialogs/SwitchSkillDialog.cs). They enable users to switch a skill experience from card actions. To handle this request, the Virtual Assistant prompts the user with a confirmation message to switch skills.
![Confirmation prompt when switching to a new skill](../assets/images/bots/virtual-assistant/switch-skills-prompt.png)
-### Handling task module requests
+### Handle task module requests
To add task module capabilities to a Virtual Assistant, two additional methods are included in the Virtual Assistant activity handler: `OnTeamsTaskModuleFetchAsync` and `OnTeamsTaskModuleSubmitAsync`. These methods listen to task module-related activities from Virtual Assistant, identify the skill associated with the request, and forward the request to the identified skill.
-Request forwarding is done via the [SkillHttpClient](/dotnet/api/microsoft.bot.builder.integration.aspnet.core.skills.skillhttpclient?view=botbuilder-dotnet-stable&preserve-view=true), `PostActivityAsync` method. It returns the response as `InvokeResponse` which is parsed and converted to `TaskModuleResponse` .
+Request forwarding is done through the [SkillHttpClient](/dotnet/api/microsoft.bot.builder.integration.aspnet.core.skills.skillhttpclient?view=botbuilder-dotnet-stable&preserve-view=true), `PostActivityAsync` method. It returns the response as `InvokeResponse` which is parsed and converted to `TaskModuleResponse` .
+ ```csharp public static TaskModuleResponse GetTaskModuleRespose(this InvokeResponse invokeResponse)
Request forwarding is done via the [SkillHttpClient](/dotnet/api/microsoft.bot.
A similar approach is followed for card action dispatching and task module responses. Task module fetch and submit action data is updated to include `skillId`. Activity Extension method `GetSkillId` extracts `skillId` from the payload which provides details about the skill that needs to be invoked.
-Below is a code snippet for `OnTeamsTaskModuleFetchAsync` and `OnTeamsTaskModuleSubmitAsync` methods.
+The code snippet for `OnTeamsTaskModuleFetchAsync` and `OnTeamsTaskModuleSubmitAsync` methods are given in the following section:
```csharp // Invoked when a "task/fetch" event is received to invoke task module.
Below is a code snippet for `OnTeamsTaskModuleFetchAsync` and `OnTeamsTaskModule
} ```
-Additionally, all skill domains must be included in the `validDomains` section in Virtual Assistant's manifest file so that task modules invoked via a skill render properly.
+Additionally, you must include all skill domains in the `validDomains` section in Virtual Assistant's manifest file so that task modules invoked through a skill render properly.
-### Handling collaborative app scopes
+### Handle collaborative app scopes
-Teams apps can exist in multiple scopes including 1:1 chat, group chat, and channels. The core Virtual Assistant template is designed for 1:1 chats. As part of the onboarding experience Virtual Assistant prompts users for name and maintains user state. Since that onboarding experience is not suited for group chat/channel scopes it has been removed.
+Teams apps can exist in multiple scopes including 1:1 chat, group chat, and channels. The core Virtual Assistant template is designed for 1:1 chats. As part of the onboarding experience Virtual Assistant prompts users for name and maintains user state. Since that onboarding experience is not suited for group chat or channel scopes it has been removed.
-Skills should handle activities in multiple scopes (1:1 chat, group chat, and channel conversation). If any of these scopes are not supported, skills should respond with an appropriate message.
+Skills should handle activities in multiple scopes, such as 1:1 chat, group chat, and channel conversation. If any of these scopes are not supported, skills must respond with an appropriate message.
The following processing functions have been added to Virtual Assistant core: -- Virtual Assistant can be invoked without any text message from a group chat or channel.-- Articulations are cleaned (i.e., remove the necessary @mention of the bot) before sending the message to the dispatch module.
+* Virtual Assistant can be invoked without any text message from a group chat or channel.
+* Articulations are cleaned before sending the message to the dispatch module. For example, remove the necessary @mention of the bot.
```csharp if (innerDc.Context.Activity.Conversation?.IsGroup == true)
The following processing functions have been added to Virtual Assistant core:
} ```
-### Handling messaging extensions
+### Handle messaging extensions
-The commands for a messaging extension are declared in your app manifest file. The messaging extension user interface is powered by those commands. For a Virtual Assistant to power a messaging extension command (as an attached skill), a Virtual Assistant's own manifest must contain those commands. The commands from an individual skill's manifest should be added to the Virtual Assistant's manifest as well. The command ID provides information about an associated skill by appending the skill's app ID via a separator (`:`).
+The commands for a messaging extension are declared in your app manifest file. The messaging extension user interface is powered by those commands. For a Virtual Assistant to power a messaging extension command as an attached skill, a Virtual Assistant's own manifest must contain those commands. You must add the commands from an individual skill's manifest to the Virtual Assistant's manifest. The command ID provides information about an associated skill by appending the skill's app ID through a separator `:`.
-Below is a snippet from a skill's manifest file.
+The snippet from a skill's manifest file is shown in the following section:
```json "composeExtensions": [
Below is a snippet from a skill's manifest file.
.... ```
-And, below is the corresponding Virtual Assistant manifest file code snippet.
+The corresponding Virtual Assistant manifest file code snippet is shown in the following section:
```json "composeExtensions": [
And, below is the corresponding Virtual Assistant manifest file code snippet.
.... ```
-Once the commands are invoked by a user, the Virtual Assistant can identify an associated skill by parsing the command ID, update the activity by removing the extra suffix (`:<skill_id>`) from the command ID, and forward it to the corresponding skill. The code for a skill doesn't need to handle the extra suffix, thus, conflicts between command IDs across skills are avoided. With this approach, all the search and action commands of a skill within all contexts ("compose", "commandBox" and "message") can be powered by a Virtual Assistant.
+Once the commands are invoked by a user, the Virtual Assistant can identify an associated skill by parsing the command ID, update the activity by removing the extra suffix `:<skill_id>` from the command ID, and forward it to the corresponding skill. The code for a skill doesnot need to handle the extra suffix. Thus, conflicts between command IDs across skills are avoided. With this approach, all the search and action commands of a skill within all contexts, such as **compose**, **commandBox** and **message** are powered by a Virtual Assistant.
```csharp const string MessagingExtensionCommandIdSeparator = ":";
Once the commands are invoked by a user, the Virtual Assistant can identify an a
} ```
-Some messaging extension activities do not include the command ID. For example, `composeExtension/selectItem` contains only the value of the invoke tap action. To identify the associated skill, `skillId` is attached to each item card while forming a response for `OnTeamsMessagingExtensionQueryAsync`. (This is similar to the approach for [adding adaptive cards to your Virtual Assistant](#add-adaptive-cards-to-your-virtual-assistant).
+Some messaging extension activities do not include the command ID. For example, `composeExtension/selectItem` contains only the value of the invoke tap action. To identify the associated skill, `skillId` is attached to each item card while forming a response for `OnTeamsMessagingExtensionQueryAsync`. This is similar to the approach for [adding adaptive cards to your Virtual Assistant](#add-adaptive-cards-to-your-virtual-assistant).
```csharp // Invoked when a 'composeExtension/selectItem' invoke activity is received for compose extension query command.
Some messaging extension activities do not include the command ID. For example,
-## Example: Convert the Book-a-room app template to a Virtual Assistant skill
+## Example
-[Book-a-room](app-templates.md#book-a-room) is a [Microsoft Teams bot](../bots/what-are-bots.md) that lets users quickly find and reserve a meeting room for 30 (default), 60, or 90 minutes starting from the current time. The Book-a-room bot scopes to personal or 1:1 conversations.
+The following example shows how to convert the Book-a-room app template to a Virtual Assistant skill:
+Book-a-room is a Microsoft Teams that allows users quickly to find and reserve a meeting room for 30, 60, or 90 minutes starting from the current time. The default time is 30 minutes. The Book-a-room bot scopes to personal o**r 1:1 conversations.
+The following image displays a Virtual Assistant with a **book a room** skill:
![Virtual Assistant with a "book a room" skill](../assets/images/bots/virtual-assistant/book-a-room-skill.png)
-Followings are the delta changes introduced to convert it to a skill which can be attached to a Virtual Assistant. Similar guidelines can be followed to convert any existing v4 bot to a skill.
+Followings are the delta changes introduced to convert it to a skill which is attached to a Virtual Assistant. Similar guidelines are followed to convert any existing v4 bot to a skill.
### Skill manifest
-A skill manifest is a JSON file that exposes a skill's messaging endpoint, id, name, and other relevant metadata (this manifest is different than the manifest used for sideloading an app in Microsoft Teams) A Virtual Assistant requires a path to this file as an input to attach a skill. We have added the following manifest to the bot's wwwroot folder.
+A skill manifest is a JSON file that exposes a skill's messaging endpoint, ID, name, and other relevant metadata. This manifest is different than the manifest used for sideloading an app in Microsoft Teams. A Virtual Assistant requires a path to this file as an input to attach a skill. We have added the following manifest to the bot's wwwroot folder.
```bash botskills connect --remoteManifest "<url to skill's manifest>" ..
botskills connect --remoteManifest "<url to skill's manifest>" ..
Virtual Assistant's dispatch model is built on top of attached skills' LUIS models. The dispatch model identifies the intent for every text activity and finds out skill associated with it.
-Virtual Assistant requires skill's LUIS model (in `.lu` format) as an input while attaching a skill. LUIS json can be converted to `.lu` format using botframework-cli tool.
+Virtual Assistant requires skill's LUIS model in `.lu` format as an input while attaching a skill. LUIS json is converted to `.lu` format using botframework-cli tool.
```json botskills connect --remoteManifest "<url to skill's manifest>" --luisFolder "<path to the folder containing your Skill's .lu files>" --languages "en-us" --cs
Book-a-room bot has two main commands for users:
- `Book room` - `Manage Favorites`
-We have built a LUIS model understanding these two commands. Corresponding secrets need to be populated in `cognitivemodels.json`. The corresponding LUIS JSON file can be found [here](https://github.com/OfficeDev/microsoft-teams-apps-bookaroom/blob/nebhagat/microsoft-teams-apps-bookaroom-skill/Deployment/Resources/LU/book-a-meeting.json) and this is how the corresponding `.lu` file looks like.
+We have built a LUIS model by understanding these two commands. Corresponding secrets must be populated in `cognitivemodels.json`. The corresponding LUIS JSON file is found [here](https://github.com/OfficeDev/microsoft-teams-apps-bookaroom/blob/nebhagat/microsoft-teams-apps-bookaroom-skill/Deployment/Resources/LU/book-a-meeting.json).
+The corresponding `.lu` file is shown in the following section:
``` > ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Mar 31 2020 17:30:32 GMT+0530 (India Standard Time)
We have built a LUIS model understanding these two commands. Corresponding secre
> # RegEx entities ```
-With this approach, any command issues by a user to Virtual Assistant related to `book room` or `manage favorites` can be identified as a command associated with Book-a-room bot and is forwarded to this skill.
-On the other hand, Book-a-room room bot needs to use LUIS model to understand these commands if they are not typed as is (for example: `I want to manage my favorite rooms`).
+With this approach, any command issued by a user to Virtual Assistant related to `book room` or `manage favorites` are identified as a command associated with `Book-a-room` bot and is forwarded to this skill.
+On the other hand, `Book-a-room room` bot needs to use LUIS model to understand these commands if they are not typed full. For example: `I want to manage my favorite rooms`.
### Multi-Language support
-For this example, we have only created a LUIS model with English culture. You can create LUIS models corresponding to other languages and add entry to `cognitivemodels.json`.
+As an example, a LUIS model with only English culture is created. You can create LUIS models corresponding to other languages and add entry to `cognitivemodels.json`.
```json {
In parallel, add corresponding `.lu` file in luisFolder path. Folder structure s
| - book-a-meeting.lu ```
-Update botskills command as follows to modify `languages` parameter:
+To modify `languages` parameter, update botskills command as follows:
```json botskills connect --remoteManifest "<url to skill's manifest>" --luisFolder "<path to luisFolder>" --languages "en-us, your_language_culture" --cs ```
-Virtual Assistant uses `SetLocaleMiddleware` to identify current locale and invoke corresponding dispatch model. (Bot framework activity has locale field which is used by this middleware.) We recommend to use the same for your skill as well. Book-a-room bot does not use this middleware and instead gets locale from Bot framework activity's [clientInfo entity](https://github.com/microsoft/botframework-sdk/blob/master/specs/botframework-activity/botframework-activity.md#clientinfo).
+Virtual Assistant uses `SetLocaleMiddleware` to identify current locale and invoke corresponding dispatch model. Bot framework activity has locale field which is used by this middleware. You can use the same for your skill as well. Book-a-room bot does not use this middleware and instead gets locale from Bot framework activity's [clientInfo entity](https://github.com/microsoft/botframework-sdk/blob/master/specs/botframework-activity/botframework-activity.md#clientinfo).
### Claim validation
The allowed callers array can restrict which skill consumers can access the skil
``` "AllowedCallers": [ "*" ], ```
-Detailed documentation for adding claims validation to a skill can be found [here](https://docs.microsoft.com/azure/bot-service/skill-implement-skill?view=azure-bot-service-4.0&tabs=cs#claims-validator&preserve-view=true).
-### Card refresh limitation
+For more information on adding claims validation to a skill, see [add claims validation to skill](https://docs.microsoft.com/azure/bot-service/skill-implement-skill?view=azure-bot-service-4.0&tabs=cs#claims-validator&preserve-view=true).
-Updating activity (card refresh) is not supported yet via Virtual Assistant ([github issue](https://github.com/microsoft/botbuilder-dotnet/issues/3686)). Hence, we have replaced all card refresh calls (`UpdateActivityAsync`) with posting new card calls(`SendActivityAsync`).
+### Limitation of card refresh
+
+Updating activity, such as card refresh is not supported yet through Virtual Assistant ([github issue](https://github.com/microsoft/botbuilder-dotnet/issues/3686)). Hence, we have replaced all card refresh calls `UpdateActivityAsync` with posting new card calls `SendActivityAsync`.
### Card actions and task module flows
-To forward card action or task module activities to an associated skill, the skill needs to embed `skillId` to it.
-Book-a-room bot card action, task module fetch and submit action payloads are modified to contain `skillId` as a parameter.
+To forward card action or task module activities to an associated skill, the skill must embed `skillId` to it.
+`Book-a-room` bot card action, task module fetch and submit action payloads are modified to contain `skillId` as a parameter.
For more information refer [this](https://msteams-captain.visualstudio.com/xGrowth%20App%20Templates/_wiki/wikis/xGrowth.wiki/88/Virtual-Assistant-for-MS-Teams?anchor=rich-cards) section from this documentation. ### Handle activities from group chat or channel scope
-Book-a-room bot is designed for private chats (personal/1:1 scope) only. Since we have customized Virtual Assistant to support group chat and channel scopes, the Virtual Assistant might be invoked from these scopes and thus, Book-a-room bot might get activities for the same. Hence Book-a-room bot is customized to handle those activities. The check has been put in `OnMessageActivityAsync` methods of Book-a-room bot's activity handler.
+`Book-a-room bot` is designed for private chats, such as personal or 1:1 scope only. Since we have customized Virtual Assistant to support group chat and channel scopes, the Virtual Assistant must be invoked from the channel scopes and thus, `Book-a-room` bot must get activities for the same scope. Hence `Book-a-room`bot is customized to handle those activities. You can find the check in `OnMessageActivityAsync` methods of `Book-a-room` bot's activity handler.
```csharp protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
Book-a-room bot is designed for private chats (personal/1:1 scope) only. Since w
} ```
+You can also leverage existing skills from [Bot Framework Solutions repository](https://github.com/microsoft/botframework-solutions/tree/master/skills/csharp) or create a new skill altogether from scratch. For creating a new skill, see [tutorials to create a new skill](https://microsoft.github.io/botframework-solutions/overview/skills/). For Virtual Assistant and skills architecture documentation, see[Virtual Assistant and skills architecture](https://docs.microsoft.com/azure/bot-service/skills-conceptual?view=azure-bot-service-4.0&preserve-view=true).
+
+## Limitations of Virtual Assistant
+
+* **EndOfConversation**: A skill must send an `endOfConversation` activity when it finishes a conversation. Based on the activity, a Virtual Assistant ends context with that particular skill and gets back into Virtual Assistant's root context. For Book-a-room bot, there is no clear state where conversation is ended. Hence we have not sent `endOfConversation` from `Book-a-room` bot and when user wants to go back to root context they can simply do that by `start over` command.
+* **Card refresh**: Card refresh is not yet supported through Virtual Assistant.
+* **Messaging extensions**:
+ * Currently, a Virtual Assistant can support a maximum of ten commands for messaging extensions.
+ * Configuration of messaging extensions is not scoped to individual commands but for the entire extension itself. This limits configuration for each individual skill through Virtual Assistant.
+ * Messaging extensions command IDs have a maximum length of [64 characters](../resources/schem#composeextensions) and 37 characters are used for embedding skill information. Thus, updated constraints for command ID are limited to 27 characters.
+ You can also leverage existing skills from [Bot Framework Solutions repository](https://github.com/microsoft/botframework-solutions/tree/master/skills/csharp) or create a new skill altogether from scratch. Tutorials for the later can be found [here](https://microsoft.github.io/botframework-solutions/overview/skills/). Please refer to [documentation](https://docs.microsoft.com/azure/bot-service/skills-conceptual?view=azure-bot-service-4.0&preserve-view=true) for Virtual Assistant and skills architecture. ## Code sample
You can also leverage existing skills from [Bot Framework Solutions repository](
| Book-a-room bot skill code | Lets you quickly find and book a meeting room on the go. | | [View](https://github.com/nebhagat/msteams-virtual-assistant-dotnet) |
+## See also
+
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
-## Virtual Assistant known limitations
+> [!div class="nextstepaction"]
+> [Book-a-room](app-templates.md#book-a-room)
-- **EndOfConversation**. A skill should send an `endOfConversation` activity when it finishes a conversation. basis this activity, a Virtual Assistant ends context with that particular skill and gets back into Virtual Assistant's (root) context. For Book-a-room bot, there is no clear state where conversation can be ended. Hence we have not sent `endOfConversation` from Book-a-room bot and when user wants to go back to root context they can simply do that by `start over` command.-- **Card refresh**. Card refreshes is not yet supported through Virtual Assistant.-- **Messaging extensions**.:
- - Currently, a Virtual Assistant can support a maximum of ten commands for messaging extensions.
- - Configuration of messaging extensions is not scoped to individual commands but for the entire extension itself. This limits configuration for each individual skill through Virtual Assistant.
- - Messaging extensions command IDs have a maximum length of [64 characters](../resources/schem#composeextensions) and 37 characters will be used for embedding skill information. Thus, updated constraints for command ID are limited to 27 characters.
->
->
+> [!div class="nextstepaction"]
+> [Microsoft Teams bot](../bots/what-are-bots.md)
platform Tabs Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/design/tabs-mobile.md
Title: Tabs on mobile description: Describes the guidelines for designing tabs that work on mobile.
+localization_priority: Normal
keywords: teams design guidelines reference framework personal apps mobile tabs # Tabs on mobile
platform Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/design/tabs.md
Title: Designing your tab for desktop and web description: Learn how to design a Teams tab (desktop and web) and get the Microsoft Teams UI Kit.
+localization_priority: Normal
Notify users of tab activity one of the following ways:
:::row::: :::column span=""::: #### Do: Facilitate conversation
Include content and components people can talk about. If it doesnΓÇÖt fit within
:::column-end::: :::column span=""::: #### Don't: Treat your tab like any other webpage
A tab isnΓÇÖt a webpage someone might view once. A tab should display your most
:::row::: :::column span=""::: #### Do: Limit tasks and data
platform Access Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/access-teams-context.md
Title: Get context for your tab description: Describes how to get user context to your tabs
+localization_priority: Normal
keywords: teams tabs user context
platform Auth Aad Sso https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/authentication/auth-aad-sso.md
Title: Single sign-on support for tabs description: Describes single sign-on (SSO)
+localization_priority: Normal
keywords: teams authentication SSO AAD single sign-on api
platform Auth Flow Tab https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/authentication/auth-flow-tab.md
Title: Authentication flow for tabs description: Describes authentication flow in tabs
+localization_priority: Normal
keywords: teams authentication flow tabs # Microsoft Teams authentication flow for tabs
platform Auth Silent Aad https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/authentication/auth-silent-aad.md
Title: Silent authentication description: Describes silent authentication
+localization_priority: Normal
keywords: teams authentication SSO silent AAD # Silent authentication
platform Auth Tab Aad https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/authentication/auth-tab-aad.md
Title: Authentication for tabs using Azure Active Directory description: Describes authentication in Teams and how to use it in tabs
+localization_priority: Normal
keywords: teams authentication tabs AAD # Authenticate a user in a Microsoft Teams tab
platform Configuration Page https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/create-tab-pages/configuration-page.md
Title: Create a configuration page description: how to create a configuration page
-keywords: teams tabs group channel configurable
+keywords: teams tabs group channel configurable
+localization_priority: Normal
platform Content Page https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/create-tab-pages/content-page.md
Title: Create a content page
description: how to create a content page keywords: teams tabs group channel configurable static
+localization_priority: Normal
platform Removal Page https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/create-tab-pages/removal-page.md
Title: Create a tab removal page
description: How to create a tab removal page keywords: teams tabs group channel configurable remove delete
+localization_priority: Normal
platform Developer Tools https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/developer-tools.md
Title: DevTools for Microsoft Teams tabs description: Describes how to get to the DevTools when using the Microsoft Teams Desktop Client
+localization_priority: Normal
keywords: devtools debug mobile chrome desktop client developer tools
platform Tab Requirements https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/tab-requirements.md
Title: Understanding tab requirements description: Every tab in Microsoft Teams must adhere to these requirements.
-keywords: teams tabs group channel configurable
+keywords: teams tabs group channel configurable
+localization_priority: Normal
platform Tabs In Sharepoint https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/tabs-in-sharepoint.md
Title: Adding a Microsoft Teams tab in SharePoint as an SPFx web part
+ Title: Add Teams tab to SharePoint
description: How to deploy your existing Teams tab to SharePoint as a SharePoint Framework web part. keywords: teams tabs sharepoint framework development
+localization_priority: Normal
-# Adding a Microsoft Teams tab in SharePoint as an SPFx web part
+# Add Teams tab to SharePoint
+
+You can get a rich integration experience between Microsoft Teams and SharePoint by adding a Microsoft Teams tab in SharePoint as an SPFx web part. This document guides you on how you to take a tab from a Microsoft Teams sample app and use it in SharePoint.
## Rich integration between Teams and SharePoint
-With the November release of Teams and SharePoint Framework v. 1.7, developers have two powerful capabilities:
+With the November release of Teams and SharePoint Framework v.1.7, developers have two powerful capabilities:
<ul class="panelContent cardsC"> <li>
With the November release of Teams and SharePoint Framework v. 1.7, developers h
### Teams tabs in SharePoint
-With SharePoint Framework v.1.7, weΓÇÖre now supporting the ability for developers to take their Teams tabs and host it in SharePoint. As Tabs hosted in SharePoint get a similar "full page" experience, exposing the all the features of Teams tabs while retaining the context and familiarity of a SharePoint site.
+With SharePoint Framework v.1.7, you can host your Teams tabs in SharePoint. As tabs hosted in SharePoint get a similar **full page** experience, exposing all the features of Teams tabs while retaining the context and familiarity of a SharePoint site.
### SharePoint Framework in Teams
-You can also implement your Microsoft Teams tabs using SharePoint Framework. For SharePoint developers, this significantly simplifies the development process for Teams tabs because SharePoint Framework web parts are hosted within SharePoint without any need for external services such as Azure. [Learn more about using the SharePoint Framework in Teams.](/sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab)
+You can also implement your Microsoft Teams tabs using SharePoint Framework. SharePoint Framework web parts are hosted within SharePoint without any need for external services, such as Azure. For SharePoint developers, this significantly simplifies the development process for Teams tabs. For more information on SharePoint Framework in Teams, see [how to use the SharePoint Framework in Teams.](/sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab)
## Introduction
-These instructions will explain how you can take a tab from a Microsoft Teams sample app and use it in SharePoint. We will be using a tab that's already hosted on Azure in order to focus on the required integration work.
+The tab used here is already hosted on Azure, to focus on the required integration work.
-The sample app we're using is a Talent Management application. It manages the hiring process of candidates for open positions in a team. (The app itself, while it looks nice, doesn't actually do anything. We want to focus on building a Teams app and loading it into Teams, not create a real talent management application.)
+The sample app that is being used is a Talent Management application. It manages the hiring process of candidates for open positions in a team. Build a sample Teams app and load it into Teams. Do not create a real talent management application.
### Benefits of this approach -- Reach SharePoint users with your existing Teams tab-- Upload your app manifest directly to your SharePoint app catalog. [Teams application packages](~/concepts/build-and-test/apps-package.md) are now supported by SharePoint-- End users configure the tab on a page just like any other SharePoint web part-- Your tab can access its [context](~/tabs/how-to/access-teams-context.md) just as it can when running inside Teams
+* Reach SharePoint users with your existing Teams tab.
+* Upload your app manifest directly to your SharePoint app catalog. [Teams application packages](~/concepts/build-and-test/apps-package.md) are now supported by SharePoint.
+* The users configure the tab on a page just like any other SharePoint web part.
+* Your tab can access its [context](~/tabs/how-to/access-teams-context.md) sameas it can, when running inside Teams.
+
+**To add Teams tab to SharePoint**
+
+Perform the following steps to add Teams tab to SharePoint:
+
+## 1. Test the sample app
-## Step 1: Testing the sample app
+Download the [sample app manifest](https://github.com/MicrosoftDocs/msteams-docs/raw/master/msteams-platform/assets/downloads/TalentMgmt-Azure.zip).
-Download the sample app manifest from [**here**](https://github.com/MicrosoftDocs/msteams-docs/raw/master/msteams-platform/assets/downloads/TalentMgmt-Azure.zip).
+1. Open Microsoft Teams.
+1. Select the **Appstore** icon at the lower left of side tab.
+1. Select **Upload a custom app** at the lower left. The following image displays the corresponding screen:
-In Microsoft Teams, click on the Store icon at the lower left and then "Upload a custom app" at the lower left. The file to upload will be located in your Downloads folder; it's called TalentMgmt-Azure.zip. If all goes well, you'll see the install/consent screen for the talent management app. Choose the team you want to install to and click the Install button. You're now free to experiment with the app.
+ ![upload a custom app](~/assets/images/tabs/tabs-in-sharepoint/upload-custom-app.png)
-## Step 2: Using the Teams tab in SharePoint
+1. The file to upload is located in your **Downloads** folder. It is called TalentMgmt-Azure.zip. The following image displays the corresponding screen:
+
+ ![TalentMgmt in Azure](~/assets/images/tabs/tabs-in-sharepoint/talentmgmt-azure.png)
-Upload and deploy your Teams app package to your SharePoint App Catalog by visiting `https://YOUR_TENANT_NAME.sharepoint.com/sites/apps/AppCatalog/Forms/AllItems.aspx`, e.g. `https://contoso.sharepoint.com/sites/apps/AppCatalog/Forms/AllItems.aspx`.
+1. You can see the install or consent screen for the talent management app. Select the team you want to install.
+1. Select the **Install** and start experimenting with the app.
-When prompted, enable "Make this solution available to all sites in the organization":
+## 2. Use Teams tab in SharePoint
-![Tabs in Sharepoint view](~/assets/images/tabs/tabs-in-sharepoint/image065.png)
+1. Upload and deploy your Teams app package to your SharePoint App Catalog by visiting `https://YOUR_TENANT_NAME.sharepoint.com/sites/apps/AppCatalog/Forms/AllItems.aspx`. For example, `https://contoso.sharepoint.com/sites/apps/AppCatalog/Forms/AllItems.aspx`.
-In your site, create a new page by clicking in the gear button at the upper right and then "Add a page":
+1. When prompted, enable **Make this solution available to all sites in the organization**.
+The following image displays the corresponding screen:
-![Sharepoint view](~/assets/images/tabs/tabs-in-sharepoint/image066.png)
+ ![Tabs in Sharepoint view](~/assets/images/tabs/tabs-in-sharepoint/image065.png)
-You'll see the SharePoint Pages authoring experience. Name your page "My Teams Tab".
+1. In your site, create a new page by selecting the gear button at the upper right and then select **Add a page**.
+The following image displays the corresponding screen:
-Open the web part toolbox by pressing the + button, and select your Teams Tab (named "Contoso HR"). Web parts are sorted alphabetically; if it's a long list, you can use the search bar to find it. This will create a web part in the canvas that contains your Teams tab:
+ ![Sharepoint view](~/assets/images/tabs/tabs-in-sharepoint/image066.png)
-![Tab view](~/assets/images/tabs/tabs-in-sharepoint/image071.png)
+1. You can see the SharePoint pages authoring experience. Name your page as **My Teams Tab**.
-Press the "Publish" button when you are finished editing.
+1. Open the web part toolbox by pressing the `+` button, and select your Teams Tab, named **Contoso HR**. Web parts are sorted alphabetically. If it is a long list, you can use the search bar to find it. This creates a web part in the canvas that contains your Teams tab. The following image displays the tab view:
-You may want to click "Add page to navigation" to have a quick reference to your page in the left navigation bar:
+ ![Tab view](~/assets/images/tabs/tabs-in-sharepoint/image071.png)
-![Tab in Sharepoint image](~/assets/images/tabs/tabs-in-sharepoint/image073.png)
+1. Press the **Publish** button after you finish editing.
-## Step 3: Explore App Pages in SharePoint
+1. Select **Add page to navigation** to have a quick reference to your page in the left navigation bar.
+The following image displays the tab in Sharepoint:
-Once your page is published, you can explore [turning your Teams app into a more complete experience inside SharePoint](/sharepoint/dev/spfx/web-parts/single-part-app-pages). This converts the current page into an App Page, showing the normal SharePoint page layout with a full-page experience for the Teams tab:
+ ![Tab in Sharepoint image](~/assets/images/tabs/tabs-in-sharepoint/image073.png)
+## 3. Explore App Pages in SharePoint
+
+After your page is published, you can explore [turning your Teams app into a more complete experience inside SharePoint](/sharepoint/dev/spfx/web-parts/single-part-app-pages). This converts the current page into an App Page, showing the normal SharePoint page layout with a full page experience for the Teams tab.
+
+The following image displays the complete experience of Teams app in Sharepoint:
![Image of Tabs in Sharepoint](~/assets/images/tabs/tabs-in-sharepoint/image085.png) ## Code sample
Once your page is published, you can explore [turning your Teams app into a more
|--|--|-| | SPFx web part | SPFx web part samples for tabs, channels, and groups. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-channel-group/spfx)
-## More information
+## See also
+
+> [!div class="nextstepaction"]
+> [Building Microsoft Teams tab using SharePoint Framework - Tutorial](/sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab)
+
+> [!div class="nextstepaction"]
+> [Using single part app pages in SharePoint Online](/sharepoint/dev/spfx/web-parts/single-part-app-pages)
-- [Building Microsoft Teams tab using SharePoint Framework - Tutorial](/sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab)-- [Using single part app pages in SharePoint Online](/sharepoint/dev/spfx/web-parts/single-part-app-pages)
+> [!div class="nextstepaction"]
+> [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Using Teams Client Sdk https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/using-teams-client-sdk.md
Title: Building tabs and other hosted experiences with the JavaScript client SDK
description: Overview of the Microsoft Teams JavaScript client SDK, which can help you build Teams app experiences hosted in an <iframe>.
+localization_priority: Normal
keywords: teams tabs group channel configurable static SDK JavaScript personal
For example, the SDK can make your [tab react to theme changes](../../build-your
Do one of the following depending on your development preferences:
-* [Install the SDK with npm or Yarn](https://docs.microsoft.com/javascript/api/overview/msteams-client?view=msteams-client-js-latest)
+* [Install the SDK with npm or Yarn](https://docs.microsoft.com/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true)
* [Clone the SDK (GitHub)](https://github.com/OfficeDev/microsoft-teams-library-js) ## Common SDK functions
-See the following tables to understand commonly used SDK functions. The [SDK reference documentation](https://docs.microsoft.com/javascript/api/@microsoft/teams-js/?view=msteams-client-js-latest) provides more comprehensive information.
+See the following tables to understand commonly used SDK functions. The [SDK reference documentation](https://docs.microsoft.com/javascript/api/@microsoft/teams-js/?view=msteams-client-js-latest&preserve-view=true) provides more comprehensive information.
### Basic functions
platform Create Channel Group Tab Dotnet Core Mvc https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-channel-group-tab-dotnet-core-mvc.md
Title: "Create a Channel and Group Tab with ASP.NET Core MVC"
-description: A quickstart guide to creating a custom channel and group tab with ASP.NET Core MVC.
+description: A quickstart guide to creating a custom channel and group tab with ASP.NET Core MVC
+localization_priority: Normal
platform Create Channel Group Tab Dotnet Core https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-channel-group-tab-dotnet-core.md
Title: "Create a Channel and Group Tab with ASP.NET Core" description: A quickstart guide to creating a custom channel and group tab with ASP.NET Core.
+localization_priority: Normal
platform Create Channel Group Tab Node Yeoman https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-channel-group-tab-node-yeoman.md
Title: "Create a custom channel and group Tab with Node.js and the Yeoman Generator for Microsoft Teams" description: A quickstart guide to creating a channel and group tab with the Yeoman Generator for Microsoft Teams.
+localization_priority: Normal
platform Create Personal Tab Dotnet Core Mvc https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-personal-tab-dotnet-core-mvc.md
Title: "Create a Personal Tab with ASP. NET Core MVC"
-description: A quickstart guide to creating a custom personal tab with ASP. NET Core MVC.
+description: A quickstart guide to creating a custom personal tab with ASP. NET Core MVC.
+localization_priority: Normal
platform Create Personal Tab Dotnet Core https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-personal-tab-dotnet-core.md
Title: Create a Personal Tab with ASP.NET Core
description: A quickstart guide to creating a custom personal tab with ASP.NET Core.
+localization_priority: Normal
# Create a personal tab with ASP.NET Core
platform Create Personal Tab Node Yeoman https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/quickstarts/create-personal-tab-node-yeoman.md
Title: "Quickstart: Create a custom personal tab with Node.js and the Yeoman Generator for Microsoft Teams" description: A quickstart guide to creating a personal tab with the Yeoman Generator for Microsoft Teams.
+localization_priority: Normal
platform What Are Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/what-are-tabs.md
Title: What are custom tabs in Teams? description: An overview of custom tabs on the Teams platform
+localization_priority: Normal
platform Cards Actions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/cards/cards-actions.md
Title: Add card actions in a bot description: Describes card actions in Microsoft Teams and how to use them in your bots
+localization_priority: Normal
keywords: teams bots cards actions
platform Cards Reference https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/cards/cards-reference.md
Title: Cards reference description: Describes all the cards and card actions available to bots in Teams
+localization_priority: Normal
keywords: bots cards reference
platform Design Effective Cards https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/cards/design-effective-cards.md
Title: Designing Adaptive Cards for your app description: Learn how to design Adaptive Cards for Teams and get the Microsoft Teams UI Kit.
+localization_priority: Normal
You also can start designing your Adaptive Cards directly in the browser.
Our largest card. Use for sharing articles or scenarios where an image tells most of the story. ### Thumbnail Use for sending a simple actionable message. ### List Use in scenarios where you want the user to pick an item from a list, but the items donΓÇÖt need a lot of explanation. ### Digest Use for news digests and round-up posts. Note: We recommend the thumbnail card for a single update or news item. ### Media Use when you want to combine text and media, like audio or video. ### People Best used when you to efficiently convey who's involved with a task. ### Request ticket Use to get quick inputs from a user to automatically create a task or ticket. ### ImageSet Use to send multiple image thumbnails. ### ActionSet Use when you want to the user to select a button, then gather addition user input from the same card. ### ChoiceSet Use to gather multiple inputs from the user. ## Anatomy
While Adaptive Cards can support six primary actions, most cards donΓÇÖt need th
:::column-end::: :::column span=""::: #### Don't: Use more than six primary actions
Adaptive Cards should present quick, actionable content. Too many actions can ov
### Frequency #### Do: Be concise
platform Design Teams Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/task-modules/design-teams-task-modules.md
Title: Designing task modules description: Learn how to design task modules for Teams apps and get the Microsoft Teams UI Kit.
+localization_priority: Normal
The goal is to focus the user on completing a task after all!
:::column-end::: :::column span=""::: #### Don't: Pop a dialog on top of a task module
This creates an unfocused, confusing user experience.
:::row::: :::column span=""::: #### Do: Make sure the content is responsive
While Adaptive Cards hosted in a task module render well on mobile devices, if y
:::column-end::: :::column span=""::: #### Don't: Use horizontal scroll bars
It's a best practice to keep content focused and not too lengthy. If a scroll is
:::row::: :::column span=""::: #### Do: Keep it short
You can easily create a multi-step wizard, but that doesn't necessarily mean you
:::column-end::: :::column span=""::: #### Don't: Do long interactions
Try to keep your interactions short and to the point.
:::row::: :::column span=""::: #### Do: Use inline error messages
See the forms UI template for guidelines on inline error handling.
:::column-end::: :::column span=""::: #### Don't: Put error messages in dialogs
platform Task Modules Bots https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/task-modules/task-modules-bots.md
Title: Using Task Modules in Microsoft Teams bots
-description: How to use task modules with Microsoft Teams bots, including Bot Framework cards, Adaptive cards, and deep links.
+description: How to use task modules with Microsoft Teams bots, including Bot Framework cards, Adaptive cards, and deep links
+localization_priority: Normal
keywords: task modules teams bots
platform Task Modules Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/task-modules/task-modules-tabs.md
Title: Using Task Modules in Microsoft Teams tabs
-description: Explains how to invoke task modules from Teams tabs using the Microsoft Teams client SDK.
+description: Explains how to invoke task modules from Teams tabs using the Microsoft Teams client SDK
+localization_priority: Normal
keywords: task modules teams tabs client sdk
platform What Are Cards https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/what-are-cards.md
Title: Introducing cards description: Describes cards and how they are used in bots, connectors and messaging extensions
+localization_priority: Normal
keywords: connectors bots cards messaging
platform What Are Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/what-are-task-modules.md
Title: What are task modules?
-description: Add modal popup experiences to collect or display information to your users from your Microsoft Teams apps.
+description: Add modal popup experiences to collect or display information to your users from your Microsoft Teams apps
+localization_priority: Normal
platform Visual Studio Code Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/toolkit/visual-studio-code-overview.md
Title: Build apps with the Microsoft Teams Toolkit and Visual Studio Code description: Get started building great custom apps directly within Visual Studio Code with the Microsoft Teams Toolkit keywords: teams visual studio code toolkit
+localization_priority: Normal
platform Visual Studio Code Tab Sso https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/toolkit/visual-studio-code-tab-sso.md
Title: Single sign-on authentication with Teams Toolkit and Visual Studio Code for tabs description: Build a tab that supports single-sign-on and Microsoft Graph calls directly within Visual Studio Code with the Microsoft Teams Toolkit keywords: teams visual studio code toolkit tabs sso graph authentication Azure identity platform
+localization_priority: Normal
platform Visual Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/toolkit/visual-studio-overview.md
Title: Build apps with the Microsoft Teams Toolkit and Visual Studio description: Get started building great custom apps directly within Visual Studio with the Microsoft Teams Toolkit keywords: teams visual studio toolkit
+localization_priority: Normal
platform Code Samples https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tutorials/code-samples.md
Title: App code samples description: Links and descriptions of sample applications for the Microsoft Teams developer platform
+localization_priority: Normal
keywords: Microsoft Teams developer samples
platform Get Started Dotnet App Studio https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tutorials/get-started-dotnet-app-studio.md
Title: Tutorial - Create your first app using C#
description: Learn how to get started building Microsoft Teams apps with C# or .NET. keywords: getting started .net c# csharp
+localization_priority: Normal
Last updated 11/09/2018
platform Get Started Nodejs App Studio https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tutorials/get-started-nodejs-app-studio.md
Title: Tutorial - Create your first app using Node.js
description: Learn how to get started building Microsoft Teams apps with Node.js. keywords: getting started node.js nodejs App Studio
+localization_priority: Normal
platform Get Started Yeoman https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tutorials/get-started-yeoman.md
Title: Tutorial - Create your first app using the Yeoman generator description: Learn how to get started building Microsoft Teams apps with the Yeoman generator. keywords: getting started node.js nodejs yeoman
+localization_priority: Normal
platform Design Webhooks Connectors https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/design/design-webhooks-connectors.md
Title: Design Microsoft Teams webhooks and connectors description: Guidance and best practices for designing webhooks and connectors for Microsoft Teams.
+localization_priority: Normal
platform Add Incoming Webhook https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/how-to/add-incoming-webhook.md
Title: Post external requests to Microsoft Teams with incoming webhooks description: how to add incoming webhook to Teams app
-keywords: teams tabs outgoing webhook*
+keywords: teams tabs outgoing webhook
+localization_priority: Normal
platform Add Outgoing Webhook https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md
Title: Add custom bots to Microsoft Teams with outgoing webhooks
description: describes how to add an outgoing webhook
+localization_priority: Normal
keywords: teams tabs outgoing webhook actionable message verify webhook # Add custom bots to Teams with outgoing webhooks
platform Connectors Creating https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/how-to/connectors-creating.md
Title: Office 365 Connectors description: Describes how to get started with Office 365 Connectors in Microsoft Teams keywords: teams o365 connector
+localization_priority: Normal
Last updated 04/19/2019
platform Connectors Using https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/how-to/connectors-using.md
Title: Sending messages to Connectors and Webhooks description: Describes how to use Office 365 Connectors in Microsoft Teams
-localization_priority: Priority
+localization_priority: Normal
keywords: teams o365 connector
platform What Are Webhooks And Connectors https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/webhooks-and-connectors/what-are-webhooks-and-connectors.md
Title: What are webhooks and connectors? description: Understand how webhooks and connectors can connect your web services to the Teams client.
+localization_priority: Normal
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/whats-new.md
Title: What's new description: Describes all the new developer features in Microsoft Teams
+localization_priority: Normal
keywords: teams what's new latest # What's new for developers in Microsoft Teams