From 157d5c61db0932fadfe30a34607ff970712cbb99 Mon Sep 17 00:00:00 2001 From: KirtiJha-MSFT Date: Mon, 15 Sep 2025 10:49:30 +0530 Subject: [PATCH 1/2] Updated --- .../respond-to-task-module-submit.md | 2 +- .../search-commands/define-search-command.md | 6 +++--- .../resources/team-chat-member-api-changes.md | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md index b2057e82189..95f6ebf603f 100644 --- a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md +++ b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md @@ -203,7 +203,7 @@ You can select to respond to the `submitAction` event with additional dialog. It * Dynamically change the information collection based on user input. * Validate the information submitted by the user and resend the form with an error message if something is wrong. -The method for response is the same as [responding to the initial `fetchTask` event](~/messaging-extensions/how-to/action-commands/create-task-module.md). If you're using the Bot Framework SDK the same event triggers for both submit actions. To make this work, you must add logic that determines the correct response. +The method for response is the same as [responding to the initial `fetchTask` event](~/messaging-extensions/how-to/action-commands/create-task-module.md). If you're using the Agents SDK the same event triggers for both submit actions. To make this work, you must add logic that determines the correct response. ## Bot response with Adaptive Card diff --git a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md index e7c30770158..f8214210a22 100644 --- a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md +++ b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md @@ -25,7 +25,7 @@ The following image displays the invoke locations of the search command: To add the search command to your [app manifest](../../../resources/schema/manifest-schema.md#composeextensions) (previously called Teams app manifest), you must add a new `composeExtensions` object to the top level of your app manifest JSON. You can add the search command either with the help of Developer Portal or manually. -### Create search message extension using Bot Framework +### Create search message extension using Agents SDK You can create a search message extension using Microsoft 365 Agents Toolkit (previously known as Teams Toolkit) and Developer Portal for Teams. @@ -105,8 +105,8 @@ To run the message extension in Teams, follow these steps: * Parameter description * Select the type of input -1. Select **Save**. A search message extension using bot framework created. -1. At the upper-right corner, select **Preview in Teams**. The app opens in Teams desktop or web client. +2. Select **Save**. A search message extension using Agents SDK created. +3. At the upper-right corner, select **Preview in Teams**. The app opens in Teams desktop or web client. --- diff --git a/msteams-platform/resources/team-chat-member-api-changes.md b/msteams-platform/resources/team-chat-member-api-changes.md index 26fb8c482dc..80903573042 100644 --- a/msteams-platform/resources/team-chat-member-api-changes.md +++ b/msteams-platform/resources/team-chat-member-api-changes.md @@ -14,14 +14,14 @@ ms.owner: angovil > [!NOTE] > > * The deprecation process for `TeamsInfo.getMembers` and `TeamsInfo.GetMembersAsync` APIs have started. Initially, they are heavily throttled to five requests per minute and return a maximum of 10K members per team. This results in the full roster not being returned as team size increases. -> * You must update to version 4.10 or higher of the Bot Framework SDK and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes). +> * You must update to version 4.10 or higher of the Agents SDK and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes). If you want to retrieve information for one or more members of a chat or team, you can use the [Microsoft Teams bot APIs](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) `TeamsInfo.GetMembersAsync` for C# or `TeamsInfo.getMembers` for TypeScript or Node.js APIs. For more information, see [fetch roster or user profile](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile). These APIs have the following shortcomings: * For large teams, performance is poor and timeouts are more likely: The maximum team size has grown since Teams was released. As `GetMembersAsync` or `getMembers` returns the entire member list, it takes a long time for the API call to return for large teams, and it's common for the call to time out and you must try again. -* Getting profile details for a single user is difficult: To get the profile information for a single user, you must retrieve the entire member list, and then search for the one you want. There's a helper function in the Bot Framework SDK to make it simpler, but it isn't efficient. +* Getting profile details for a single user is difficult: To get the profile information for a single user, you must retrieve the entire member list, and then search for the one you want. There's a helper function in the Agents SDK to make it simpler, but it isn't efficient. With the introduction of organization wide teams, there's a requirement to better align these APIs with Microsoft 365 privacy controls. Bots used in large teams can retrieve basic profile information similar to the `User.ReadBasic.All` Microsoft Graph permission. Admins have a great deal of control over which apps and bots can be used in their tenant, but these settings are different from Microsoft Graph. @@ -58,19 +58,19 @@ The following code provides a sample JSON representation of what is returned by Following are the upcoming API changes: -* A new API is created [`TeamsInfo.GetPagedMembersAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) for retrieving profile information for members of a chat or team. This API is now available with the Bot Framework version 4.8 or later SDK. For development in all other versions, use the [`GetConversationPagedMembers`](/dotnet/api/microsoft.bot.connector.conversationsextensions.getconversationpagedmembersasync?view=botbuilder-dotnet-stable&preserve-view=true) method. +* A new API is created [`TeamsInfo.GetPagedMembersAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) for retrieving profile information for members of a chat or team. This API is now available with the Agents SDK version 4.8 or later SDK. For development in all other versions, use the [`GetConversationPagedMembers`](/dotnet/api/microsoft.bot.connector.conversationsextensions.getconversationpagedmembersasync?view=botbuilder-dotnet-stable&preserve-view=true) method. > [!NOTE] > - > Upgrade to the latest version of the Microsoft Bot Framework SDK as follows: + > Upgrade to the latest version of the Microsoft Agents SDK as follows: > - > * Bot Framework SDK v3: Upgrade to version 3.30.2 or later. - > * Bot Framework SDK v4: Upgrade to version 4.8 or later. + > * Agents SDK v3: Upgrade to version 3.30.2 or later. + > * Agents SDK v4: Upgrade to version 4.8 or later. * A new API is created [`TeamsInfo.GetMemberAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#get-single-member-details) for retrieving the profile information for a single user. It takes the ID of the team or chat and a [UPN](/windows/win32/ad/naming-properties#userprincipalname) that is `userPrincipalName`, Microsoft Entra Object ID `objectId`, or the Teams user ID `id` as parameters and returns the profile information for that user. > [!NOTE] - > `objectId` is changed to `aadObjectId` to match what is called in the `Activity` object of a Bot Framework message. The new API is available with version 4.8 or later of the Bot Framework SDK. It is also available in the Teams SDK extension Bot Framework 3.x. Meanwhile, you can use the [REST](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#get-single-member-details) endpoint. + > `objectId` is changed to `aadObjectId` to match what is called in the `Activity` object of a Agents SDK message. The new API is available with version 4.8 or later of the Agents SDK. It is also available in the Teams SDK extension Agents SDK 3.x. Meanwhile, you can use the [REST](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#get-single-member-details) endpoint. * `TeamsInfo.GetMembersAsync` in C# and `TeamsInfo.getMembers` in TypeScript or Node.js is formally deprecated. Once the new API is available, you must update your bots to use it. This also applies to the [underlying REST API that these APIs use](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#tabpanel_CeZOj-G++Q_json). * Bots can't proactively retrieve the `userPrincipalName` or `email` properties for members of a chat or team. Bots must use the Graph APIs to retrieve the required information. The new `GetConversationPagedMembers` API can't return the `userPrincipalName` and `email` properties. From 53e7d0de95ae11bcdd0237072dc60b744854df19 Mon Sep 17 00:00:00 2001 From: KirtiJha-MSFT Date: Mon, 22 Sep 2025 12:23:13 +0530 Subject: [PATCH 2/2] Updated --- .../respond-to-task-module-submit.md | 2 +- .../search-commands/define-search-command.md | 4 ++-- .../resources/team-chat-member-api-changes.md | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md index 95f6ebf603f..8bed9354d8c 100644 --- a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md +++ b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md @@ -203,7 +203,7 @@ You can select to respond to the `submitAction` event with additional dialog. It * Dynamically change the information collection based on user input. * Validate the information submitted by the user and resend the form with an error message if something is wrong. -The method for response is the same as [responding to the initial `fetchTask` event](~/messaging-extensions/how-to/action-commands/create-task-module.md). If you're using the Agents SDK the same event triggers for both submit actions. To make this work, you must add logic that determines the correct response. +The method for response is the same as [responding to the initial `fetchTask` event](~/messaging-extensions/how-to/action-commands/create-task-module.md). If you're using the Microsoft 365 Agents SDK (previously known as Bot Framework SDK) the same event triggers for both submit actions. To make this work, you must add logic that determines the correct response. ## Bot response with Adaptive Card diff --git a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md index f8214210a22..41ec74ca4d6 100644 --- a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md +++ b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md @@ -25,7 +25,7 @@ The following image displays the invoke locations of the search command: To add the search command to your [app manifest](../../../resources/schema/manifest-schema.md#composeextensions) (previously called Teams app manifest), you must add a new `composeExtensions` object to the top level of your app manifest JSON. You can add the search command either with the help of Developer Portal or manually. -### Create search message extension using Agents SDK +### Create search message extension using Microsoft 365 Agents SDK You can create a search message extension using Microsoft 365 Agents Toolkit (previously known as Teams Toolkit) and Developer Portal for Teams. @@ -105,7 +105,7 @@ To run the message extension in Teams, follow these steps: * Parameter description * Select the type of input -2. Select **Save**. A search message extension using Agents SDK created. +2. Select **Save**. A search message extension using Microsoft 365 Agents SDK (previously known as Bot Framework SDK) created. 3. At the upper-right corner, select **Preview in Teams**. The app opens in Teams desktop or web client. --- diff --git a/msteams-platform/resources/team-chat-member-api-changes.md b/msteams-platform/resources/team-chat-member-api-changes.md index 80903573042..0f006197712 100644 --- a/msteams-platform/resources/team-chat-member-api-changes.md +++ b/msteams-platform/resources/team-chat-member-api-changes.md @@ -14,14 +14,14 @@ ms.owner: angovil > [!NOTE] > > * The deprecation process for `TeamsInfo.getMembers` and `TeamsInfo.GetMembersAsync` APIs have started. Initially, they are heavily throttled to five requests per minute and return a maximum of 10K members per team. This results in the full roster not being returned as team size increases. -> * You must update to version 4.10 or higher of the Agents SDK and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes). +> * You must update to version 4.10 or higher of the Microsoft 365 Agents SDK (previously known as Bot Framework SDK) and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes). If you want to retrieve information for one or more members of a chat or team, you can use the [Microsoft Teams bot APIs](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) `TeamsInfo.GetMembersAsync` for C# or `TeamsInfo.getMembers` for TypeScript or Node.js APIs. For more information, see [fetch roster or user profile](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile). These APIs have the following shortcomings: * For large teams, performance is poor and timeouts are more likely: The maximum team size has grown since Teams was released. As `GetMembersAsync` or `getMembers` returns the entire member list, it takes a long time for the API call to return for large teams, and it's common for the call to time out and you must try again. -* Getting profile details for a single user is difficult: To get the profile information for a single user, you must retrieve the entire member list, and then search for the one you want. There's a helper function in the Agents SDK to make it simpler, but it isn't efficient. +* Getting profile details for a single user is difficult: To get the profile information for a single user, you must retrieve the entire member list, and then search for the one you want. There's a helper function in the Microsoft 365 Agents SDK (previously known as Bot Framework SDK) to make it simpler, but it isn't efficient. With the introduction of organization wide teams, there's a requirement to better align these APIs with Microsoft 365 privacy controls. Bots used in large teams can retrieve basic profile information similar to the `User.ReadBasic.All` Microsoft Graph permission. Admins have a great deal of control over which apps and bots can be used in their tenant, but these settings are different from Microsoft Graph. @@ -58,19 +58,19 @@ The following code provides a sample JSON representation of what is returned by Following are the upcoming API changes: -* A new API is created [`TeamsInfo.GetPagedMembersAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) for retrieving profile information for members of a chat or team. This API is now available with the Agents SDK version 4.8 or later SDK. For development in all other versions, use the [`GetConversationPagedMembers`](/dotnet/api/microsoft.bot.connector.conversationsextensions.getconversationpagedmembersasync?view=botbuilder-dotnet-stable&preserve-view=true) method. +* A new API is created [`TeamsInfo.GetPagedMembersAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) for retrieving profile information for members of a chat or team. This API is now available with the Microsoft 365 Agents SDK (previously known as Bot Framework SDK) version 4.8 or later SDK. For development in all other versions, use the [`GetConversationPagedMembers`](/dotnet/api/microsoft.bot.connector.conversationsextensions.getconversationpagedmembersasync?view=botbuilder-dotnet-stable&preserve-view=true) method. > [!NOTE] > - > Upgrade to the latest version of the Microsoft Agents SDK as follows: + > Upgrade to the latest version of the Microsoft 365 Agents SDK (previously known as Bot Framework SDK) as follows: > - > * Agents SDK v3: Upgrade to version 3.30.2 or later. - > * Agents SDK v4: Upgrade to version 4.8 or later. + > * Microsoft 365 Agents SDK v3: Upgrade to version 3.30.2 or later. + > * Microsoft 365 Agents SDK v4: Upgrade to version 4.8 or later. * A new API is created [`TeamsInfo.GetMemberAsync`](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#get-single-member-details) for retrieving the profile information for a single user. It takes the ID of the team or chat and a [UPN](/windows/win32/ad/naming-properties#userprincipalname) that is `userPrincipalName`, Microsoft Entra Object ID `objectId`, or the Teams user ID `id` as parameters and returns the profile information for that user. > [!NOTE] - > `objectId` is changed to `aadObjectId` to match what is called in the `Activity` object of a Agents SDK message. The new API is available with version 4.8 or later of the Agents SDK. It is also available in the Teams SDK extension Agents SDK 3.x. Meanwhile, you can use the [REST](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#get-single-member-details) endpoint. + > `objectId` is changed to `aadObjectId` to match what is called in the `Activity` object of a Microsoft 365 Agents SDK (previously known as Bot Framework SDK) message. The new API is available with version 4.8 or later of the Microsoft 365 Agents SDK (previously known as Bot Framework SDK). It is also available in the Teams SDK extension Microsoft 365 Agents SDK (previously known as Bot Framework SDK) 3.x. Meanwhile, you can use the [REST](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#get-single-member-details) endpoint. * `TeamsInfo.GetMembersAsync` in C# and `TeamsInfo.getMembers` in TypeScript or Node.js is formally deprecated. Once the new API is available, you must update your bots to use it. This also applies to the [underlying REST API that these APIs use](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#tabpanel_CeZOj-G++Q_json). * Bots can't proactively retrieve the `userPrincipalName` or `email` properties for members of a chat or team. Bots must use the Graph APIs to retrieve the required information. The new `GetConversationPagedMembers` API can't return the `userPrincipalName` and `email` properties.