|Service||Microsoft Docs article||Related commit history on GitHub||Change details|
You can create a bot that works in Microsoft Teams with one of the following too* [Power Virtual Agents](#bots-with-power-virtual-agents) * [Virtual Assistant](~/samples/virtual-assistant.md) * [Webhooks and connectors](#bots-with-webhooks-and-connectors)
+* [Azure bot service](#azure-bot-service)## Bots with the Microsoft Bot Framework
The [Bot Framework](https://dev.botframework.com/) is a rich SDK used to createWebhooks and connectors connect your bot to your web services. Using webhooks and connectors, you can create a bot for basic interaction, such as creating a workflow or other simple commands. They are available only in the team where you create them and are intended for simple processes specific to your company's workflow. For more information, see [what are webhooks and connectors](~/webhooks-and-connectors/what-are-webhooks-and-connectors.md).
+## Azure bot service+
+The Azure bot service, along with the Bot Framework, provides tools to build, test, deploy, and manage intelligent bots, all in one place. You can also create your bot in Azure bot service.+
+> Bot applications within Microsoft Teams are available in GCC-High through [Azure bot Service](/azure/bot-service/channel-connect-teams).+
+> * Bots in GCCH only support up to manifest version v1.10.
+> * Image URL's in Adaptive Cards are not supported in GCCH environment. You can replace an image URL with Base64 encoded DataUri.
+> * Bot channel registration in Azure Government will provision web app bot, app service (app service plan), and application insights also but it doesn't support to provision the azure bot service only (no app service).
+> <summary><b>If you want to do bot registration only</b></summary>
+> * Go to the resource group and manually delete the unused resources. Such as the app service, app service plan (if you created during bot registration), and the application insights (if you choose to enable it during bot registration).
+> * You can also use az-cli to do bot registration:
+> 1. Sign into azure and set the subscription <br>
+> az cloud set ΓÇôname "AzureUSGovernment" <br>
+> az account set ΓÇôname "`subscriptionname/id`".<br>
+> 1. Create app registration
+> az ad app create --display-name "`name`" <br>
+> --password "`password`" --available-to-other-tenants.<br>
+> Your app id would be created here.<br>
+> 1. Create bot resource <br>
+> az bot create ΓÇôresource-group "`resource-group`"<br>
+> --appid "`appid`"<br>
+> --name "`botid`"<br>
+> --kind "registration".<br>
+For GCCH environment, you need to register a bot using [Azure Government portal](https://portal.azure.us).+
+The following changes are needed within the bot for GCC-High environment:
+As the bot registration occurs in Azure Government portal, ensure to update the bot configurations to connect to Azure govermnet instances. Following are the configuration details:+
+| Configuration Name | Value |
+| ChannelService | `https://botframework.azure.us` |
+| OAuthUrl | `https://tokengcch.botframework.azure.us` |
+| ToChannelFromBotLoginUrl | `https://login.microsoftonline.us/MicrosoftServices.onmicrosoft.us` |
+| ToChannelFromBotOAuthScope | `https://api.botframework.us` |
+| ToBotFromChannelTokenIssuer | `https://api.botframework.us` |
+| BotOpenIdMetadata | `https://login.botframework.azure.us/v1/.well-known/openidconfiguration` |+
+<summary><b>Update to appsettings.json & startup.cs</b></summary>+
+1. **Update appsettings.json:**+
+ * Set `ConnectionName` to the name of the OAuth connection setting you added to your bot.+
+ * Set `MicrosoftAppId` and `MicrosoftAppPassword` to your bot's app ID and app secret.
+ Depending on the characters in your bot secret, you may need to XML escape the password. For example, any ampersands (&) need to be encoded as `&`.+
+ "MicrosoftAppType": "",
+ "MicrosoftAppId": "",
+ "MicrosoftAppPassword": "",
+ "MicrosoftAppTenantId": "",
+ "ConnectionName": ""
+2. **Update Startup.cs:**+
+ To use OAuth in *non-public Azure clouds*, like the government cloud, or in bots with data-residency, you must add the following code in the **Startup.cs** file.
+ string uri = "<uri-to-use>";
+ OAuthClientConfig.OAuthEndpoint = uri;
+ Where \<uri-to-use\> is one of the following URIs:+
+ |`https://europe.api.botframework.com`|For public-cloud bots with data residency in Europe.|
+ |`https://unitedstates.api.botframework.com`|For public-cloud bots with data residency in the United States.|
+ |`https://apiGCCH.botframework.azure.us`|For United States government-cloud bots without data residency.|
+ |`https://api.botframework.com`|For public-cloud bots without data residency. This is the default URI and does not require a change to **Startup.cs**.|+
+3. The redirect URL for app registration from Azure should be updated to `https://tokengcch.botframework.azure.us/.auth/web/redirect`.+
+</details>+ ## Advantages of bots Bots in Microsoft Teams can be part of a one-to-one conversation, a group chat, or a channel in a team. Each scope provides unique opportunities and challenges for your conversational bot.
-> Bots are available in Government Community Cloud (GCC) environments but not GCC High and Department of Defense (DoD) environments.
+> Bots are available in Government Community Cloud (GCC) and GCC High environments but not in Department of Defense (DoD) environments.To guide your app design, the following information describes and illustrates how people can add, use, and manage bots in Teams.
Basic conversations are handled through the Bot Framework connector, a single REYour bot receives messages from Teams using the `Text` property and it sends single or multiple message responses to the users.
+For more information, see [User attribution for bot messages](/microsoftteams/platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit?tabs=dotnet%2Cdotnet-1&branch=pr-en-us-5926#user-attribution-for-bots-messages)+ ## Receive a message To receive a text message, use the `Text` property of the `Activity` object. In the bot's activity handler, use the turn context object's `Activity` to read a single message request.
|platform||Send Proactive Messages||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/send-proactive-messages.md||
A proactive message is any message sent by a bot that isn't in response to a req* Notifications * Scheduled messages
+> Currently, bots are available in Government Community Cloud (GCC) and GCC-High but not in Department of Defense (DOD).
+> For proactive messages the bots should use the following end points for government cloud environments:
+> * GCC: `https://smba.infra.gcc.teams.microsoft.com/gcc`.
+> * GCCH: `https://smba.infra.gov.teams.microsoft.us/gcch`.+ For your bot to send a proactive message to a user, group chat, or team, it must have access to send the message. For a group chat or team, the app that contains your bot must be first installed in that location. You can [proactively install your app using Microsoft Graph](#proactively-install-your-app-using-graph) in a team, if required, or use an [app policy](/microsoftteams/teams-custom-app-policies-and-settings) to push apps out to teams and users in your tenant. For users, your app either must be installed for the user or your user must be part of a team where your app is installed.
|platform||What Are Bots||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/what-are-bots.md||
-> Currently, bots are available in Government Community Cloud (GCC) and not available in GCC-High and Department of Defense (DOD).
+> Currently, bots are available in Government Community Cloud (GCC) and GCC-High but not in Department of Defense (DOD).
+> Bot applications within Microsoft Teams are available in GCC-High through [Azure bot Service](/azure/bot-service/channel-connect-teams).Conversational bots allow users to interact with your web service using text, interactive cards, and task modules.
|platform||App Fundamentals Overview||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/app-fundamentals-overview.md||
Understanding the user and their concern are the first indicators of how a TeamsGovernment Community Cloud (GCC) is a government focused copy of the commercial environment. Department of Defense (DOD) and Federal contractors must meet the stringent cybersecurity and compliance requirements. For this purpose, GCC-High was created to meet the needs of DOD and Federal contractors. GCC-High is a copy of the DOD cloud but exists in its own sovereign environment. The DOD cloud is built for the Department of Defense only.
+Endpoints for government cloud are:+
+| Tenant | GCC | GCC-High | DOD |
+|Teams client|`https://teams.microsoft.com`|`https://gov.teams.microsoft.us/`|`https://dod.teams.microsoft.us/` |
+|Teams admin |`https://admin.teams.microsoft.com/`|`https://admin.gov.teams.microsoft.us/`|`https://admin.dod.teams.microsoft.us`|
+|Microsoft Graph |`https://graph.microsoft.com`|`https://graph.microsoft.us`|`https://dod-graph.microsoft.us`|+ The following table includes Teams features and availability for GCC, GCC-High, and DOD: | Features | GCC | GCC-High | DOD |
The following table includes Teams features and availability for GCC, GCC-High,| Teams owned apps as in internally developed apps | Γ£ö∩╕Å App is enabled if it has GCC | Γ£ö∩╕Å App is enabled if it has GCC-High | Γ£ö∩╕Å App is enabled if it has DOD | | Microsoft apps | Γ£ö∩╕Å Microsoft apps compliant with GCC | Γ£ö∩╕Å Microsoft apps compliant with GCC-High | Γ£ö∩╕Å Microsoft apps compliant with DOD | | 3P or third-party apps | Γ£ö∩╕Å Third-party apps are available. Disabled by default and tenant admin use their own discretion to enable it. | Γ¥î | Γ¥î |
-| Bots | Γ£ö∩╕Å | Γ¥î | Γ¥î |
-| Custom or Lob tab apps | Γ£ö∩╕Å | Γ£ö∩╕Å | Γ£ö∩╕Å |
+| Custom or Lob tab apps | Γ£ö∩╕Å | Γ£ö∩╕Å(****Compliance UI***) | Γ£ö∩╕Å(****Compliance UI***) |
+| Custom or Lob bots | Γ£ö∩╕Å | Γ£ö∩╕Å(****Compliance UI***) | Γ¥î |
+| Custom message extensions | Γ£ö∩╕Å | Γ£ö∩╕Å | Γ¥î || Sideloading apps | Γ£ö∩╕Å | Γ¥î | Γ¥î |
-| Custom or Lob bots | Γ£ö∩╕Å | Γ¥î | Γ¥î |
-| Custom message extensions | Γ¥î | Γ¥î | Γ¥î || Custom connectors | Γ¥î | Γ¥î | Γ¥î |
+****Compliance UI***: By enabling third-party communications, customers accept that such communication is being processed through the third party and not Microsoft. The customer is solely responsible for mitigating risks associated with connecting with third party bots in their services. Microsoft does not endorse andΓÇ»makesΓÇ»no warranties, express, or implied concerning the security of third parties the customer allows to connect with their service. Enabling bots will extend your system boundary beyond this tenant based on the bot you choose to leverage. It is your responsibility to ensure that this meets your compliance requirements including FedRAMP, DFARS, ITAR, etc. It is your responsibility to evaluate the risk and compliance of any endpoint and URL that you connect to.+ The following list helps to identify the availability of GCC, GCC-High, and DOD for the features: * For third-party apps, see [web apps](../samples/integrating-web-apps.md) and [meeting app extensibility](../apps-in-teams-meetings/meeting-app-extensibility.md).
The query parameters are:| Parameter name | Description | Example | |:|:--|:|
-| `appId`  | The ID from your manifest. |fe4a8eba-2a31-4737-8e33-e5fae6fee194|
+| `appId`  | The ID from Teams Admin Center. |fe4a8eba-2a31-4737-8e33-e5fae6fee194|| `entityId`  | 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`  | An optional field with a fallback URL to use if the client doesn't support rendering the tab. | `https://tasklist.example.com/123` or `https://tasklist.example.com/list123/task456` | | `entityLabel` or `subEntityLabel`  | A label for the item in your tab, to use when displaying the deep link. | Task List 123 or "Task 456 |
|platform||What Are Messaging Extensions||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/what-are-messaging-extensions.md||
+> Message extensions are available in Government Community Cloud (GCC) and GCC-High environments but not in Department of Defense (DoD) environment.+ This document gives an overview of the message extension, tasks performed under different scenarios, working of message extension, action and search commands, and link unfurling. The following image displays the locations from where message extensions are invoked:
Last updated 05/20/2018Build and connect intelligent bots to interact with Microsoft Teams users naturally through chat. Or provide a simple commands-based bot, to be used as your "command-line" interface for your broader Teams app experience. You can make a notification-only bot, which can push information relevant to your users directly to them in a channel or direct message. You can even bring your existing Bot Framework-based bot and add Teams-specific support to make your experience shine. > [!IMPORTANT]
-> Currently, bots are available in Government Community Cloud (GCC) but not available in GCC-High and Department of Defense (DOD).
+> Currently, bots are available in Government Community Cloud (GCC) and GCC-High but not available in Department of Defense (DOD).![Example of a bot assisting a user](~/assets/images/bot_example.png)
|platform||Integrate Web Apps Overview||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/integrate-web-apps-overview.md||
Virtual Assistant is a Microsoft open-source template that enables you to createYou 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.
|platform||Shifts Wfm Connectors||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/shifts-wfm-connectors.md||
The shifts view in Teams is shown in the following image:![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 such as, desktop or mobile Teams app for the following first-line worker and manager scenarios:-
-* View schedule.-
-* Publish and request open shifts.-
-* Swap shifts.-
-* Request time off.-
-* Offer shifts.-
-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, such as BlueYonder Version 17.2 and above, with Teams Shifts such as, desktop or mobile Teams app for the following first-line 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.-
-* Set user availability using the [Microsoft Graph API for Shifts](/graph/api/resources/shift?view=graph-rest-beta&preserve-view=true).-
-For more information on contribution and suggestion, see [Get it on GitHub](https://aka.ms/JDAShiftsConnector).- ## See also [Integrate web apps](~/samples/integrate-web-apps-overview.md)
|platform||What Are Tabs||https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/what-are-tabs.md||
Tabs are Teams-aware webpages embedded in Microsoft Teams. They're simple HTML `> [!IMPORTANT] > Currently, custom tabs are available in Government Community Cloud (GCC), GCC-High, and Department of Defense (DOD).
+> We recommend you to use the Teams client SDK via [npm package](https://www.npmjs.com/package/@microsoft/teams-js) and bundle it with your app as currently Teams client SDK is not available in Government Cloud CDN.The following image shows personal tabs:
A custom tab is declared in the app manifest of your app package. For each webpaWhether you choose to expose your tab within the channel or group, or personal scope, you must present an <iframe\> HTML [content page](~/tabs/how-to/create-tab-pages/content-page.md) in your tab. For personal tabs, the content URL is set directly in your Teams app manifest by the `contentUrl` property in the `staticTabs` array. Your tab's content is the same for all users.
+> Teams app doesn't recognize sub iframes. Therefore, it'll not load if there is an iframe within the tab app.+ For channel or group tabs, you can also create an additional configuration page. This page allows you to configure content page URL, typically by using URL query string parameters to load the appropriate content for that context. This is because your channel or group tab can be added to multiple teams or group chats. On each subsequent install, your users can configure the tab, allowing you to tailor the experience as required. When users add or configure a tab, a URL is associated with the tab that is presented in the Teams user interface (UI). Configuring a tab simply adds additional parameters to that URL. For example, when you add the Azure Boards tab, the configuration page allows you to choose, which board the tab loads. The configuration page URL is specified by the `configurationUrl` property in the `configurableTabs` array in your app manifest. You can have multiple channels or group tabs, and up to 16 personal tabs per app.
Discover Microsoft Teams platform features that are generally available (GA) and| Date | Update | Find here | | | | |
+|05/19/2022|Bots and Message extensions for GCC and GCCH| ΓÇó Build bots > [Overview](bots/what-are-bots.md) </br> ΓÇó Build message extensions > [Overview](messaging-extensions/what-are-messaging-extensions.md) ||04/28/2022| Common reasons for app validation failure | Distribute your app > Publish to the Teams store > [Common reasons for app validation failure](concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md)| |04/20/2022 | Set up CI/CD pipelines | Tools and SDKs > Teams Toolkit for Visual Studio Code > [Set up CI/CD pipelines](toolkit/use-CICD-template.md)| |04/19/2022 | Upload your app in Microsoft Teams | Distribute your app > [Upload your app](concepts/deploy-and-publish/apps-upload.md)|
Microsoft Teams platform features that are available to all app developers.| **Date** | **Update** | **Find here** | | -- | | -|
+|05/19/2022|Bots and Message extensions for GCC and GCCH| ΓÇó Build bots > [Overview](bots/what-are-bots.md) </br> ΓÇó Build message extensions > [Overview](messaging-extensions/what-are-messaging-extensions.md) ||04/26/2022|Uninstall behavior for personal app with bot | Build bots > Bot conversations > [Uninstall behavior updates in personal apps with bots](bots/how-to/conversations/subscribe-to-conversation-events.md#uninstall-behavior-for-personal-app-with-bot)| |04/22/2022| Test preview for monetized apps | Monetize your app > [Test preview for monetized apps](concepts/deploy-and-publish/appsource/prepare/test-preview-for-monetized-apps.md) |04/22/2022| In-app purchase flow for monetization of apps | Monetize your app > [In-app purchases](concepts/deploy-and-publish/appsource/prepare/in-app-purchase-flow.md)