From c79f313050e0014707ce9f1029ce869c95ead53a Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 8 Apr 2026 15:52:21 +0530 Subject: [PATCH 01/32] Update document: import-external-messages-to-teams --- .../import-messages/import-external-messages-to-teams.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 24cbd866713..5a56ac9d48c 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/01/2026 +ms.date: 04/08/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -295,7 +295,7 @@ Now you can import back-in-time messages by including the `createdDateTime` and > [!NOTE] > -> * The API doesn't support messages imported with a creation date and time earlier than the `createdDateTime` for the message thread. +> * When importing messages, ensure that the `createdDateTime` of messages is later than the `createdDateTime` of the destination chat or channel. > * `createdDateTime` must be unique across messages in the same thread. > * `createdDateTime` supports timestamps with milliseconds precision. For example, if the incoming request message has `createdDateTime` set to *2020-09-16T05:50:31.0025302Z*, the API converts it to *2020-09-16T05:50:31.002Z* when ingesting the message. @@ -437,7 +437,7 @@ HTTP/1.1 200 OK > [!div class="nextstepaction"] > [I ran into an issue](https://github.com/MicrosoftDocs/msteams-docs/issues/new?template=Doc-Feedback.yaml&title=%5BI+ran+into+an+issue%5D+Step+5%3A+Add+team+members&&author=%40AkJo&pageUrl=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fmicrosoftteams%2Fplatform%2Fgraph-api%2Fimport-messages%2Fimport-external-messages-to-teams%23step-five-add-team-members&contentSourceUrl=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmsteams-docs%2Fblob%2Fmain%2Fmsteams-platform%2Fgraph-api%2Fimport-messages%2Fimport-external-messages-to-teams.md&documentVersionIndependentId=ce77e760-90cf-e6b1-3cec-ae55ee50c33e&platformId=c9cc8ad3-6c28-7c8c-af03-219bbefa1d38&metadata=*%2BID%253A%2Be473e1f3-69f5-bcfa-bcab-54b098b59c80%2B%250A*%2BService%253A%2B%2A%2Amsteams%2A%2A) -## Step 4: Complete migration mode +## Step 4: Complete migration -For existing channels or chats already in migration mode, use the `completeMigration` API to [mark the migration state as completed](/graph/api/channel-completemigration?view=graph-rest-beta&branch=pr-en-us-26836&tabs=http&preserve-view=true ). This process ensures that the channel or chat remains permanently available instead of being dropped after migration. +For existing channels or chats already in migration mode, use the `completeMigration` API to [mark the migration state as completed](/graph/api/channel-completemigration?view=graph-rest-beta&branch=pr-en-us-26836&tabs=http&preserve-view=true ). Completing the migration is necessary to ensure that all the users of chat or channel see the same messages. Not completing the migration can result into inconsistent view of the chat or channel on Microsoft Teams clients. ### Request (complete existing channel migration) From 962c9b51558fa6a704717a97c32d6fde2ae04eaa Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 8 Apr 2026 15:58:30 +0530 Subject: [PATCH 02/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 5a56ac9d48c..9122e796494 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -77,8 +77,8 @@ You can import historical messages seamlessly into existing channels or chats by 1. [Start migration](#step-1-start-migration) 1. [Check migration status](#step-2-check-migration-status) 1. [Import messages](#step-3-import-messages) -1. [Complete migration mode](#step-4-complete-migration-mode) -1. [Verify migration mode completion](#step-5-verify-migration-mode-completion) +1. [Complete migration](#step-4-complete-migration) +1. [Verify migration completion](#step-5-verify-migration-completion) ## Step 1: Start migration From c7faca036bb7345861524cbfcd2a95ebd3c1817e Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 8 Apr 2026 16:02:17 +0530 Subject: [PATCH 03/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 9122e796494..f0ba4e3766e 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -543,7 +543,7 @@ To ensure that member A can see the 9 AM imported messages: 1. Remove member A from the chat. 1. Add member A with the `visibleHistoryStartDateTime` property set before 9 AM. -## Step 5: Verify migration mode completion +## Step 5: Verify migration completion Call [Get channel](/graph/api/channel-get?view=graph-rest-1.0&tabs=http&preserve-view=true) or [Get chat](/graph/api/chat-get?view=graph-rest-1.0&tabs=http&preserve-view=true) to verify that the `migrationMode` is marked as `Completed`. From cb1df661f52bfdbf6bdee97505eed3ea47409944 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Fri, 17 Apr 2026 16:24:19 +0530 Subject: [PATCH 04/32] Trial update --- .../import-external-messages-to-teams.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index f0ba4e3766e..6f3f2d93afd 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/08/2026 +ms.date: 04/17/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -14,9 +14,14 @@ With Microsoft Graph, you can migrate users' existing message history and data f ## Permissions -| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | -|---------- |-------------|-------------|------|----------------|-------------------------| -| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Creating and managing resources for migration to Teams. | **Application-only** | Yes | POST /team | +As **prerequisites**, the application must have the following permissions: + +* Creating Conversations + +| Task | Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | +|---------- |-------------|-------------|------|----------------|--------------|------------------| +|Create Chat| Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | **Application and Delegated** | Application: Yes, Delegated: Yes | | +|Create Team | Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All | | | | | | > [!NOTE] > Delegated authentication isn't supported. From d7a186029b25ce3ae811c33ffdd22edc68c7fca1 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 15:40:29 +0530 Subject: [PATCH 05/32] Perm tables --- .../import-external-messages-to-teams.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 6f3f2d93afd..4b11c3b3777 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/17/2026 +ms.date: 04/22/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -16,12 +16,16 @@ With Microsoft Graph, you can migrate users' existing message history and data f As **prerequisites**, the application must have the following permissions: -* Creating Conversations +* For creating conversations + +| Task | Scope name | Display name | Description | +| ---- | ---------- | ------------ | ----------- | +| Create Chat | Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | +| Create Team |
  • Team.Create
  • Directory.ReadWrite.All
  • Group.ReadWrite.All
  • Teamwork.Migrate.All
|
  • [Create teams](/graph/permissions-reference#teamcreate)
  • [Read and write directory data](/graph/permissions-reference#directoryreadwriteall)
  • [Read and write all groups](/graph/permissions-reference#groupreadwriteall)
  • [Migrate teamwork data](/graph/permissions-reference#teamworkmigrateall)
[Create chat and channel messages with anyone's identity and with any timestamp](/graph/permissions-reference#teamworkmigrateall) |
  • Allows the app to create teams either without a signed-in user (application) or on behalf of the signed-in user (delegated).
  • Allows the app to read and write directory data (such as users and groups) either with a signed-in user (delegated) or without one (application), but does not allow deleting users or groups or resetting user passwords.
  • Allows the app, without a signed-in user, to create and delete groups, read and update all group properties and memberships, and read and write conversations, and in delegated scenarios, allows the app to create groups, read group properties and memberships, enable group owners to manage their groups, and allow group members to update group content on behalf of the signed-in user.
  • Allows the app to send chat and channel messages without a signed-in user, specifying the sender, backdating messages, and posting to any chat or channel in the organization.
| + +Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All +Create Channel - Channel.Create.Group, Channel.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All -| Task | Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | -|---------- |-------------|-------------|------|----------------|--------------|------------------| -|Create Chat| Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | **Application and Delegated** | Application: Yes, Delegated: Yes | | -|Create Team | Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All | | | | | | > [!NOTE] > Delegated authentication isn't supported. From a1f2bfcad8b970061101904bb1615bbc524bbd88 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 16:24:56 +0530 Subject: [PATCH 06/32] Table trial --- .../import-external-messages-to-teams.md | 82 ++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 4b11c3b3777..56629e27d5d 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -21,7 +21,87 @@ As **prerequisites**, the application must have the following permissions: | Task | Scope name | Display name | Description | | ---- | ---------- | ------------ | ----------- | | Create Chat | Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | -| Create Team |
  • Team.Create
  • Directory.ReadWrite.All
  • Group.ReadWrite.All
  • Teamwork.Migrate.All
|
  • [Create teams](/graph/permissions-reference#teamcreate)
  • [Read and write directory data](/graph/permissions-reference#directoryreadwriteall)
  • [Read and write all groups](/graph/permissions-reference#groupreadwriteall)
  • [Migrate teamwork data](/graph/permissions-reference#teamworkmigrateall)
[Create chat and channel messages with anyone's identity and with any timestamp](/graph/permissions-reference#teamworkmigrateall) |
  • Allows the app to create teams either without a signed-in user (application) or on behalf of the signed-in user (delegated).
  • Allows the app to read and write directory data (such as users and groups) either with a signed-in user (delegated) or without one (application), but does not allow deleting users or groups or resetting user passwords.
  • Allows the app, without a signed-in user, to create and delete groups, read and update all group properties and memberships, and read and write conversations, and in delegated scenarios, allows the app to create groups, read group properties and memberships, enable group owners to manage their groups, and allow group members to update group content on behalf of the signed-in user.
  • Allows the app to send chat and channel messages without a signed-in user, specifying the sender, backdating messages, and posting to any chat or channel in the organization.
| +| Create Team |
  • Team.Create
  • Directory.ReadWrite.All
  • Group.ReadWrite.All
  • Teamwork.Migrate.All
|
  • [Create teams](/graph/permissions-reference#teamcreate)
  • [Read and write directory data](/graph/permissions-reference#directoryreadwriteall)
  • [Read and write all groups](/graph/permissions-reference#groupreadwriteall)
  • [Migrate teamwork data](/graph/permissions-reference#teamworkmigrateall)
|
  • Allows the app to create teams either without a signed-in user (application) or on behalf of the signed-in user (delegated).
  • Allows the app to read and write directory data (such as users and groups) either with a signed-in user (delegated) or without one (application), but does not allow deleting users or groups or resetting user passwords.
  • Allows the app, without a signed-in user, to create and delete groups, read and update all group properties and memberships, and read and write conversations, and in delegated scenarios, allows the app to create groups, read group properties and memberships, enable group owners to manage their groups, and allow group members to update group content on behalf of the signed-in user.
  • Allows the app to send chat and channel messages without a signed-in user, specifying the sender, backdating messages, and posting to any chat or channel in the organization.
| + + + + + + + + + + + + + + +
ScenarioPermissions
Create team + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionReferenceDescription
Team.Create + Create teams + + Allows the app to create teams either without a signed-in user + (application) or on behalf of the signed-in user (delegated). +
Directory.ReadWrite.All + + Read and write directory data + + + Allows the app to read and write directory data (users and groups) + with or without a signed-in user, but does not allow deleting users + or groups or resetting user passwords. +
Group.ReadWrite.All + + Read and write all groups + + + Application: create and delete groups, read and update group + properties and memberships, and read and write conversations.
+ Delegated: create groups, read group properties and memberships, + allow owners to manage groups, and allow members to update group + content. +
Teamwork.Migrate.All + + Migrate teamwork data + + + Allows the app to send chat and channel messages without a + signed-in user, including specifying the sender, backdating + messages, and posting to any chat or channel in the organization. +
+
+`` + Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All Create Channel - Channel.Create.Group, Channel.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All From 80f320e0c615488499caecc7f1e48a511e0c5047 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 16:33:46 +0530 Subject: [PATCH 07/32] Table trial 2 - Sub rows --- .../import-external-messages-to-teams.md | 135 +++++++++--------- 1 file changed, 69 insertions(+), 66 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 56629e27d5d..05e2cc259d1 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -23,84 +23,87 @@ As **prerequisites**, the application must have the following permissions: | Create Chat | Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | | Create Team |
  • Team.Create
  • Directory.ReadWrite.All
  • Group.ReadWrite.All
  • Teamwork.Migrate.All
|
  • [Create teams](/graph/permissions-reference#teamcreate)
  • [Read and write directory data](/graph/permissions-reference#directoryreadwriteall)
  • [Read and write all groups](/graph/permissions-reference#groupreadwriteall)
  • [Migrate teamwork data](/graph/permissions-reference#teamworkmigrateall)
|
  • Allows the app to create teams either without a signed-in user (application) or on behalf of the signed-in user (delegated).
  • Allows the app to read and write directory data (such as users and groups) either with a signed-in user (delegated) or without one (application), but does not allow deleting users or groups or resetting user passwords.
  • Allows the app, without a signed-in user, to create and delete groups, read and update all group properties and memberships, and read and write conversations, and in delegated scenarios, allows the app to create groups, read group properties and memberships, enable group owners to manage their groups, and allow group members to update group content on behalf of the signed-in user.
  • Allows the app to send chat and channel messages without a signed-in user, specifying the sender, backdating messages, and posting to any chat or channel in the organization.
| + - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + +
ScenarioPermissionsTaskScope nameDisplay nameDescription
Create ChatChat.Create + Create chats + + Allows the app to create chats without a signed-in user (application scenarios) or + create chats on behalf of the signed‑in user (delegated scenarios). +
Create teamCreate TeamTeam.Create + Create teams + + Allows the app to create teams either without a signed‑in user (application) + or on behalf of the signed‑in user (delegated). +
Directory.ReadWrite.All + + Read and write directory data + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionReferenceDescription
Team.Create - Create teams - - Allows the app to create teams either without a signed-in user - (application) or on behalf of the signed-in user (delegated). -
Directory.ReadWrite.All - - Read and write directory data - - - Allows the app to read and write directory data (users and groups) - with or without a signed-in user, but does not allow deleting users - or groups or resetting user passwords. -
Group.ReadWrite.All - - Read and write all groups - - - Application: create and delete groups, read and update group - properties and memberships, and read and write conversations.
- Delegated: create groups, read group properties and memberships, - allow owners to manage groups, and allow members to update group - content. -
Teamwork.Migrate.All - - Migrate teamwork data - - - Allows the app to send chat and channel messages without a - signed-in user, including specifying the sender, backdating - messages, and posting to any chat or channel in the organization. -
+ Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. +
Group.ReadWrite.All + + Read and write all groups + + + Application: create and delete groups; read and update all group properties, + memberships, and conversations.

+ Delegated: create groups; read group properties and memberships; allow group + owners to manage groups and members to update group content. +
Teamwork.Migrate.All + + Migrate teamwork data + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization.
-`` +``` + + Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All From d12e81d7a92427dd1e64f33a7a20ef5caa031442 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 16:40:54 +0530 Subject: [PATCH 08/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 05e2cc259d1..bb0b136d4e8 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -101,9 +101,6 @@ As **prerequisites**, the application must have the following permissions: -``` - - Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All From abef948580038d4f5d351e6917b92d2edf146209 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 16:45:22 +0530 Subject: [PATCH 09/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index bb0b136d4e8..b43a1b8914e 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -46,7 +46,6 @@ As **prerequisites**, the application must have the following permissions: create chats on behalf of the signed‑in user (delegated scenarios). - Create Team @@ -102,7 +101,6 @@ As **prerequisites**, the application must have the following permissions: - Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All Create Channel - Channel.Create.Group, Channel.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All From db52bea76b8c82d7587418ef41dbaeb1b658c54a Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Wed, 22 Apr 2026 17:23:50 +0530 Subject: [PATCH 10/32] Update rows for Create Channel --- .../import-external-messages-to-teams.md | 76 +++++++++++++++---- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index b43a1b8914e..47ba253e66e 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -18,12 +18,6 @@ As **prerequisites**, the application must have the following permissions: * For creating conversations -| Task | Scope name | Display name | Description | -| ---- | ---------- | ------------ | ----------- | -| Create Chat | Chat.Create | [Create chats](/graph/permissions-reference#chatcreate)| Allows the app to create chats without a signed-in user (application scenarios) / Allows the app to create chats on behalf of the signed-in user (delegated scenarios). | -| Create Team |
  • Team.Create
  • Directory.ReadWrite.All
  • Group.ReadWrite.All
  • Teamwork.Migrate.All
|
  • [Create teams](/graph/permissions-reference#teamcreate)
  • [Read and write directory data](/graph/permissions-reference#directoryreadwriteall)
  • [Read and write all groups](/graph/permissions-reference#groupreadwriteall)
  • [Migrate teamwork data](/graph/permissions-reference#teamworkmigrateall)
|
  • Allows the app to create teams either without a signed-in user (application) or on behalf of the signed-in user (delegated).
  • Allows the app to read and write directory data (such as users and groups) either with a signed-in user (delegated) or without one (application), but does not allow deleting users or groups or resetting user passwords.
  • Allows the app, without a signed-in user, to create and delete groups, read and update all group properties and memberships, and read and write conversations, and in delegated scenarios, allows the app to create groups, read group properties and memberships, enable group owners to manage their groups, and allow group members to update group content on behalf of the signed-in user.
  • Allows the app to send chat and channel messages without a signed-in user, specifying the sender, backdating messages, and posting to any chat or channel in the organization.
| - - @@ -42,8 +36,8 @@ As **prerequisites**, the application must have the following permissions: Create chats @@ -79,9 +73,68 @@ As **prerequisites**, the application must have the following permissions: + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -101,9 +154,6 @@ As **prerequisites**, the application must have the following permissions:
- Allows the app to create chats without a signed-in user (application scenarios) or - create chats on behalf of the signed‑in user (delegated scenarios). + Allows the app to create chats without a signed-in user (application) or + create chats on behalf of the signed‑in user (delegated).
- Application: create and delete groups; read and update all group properties, + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). +
Teamwork.Migrate.All + + Migrate teamwork data + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization. +
Create ChannelChannel.Create + Create channels + + Allows the app to create channels in any team, without a signed-in user (application) or on behalf of the signed-in user (delegated). +
Channel.Create.Group (RSC) + + Create channels in this team + + + Allows the app to create channels in this team, without a signed-in user. +
Directory.ReadWrite.All + + Read and write directory data + + + Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. + Group.ReadWrite.All + + Read and write all groups + + + - Application: create and delete groups; read and update all group properties, memberships, and conversations.

- Delegated: create groups; read group properties and memberships; allow group + - Delegated: create groups; read group properties and memberships; allow group owners to manage groups and members to update group content.
-Create Team - Team.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All -Create Channel - Channel.Create.Group, Channel.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All - > [!NOTE] > Delegated authentication isn't supported. From 62de5ea1bb83139b2ec92edec75c5ae160e96717 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 16:36:47 +0530 Subject: [PATCH 11/32] Fix table syntax --- .../import-messages/import-external-messages-to-teams.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 47ba253e66e..7e8ef61f35e 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/22/2026 +ms.date: 04/23/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -642,7 +642,6 @@ For existing channels or chats already in migration mode, use the `completeMigra ```HTTP POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/completeMigration - ``` ### Response @@ -654,7 +653,7 @@ HTTP/1.1 204 NoContent ### Request (complete existing chat migration) ```HTTP -POST https://graph.microsoft.com/beta/chats/{chat-id}/completeMigration +POST https://graph.microsoft.com/beta/chats/{chat-id}/completeMigration ``` ### Response From bb97d3201c7c35c48e6d2d195ef8abcbb995efdc Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 16:41:39 +0530 Subject: [PATCH 12/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 7e8ef61f35e..65de2b7af58 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -125,6 +125,8 @@ As **prerequisites**, the application must have the following permissions: or delegated scenarios, but does not allow deleting users or groups, or resetting user passwords. + + Group.ReadWrite.All @@ -132,10 +134,8 @@ As **prerequisites**, the application must have the following permissions: - - Application: create and delete groups; read and update all group properties, - memberships, and conversations.

- - Delegated: create groups; read group properties and memberships; allow group - owners to manage groups and members to update group content. + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). From 485798e3bb8cb2ccfe8f2a3a5979909751aeeebb Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 16:47:40 +0530 Subject: [PATCH 13/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 65de2b7af58..0137177d44b 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -90,7 +90,6 @@ As **prerequisites**, the application must have the following permissions: or channel in the organization. - Create Channel @@ -138,6 +137,7 @@ As **prerequisites**, the application must have the following permissions: memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). + Teamwork.Migrate.All From 424289be62b036c8772ded625ea16b4a0603785a Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 16:54:33 +0530 Subject: [PATCH 14/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 0137177d44b..d60e9941876 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -136,9 +136,8 @@ As **prerequisites**, the application must have the following permissions: Allows the app to create and delete groups; read and update all group properties, memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). + - - Teamwork.Migrate.All From a07988a4621c929a1d64709b3fb3fbbef7821546 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 16:58:44 +0530 Subject: [PATCH 15/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index d60e9941876..cb20de9e842 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -42,7 +42,7 @@ As **prerequisites**, the application must have the following permissions: - Create Team + Create Team Team.Create Create teams From 4938da75e909f1397cc0de0345d0c8ccb0654cfd Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 17:01:29 +0530 Subject: [PATCH 16/32] Update documentation via Content Mentor Quick Workspace --- .../import-messages/import-external-messages-to-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index cb20de9e842..d60e9941876 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -42,7 +42,7 @@ As **prerequisites**, the application must have the following permissions: - Create Team + Create Team Team.Create Create teams From 26c83a1797a2d214d26e29db52ca305bc7f032ec Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 23 Apr 2026 17:07:38 +0530 Subject: [PATCH 17/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 175 +++++++----------- 1 file changed, 64 insertions(+), 111 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index d60e9941876..3e030d7b909 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -40,117 +40,70 @@ As **prerequisites**, the application must have the following permissions: create chats on behalf of the signed‑in user (delegated). - - - Create Team - Team.Create - - Create teams - - - Allows the app to create teams either without a signed‑in user (application) - or on behalf of the signed‑in user (delegated). - - - - Directory.ReadWrite.All - - - Read and write directory data - - - - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting - user passwords. - - - - Group.ReadWrite.All - - - Read and write all groups - - - - Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). - - - - Teamwork.Migrate.All - - - Migrate teamwork data - - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. - - - - - Create Channel - Channel.Create - - Create channels - - - Allows the app to create channels in any team, without a signed-in user (application) or on behalf of the signed-in user (delegated). - - - - Channel.Create.Group (RSC) - - - Create channels in this team - - - - Allows the app to create channels in this team, without a signed-in user. - - - - Directory.ReadWrite.All - - - Read and write directory data - - - - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting - user passwords. - - - - Group.ReadWrite.All - - - Read and write all groups - - - - Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group properties and memberships; allow group owners to manage groups and members to update group content (delegated). - - - - Teamwork.Migrate.All - - - Migrate teamwork data - - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. - - - + + + Create Channel + Channel.Create + + Create channels + + + Allows the app to create channels in any team, without a signed-in user + (application) or on behalf of the signed-in user (delegated). + + + + Channel.Create.Group (RSC) + + + Create channels in this team + + + + Allows the app to create channels in this team, without a signed-in user. + + + + Directory.ReadWrite.All + + + Read and write directory data + + + + Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. + + + + Group.ReadWrite.All + + + Read and write all groups + + + + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group + properties and memberships; allow group owners to manage groups and members + to update group content (delegated). + + + + Teamwork.Migrate.All + + + Migrate teamwork data + + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization. + + + From 36bc19a069e0ede6af58f6629331903f2d6e20a9 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Mon, 27 Apr 2026 15:18:00 +0530 Subject: [PATCH 18/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 55 ++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 3e030d7b909..e16bdb9cfc5 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/23/2026 +ms.date: 04/27/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -40,6 +40,58 @@ As **prerequisites**, the application must have the following permissions: create chats on behalf of the signed‑in user (delegated). + + + Create Channel + Team.Create + + Create channels + + + Allows the app to create teams without a signed-in user + (application) or on behalf of the signed-in user (delegated). + + + + Directory.ReadWrite.All + + + Read and write directory data + + + + Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. + + + + Group.ReadWrite.All + + + Read and write all groups + + + + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group + properties and memberships; allow group owners to manage groups and members + to update group content (delegated). + + + + Teamwork.Migrate.All + + + Migrate teamwork data + + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization. + + Create Channel @@ -106,7 +158,6 @@ As **prerequisites**, the application must have the following permissions: - > [!NOTE] > Delegated authentication isn't supported. From c81f9db7ae765999fed77a4a0b5c95ef501f12b2 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Mon, 27 Apr 2026 15:30:51 +0530 Subject: [PATCH 19/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 138 +++++++++++++++++- 1 file changed, 135 insertions(+), 3 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index e16bdb9cfc5..74cc96df683 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -14,9 +14,11 @@ With Microsoft Graph, you can migrate users' existing message history and data f ## Permissions -As **prerequisites**, the application must have the following permissions: +### Prerequisites -* For creating conversations +Your app must have the following permissions as a prerequisite to import messages into Teams. + +#### Create Conversations @@ -42,7 +44,137 @@ As **prerequisites**, the application must have the following permissions: - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Create ChannelCreate TeamTeam.Create + Create channels + + Allows the app to create teams without a signed-in user + (application) or on behalf of the signed-in user (delegated). +
Directory.ReadWrite.All + + Read and write directory data + + + Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. +
Group.ReadWrite.All + + Read and write all groups + + + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group + properties and memberships; allow group owners to manage groups and members + to update group content (delegated). +
Teamwork.Migrate.All + + Migrate teamwork data + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization. +
Create ChannelChannel.Create + Create channels + + Allows the app to create channels in any team, without a signed-in user + (application) or on behalf of the signed-in user (delegated). +
Channel.Create.Group (RSC) + + Create channels in this team + + + Allows the app to create channels in this team, without a signed-in user. +
Directory.ReadWrite.All + + Read and write directory data + + + Allows the app to read and write directory data (users and groups) in application + or delegated scenarios, but does not allow deleting users or groups, or resetting + user passwords. +
Group.ReadWrite.All + + Read and write all groups + + + Allows the app to create and delete groups; read and update all group properties, + memberships, and conversations (application), and create groups; read group + properties and memberships; allow group owners to manage groups and members + to update group content (delegated). +
Teamwork.Migrate.All + + Migrate teamwork data + + + Allows the app to send chat and channel messages without a signed‑in user, + including specifying the sender, backdating messages, and posting to any chat + or channel in the organization. +
+ +#### Manage Conversation Members + + + + + + + + + + + + + + - + - - + + - + - + - - - - - From 4a6e8f43d22999c30ce624b34306f2b9ce6c7e2d Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Mon, 27 Apr 2026 16:43:40 +0530 Subject: [PATCH 21/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index a2bf81ad05c..9c54e24c697 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -174,7 +174,7 @@ Your app must have the following permissions as a prerequisite to import message - + - + + + + - - - - + + + + + - From 449b30c649fe7f2a2579e876e198c4196db776c2 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Mon, 27 Apr 2026 17:00:07 +0530 Subject: [PATCH 22/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 37 ++++++------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 9c54e24c697..34d25374525 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -205,40 +205,43 @@ Your app must have the following permissions as a prerequisite to import message Add and remove members from all chats, without a signed-in user. Delegated is not supported. + - + + - @@ -249,23 +252,7 @@ Your app must have the following permissions as a prerequisite to import message - - - - - From df6ef23ce7d8d49d459d8e527f4fe5193d208ada Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 07:34:55 +0530 Subject: [PATCH 23/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 34d25374525..b85987c392c 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/27/2026 +ms.date: 04/28/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -175,7 +175,7 @@ Your app must have the following permissions as a prerequisite to import message - + @@ -186,9 +186,7 @@ Your app must have the following permissions as a prerequisite to import message - + @@ -252,7 +250,7 @@ Your app must have the following permissions as a prerequisite to import message From 593dfc50c082b5e560713af98d95e2e838ac6ea7 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 07:47:24 +0530 Subject: [PATCH 24/32] Update documentation via Content Mentor Quick Workspace --- .../design-teams-app-icon-store-appbar.md | 2 +- .../import-external-messages-to-teams.md | 40 ++++++++++++++----- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md index e90e92ab150..37f8e21741d 100644 --- a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md +++ b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md @@ -5,7 +5,7 @@ author: heath-hamilton ms.localizationpriority: medium ms.author: lajanuar ms.topic: reference -ms.date: 03/20/2026 +ms.date: 04/28/2026 --- diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index b85987c392c..7456ba52d92 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -228,10 +228,9 @@ Your app must have the following permissions as a prerequisite to import message Add and remove members from all chats, without a signed‑in user. Delegated is not supported. - - + - + - + + + + + + + + + + + + +
TaskScope nameDisplay nameDescription
Create Team Team.Create Create channels From 9116eff4d2146af041f1fb68b1b5eefb86debb8b Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Mon, 27 Apr 2026 16:23:36 +0530 Subject: [PATCH 20/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 41 +++++-------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 74cc96df683..a2bf81ad05c 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -172,56 +172,37 @@ Your app must have the following permissions as a prerequisite to import message
Create TeamTeam.CreateAdd Chat MemberChat.Manage.Chat - Create channels + Add Chat Member - Allows the app to create teams without a signed-in user - (application) or on behalf of the signed-in user (delegated). + Allows the app to manage the chat, the chat's members and grant access to the chat's data, without a signed-in user.
Directory.ReadWrite.AllChat.ReadWrite.All - + Read and write all chats Read and write directory data - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting - user passwords. + Allows apps to read and write Microsoft Teams one‑to‑one, group, and channel chat messages (Application) without a signed‑in user and (Delegated) on behalf of a signed‑in user. Does not allow sending messages.
Group.ReadWrite.AllChatMember.ReadWrite.All - + Read and write all groups - Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group - properties and memberships; allow group owners to manage groups and members - to update group content (delegated). -
Teamwork.Migrate.All - - Migrate teamwork data - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. + Add and remove members from all chats, without a signed-in user. Delegated is not supported.
Add Chat MemberAdd Chat Member Chat.Manage.Chat Add Chat Member @@ -205,40 +205,40 @@ Your app must have the following permissions as a prerequisite to import message Add and remove members from all chats, without a signed-in user. Delegated is not supported.
Remove Chat MemberChat.Manage.Chat
Create ChannelChannel.Create - Create channels + Remove Chat Member - Allows the app to create channels in any team, without a signed-in user - (application) or on behalf of the signed-in user (delegated). + Allows the app to manage the chat, the chat's members and grant access to the chat's data, without a signed-in user.
Channel.Create.Group (RSC)ChatMember.ReadWrite.All - - Create channels in this team + + Read and write all groups - Allows the app to create channels in this team, without a signed-in user. + Add and remove members from all chats, without a signed-in user. Delegated is not supported.
Add Channel MemberChannelMember.ReadWrite.Group
Directory.ReadWrite.All - + Read and write directory data - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting - user passwords. + Read and write the members of channels of a team, without a signed-in user. Delegated is not supported.
Remove Chat Member Chat.Manage.Chat
- Remove Chat Member + + Remove chat member + - Allows the app to manage the chat, the chat's members and grant access to the chat's data, without a signed-in user. + Allows the app to manage a chat, including its members and data, without a signed‑in user.
ChatMember.ReadWrite.All - Read and write all groups + Read and write all chat members - Add and remove members from all chats, without a signed-in user. Delegated is not supported. + Add and remove members from all chats, without a signed‑in user. Delegated is not supported.
Add Channel Member ChannelMember.ReadWrite.Group
- Read and write directory data + Read and write channel members - Read and write the members of channels of a team, without a signed-in user. Delegated is not supported. + Read and write the members of channels in a team, without a signed‑in user. Delegated is not supported.
- Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group - properties and memberships; allow group owners to manage groups and members - to update group content (delegated). -
Teamwork.Migrate.All - - Migrate teamwork data - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. + Create, update, and delete groups; manage group memberships and conversations (application), and manage groups and members on behalf of a signed‑in user (delegated).
Add Chat MemberChat.Manage.ChatChat.Manage.Chat (RSC) Add Chat Member
Chat.ReadWrite.All - Read and write all chats - Read and write directory data - + Read the members of all chats, without a signed-in user. Delegated is noty supported Allows apps to read and write Microsoft Teams one‑to‑one, group, and channel chat messages (Application) without a signed‑in user and (Delegated) on behalf of a signed‑in user. Does not allow sending messages. @@ -198,7 +196,7 @@ Your app must have the following permissions as a prerequisite to import message ChatMember.ReadWrite.All - Read and write all groups + Add and remove members from all chats @@ -212,7 +210,7 @@ Your app must have the following permissions as a prerequisite to import message Chat.Manage.Chat - Remove chat member + Manage this chat @@ -223,7 +221,7 @@ Your app must have the following permissions as a prerequisite to import message ChatMember.ReadWrite.All - Read and write all chat members + Add and remove members from all chats @@ -234,14 +232,14 @@ Your app must have the following permissions as a prerequisite to import message
Add Channel MemberChannelMember.ReadWrite.GroupChannelMember.ReadWrite.Group (RSC) Read and write channel members - Read and write the members of channels in a team, without a signed‑in user. Delegated is not supported. + Read and write the members of channels of a team.
- Create, update, and delete groups; manage group memberships and conversations (application), and manage groups and members on behalf of a signed‑in user (delegated). + Allows the app to create, read, update, and delete groups; manage memberships, properties, and conversations without a signed-in user (application), and let signed-in users and group owners manage groups and content (delegated).
Add Channel MemberAdd Channel Member, Remove Channel Member ChannelMember.ReadWrite.Group (RSC) @@ -243,22 +242,43 @@ Your app must have the following permissions as a prerequisite to import message
Group.ReadWrite.AllChannelMember.ReadWrite.All - - Read and write all groups + + Add and remove members from all channels + + + Allows the app to Add and remove channel members and change member roles without a signed-in user (Application) and on behalf of the signed-in user (Delegated). +
Add Team Member, Remove Team MemberTeamMember.ReadWriteNonOwnerRole.All + + Add and remove members with non-owner role for all teams + + + Add and remove members from all teams without a signed-in user; cannot add or remove owners or promote a member to owner (Application) and on behalf of the signed-in user; cannot add or remove owners or promote a member to owner (Delegated). +
TeamMember.ReadWrite.All + + Add and remove members from teams - Allows the app to create, read, update, and delete groups; manage memberships, properties, and conversations without a signed-in user (application), and let signed-in users and group owners manage groups and content (delegated). + Add and remove members from teams and change member roles without a signed-in user across all teams (Application) and on behalf of the signed-in user (Delegated).
-> [!NOTE] -> Delegated authentication isn't supported. - ## Supported channel and chat types Teams supports migrating external message to existing channels or chats. Use any channel or chat that already exists in Teams, regardless of when you created it. This approach lets you add existing context to channels that are already active in Teams and maintains continuity for ongoing conversations. From 152fad0fe79530a7051b353695fa91786436b1cf Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 11:36:29 +0530 Subject: [PATCH 25/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 7456ba52d92..f8df0282355 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -279,6 +279,21 @@ Your app must have the following permissions as a prerequisite to import message +## Migration Requests + +Migration APIs| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | +|---------- |---------- |-------------|-------------|------|----------------|-----------| +| +
    +
  • StartChatMigration
  • +
  • StartChannelMigration
  • +
  • ImportChatMessage
  • +
  • ImportChannelMessage
  • +
  • CompleteChatMigration
  • +
  • CompleteChannelMigration
  • +
+| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Creating and managing resources for migration to Teams. | **Application-only** | Yes | POST /team | + ## Supported channel and chat types Teams supports migrating external message to existing channels or chats. Use any channel or chat that already exists in Teams, regardless of when you created it. This approach lets you add existing context to channels that are already active in Teams and maintains continuity for ongoing conversations. From ceceba2eccb0f13fc5148de275a02782e242d33d Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 11:41:45 +0530 Subject: [PATCH 26/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index f8df0282355..210c8b1e795 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -283,16 +283,7 @@ Your app must have the following permissions as a prerequisite to import message Migration APIs| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | |---------- |---------- |-------------|-------------|------|----------------|-----------| -| -
    -
  • StartChatMigration
  • -
  • StartChannelMigration
  • -
  • ImportChatMessage
  • -
  • ImportChannelMessage
  • -
  • CompleteChatMigration
  • -
  • CompleteChannelMigration
  • -
-| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Creating and managing resources for migration to Teams. | **Application-only** | Yes | POST /team | +|
  • StartChatMigration
  • StartChannelMigration
  • ImportChatMessage
  • ImportChannelMessage
  • CompleteChatMigration
  • CompleteChannelMigration
| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Creating and managing resources for migration to Teams. | **Application-only** | Yes | POST /team | ## Supported channel and chat types From d2a8cacfcb71fa3afa0c1e3889c5dd4d7f074322 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 18:59:23 +0530 Subject: [PATCH 27/32] Remove commented out content, final table fix and beta to v1.0 --- .../import-external-messages-to-teams.md | 183 +----------------- 1 file changed, 8 insertions(+), 175 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 210c8b1e795..343f1d146db 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -14,9 +14,9 @@ With Microsoft Graph, you can migrate users' existing message history and data f ## Permissions -### Prerequisites +Your app must have the following permissions to import messages into Teams. -Your app must have the following permissions as a prerequisite to import messages into Teams. +### Prerequisites #### Create Conversations @@ -348,110 +348,6 @@ You can import historical messages seamlessly into existing channels or chats by To start migrating a user's message history from any third-party platform to Teams, you can use an existing channel or chat. - - ### Start migration on existing channels and chats On existing channels or chats, use the `startMigration` API to [enable channel migration mode](/graph/api/channel-startmigration?view=graph-rest-beta&preserve-view=true) or to [enable chat migration mode](/graph/api/chat-startmigration?view=graph-rest-beta&preserve-view=true) @@ -467,7 +363,7 @@ To enable migration mode on existing channels, use the `startMigration` API. ##### Request (existing channel in migration mode) ```HTTP -POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/startMigration +POST https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/startMigration { "conversationCreationDateTime":"2024-01-01T00:00:00Z" } @@ -488,7 +384,7 @@ HTTP/1.1 204 No Content ##### Example ```HTTP -POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration +POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration { "conversationCreationDateTime":"2024-01-01T00:00:00Z" } @@ -502,7 +398,7 @@ To enable migration mode on existing chats, use the `startMigration` API. ##### Request (existing chat in migration mode) ```HTTP -POST https://graph.microsoft.com/beta/chats/{chat-id}/startMigration +POST https://graph.microsoft.com/v1.0/chats/{chat-id}/startMigration { "conversationCreationDateTime":"2024-01-01T00:00:00Z" } @@ -523,7 +419,7 @@ HTTP/1.1 204 No Content ##### Example ```HTTP -POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/chats/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration +POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/chats/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration { "conversationCreationDateTime":"2024-01-01T00:00:00Z" @@ -550,9 +446,6 @@ Call `Get channel` or `Get chat` to confirm that the `migrationMode` state is se You can also verify that target chat or channel is in `migrationMode` state in Teams through a banner which says **Migration for this conversation is in progress. Messages may be out of order during this time**.
This banner will remain visible in the Teams UI until the migration is completed for the target chat or channel. -> [!NOTE] -> The `migrationMode` flag is currently available only in the beta version. - ## Step 3: Import messages Now you can import back-in-time messages by including the `createdDateTime` and `from` keys in the request body. @@ -703,72 +596,12 @@ HTTP/1.1 200 OK ## Step 4: Complete migration - - For existing channels or chats already in migration mode, use the `completeMigration` API to [mark the migration state as completed](/graph/api/channel-completemigration?view=graph-rest-beta&branch=pr-en-us-26836&tabs=http&preserve-view=true ). Completing the migration is necessary to ensure that all the users of chat or channel see the same messages. Not completing the migration can result into inconsistent view of the chat or channel on Microsoft Teams clients. ### Request (complete existing channel migration) ```HTTP -POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/completeMigration +POST https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/completeMigration ``` ### Response @@ -780,7 +613,7 @@ HTTP/1.1 204 NoContent ### Request (complete existing chat migration) ```HTTP -POST https://graph.microsoft.com/beta/chats/{chat-id}/completeMigration +POST https://graph.microsoft.com/v1.0/chats/{chat-id}/completeMigration ``` ### Response From 937c73a693212823a3e397a00d36484ec72f8d13 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Tue, 28 Apr 2026 19:18:48 +0530 Subject: [PATCH 28/32] Consistency --- .../import-external-messages-to-teams.md | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 343f1d146db..dc3743a7938 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -14,7 +14,7 @@ With Microsoft Graph, you can migrate users' existing message history and data f ## Permissions -Your app must have the following permissions to import messages into Teams. +To import messages into Teams, your app needs the following permissions. ### Prerequisites @@ -63,7 +63,7 @@ Your app must have the following permissions to import messages into Teams. Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting + or delegated scenarios, but doesn't allow deleting users or groups, or resetting user passwords. @@ -126,7 +126,7 @@ Your app must have the following permissions to import messages into Teams. Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but does not allow deleting users or groups, or resetting + or delegated scenarios, but doesn't allow deleting users or groups, or resetting user passwords. @@ -189,7 +189,7 @@ Your app must have the following permissions to import messages into Teams. Read the members of all chats, without a signed-in user. Delegated is noty supported - Allows apps to read and write Microsoft Teams one‑to‑one, group, and channel chat messages (Application) without a signed‑in user and (Delegated) on behalf of a signed‑in user. Does not allow sending messages. + Allows the app to read and write Microsoft Teams one‑to‑one, group, and channel chat messages (Application) without a signed‑in user and (Delegated) on behalf of a signed‑in user. Does not allow sending messages. @@ -200,7 +200,7 @@ Your app must have the following permissions to import messages into Teams. - Add and remove members from all chats, without a signed-in user. Delegated is not supported. + Allows the app to add and remove members from all chats, without a signed-in user. Delegated is not supported. @@ -225,7 +225,7 @@ Your app must have the following permissions to import messages into Teams. - Add and remove members from all chats, without a signed‑in user. Delegated is not supported. + Allows the app to add and remove members from all chats without a signed‑in user. Delegated permissions aren't supported. @@ -238,7 +238,7 @@ Your app must have the following permissions to import messages into Teams. - Read and write the members of channels of a team. + Allows the app to read and write the members of channels of a team. @@ -262,7 +262,7 @@ Your app must have the following permissions to import messages into Teams. - Add and remove members from all teams without a signed-in user; cannot add or remove owners or promote a member to owner (Application) and on behalf of the signed-in user; cannot add or remove owners or promote a member to owner (Delegated). + Allows the app to add and remove members from all teams without a signed-in user. You can't add or remove owners or promote a member to owner (Application). On behalf of the signed-in user, you can't add or remove owners or promote a member to owner (Delegated). @@ -273,17 +273,17 @@ Your app must have the following permissions to import messages into Teams. - Add and remove members from teams and change member roles without a signed-in user across all teams (Application) and on behalf of the signed-in user (Delegated). + Allows the app to add and remove members from teams and change member roles without a signed-in user across all teams (Application) and on behalf of the signed-in user (Delegated). -## Migration Requests +## Migration requests Migration APIs| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | |---------- |---------- |-------------|-------------|------|----------------|-----------| -|
  • StartChatMigration
  • StartChannelMigration
  • ImportChatMessage
  • ImportChannelMessage
  • CompleteChatMigration
  • CompleteChannelMigration
| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Creating and managing resources for migration to Teams. | **Application-only** | Yes | POST /team | +|
  • StartChatMigration
  • StartChannelMigration
  • ImportChatMessage
  • ImportChannelMessage
  • CompleteChatMigration
  • CompleteChannelMigration
| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Allows yuor app to create and manage resources for migration to Teams. | **Application-only** | Yes | POST /team | ## Supported channel and chat types @@ -304,12 +304,12 @@ To enable migration mode in an existing channel or chat, see [Existing channel m The following table provides the content scope for existing channels and chats. -|In-scope | Out-of-scope| +|In scope | Out of scope| |----------|--------------------------| -|Team (general)|Announcements| -|Created time of the original message|Videos| -|Inline images as part of the message|Stickers| -|Links to existing files in Microsoft 365 (Microsoft 365) SharePoint Online (SPO) or OneDrive (OD)|Cross posts between channels| +|Team (general)|Videos| +|Created time of the original message|Cross posts between channels| +|Inline images as part of the message|| +|Links to existing files in Microsoft 365, SharePoint Online (SPO) or OneDrive (OD)|| |Messages with rich text|| |Message reply chain|| |High throughput processing|| @@ -319,6 +319,8 @@ The following table provides the content scope for existing channels and chats. |@mentions and emojis|| |Code snippets|| |Quotes|| +|Announcements|| +|Stickers|| ## Prerequisites @@ -346,11 +348,11 @@ You can import historical messages seamlessly into existing channels or chats by ## Step 1: Start migration -To start migrating a user's message history from any third-party platform to Teams, you can use an existing channel or chat. +To start migrating a user's message history from any third-party platform to Teams, use an existing channel or chat. ### Start migration on existing channels and chats -On existing channels or chats, use the `startMigration` API to [enable channel migration mode](/graph/api/channel-startmigration?view=graph-rest-beta&preserve-view=true) or to [enable chat migration mode](/graph/api/chat-startmigration?view=graph-rest-beta&preserve-view=true) +On existing channels or chats, use the `startMigration` API to [enable channel migration mode](/graph/api/channel-startmigration?view=graph-rest-beta&preserve-view=true) or to [enable chat migration mode](/graph/api/chat-startmigration?view=graph-rest-beta&preserve-view=true). `startMigration` sets the migration state to `InProgress` and begins the message import process. For more information, see: * [Existing channel migration](#existing-channel-migration) @@ -444,7 +446,7 @@ Call `Get channel` or `Get chat` to confirm that the `migrationMode` state is se * [Get chat](/graph/api/chat-get?view=graph-rest-1.0&tabs=http&preserve-view=true) You can also verify that target chat or channel is in `migrationMode` state in Teams through a banner which says **Migration for this conversation is in progress. Messages may be out of order during this time**.
-This banner will remain visible in the Teams UI until the migration is completed for the target chat or channel. +This banner remains visible in the Teams UI until the migration is completed for the target chat or channel. ## Step 3: Import messages From 329d5858afb433e9950c315d4bdab36579b4400b Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 7 May 2026 13:01:51 +0530 Subject: [PATCH 29/32] Update documentation via Content Mentor Quick Workspace --- .../design-teams-app-icon-store-appbar.md | 2 +- .../import-external-messages-to-teams.md | 270 +----------------- 2 files changed, 14 insertions(+), 258 deletions(-) diff --git a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md index 37f8e21741d..8ba3758563b 100644 --- a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md +++ b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md @@ -5,7 +5,7 @@ author: heath-hamilton ms.localizationpriority: medium ms.author: lajanuar ms.topic: reference -ms.date: 04/28/2026 +ms.date: 05/07/2026 --- diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index dc3743a7938..4ff741fd570 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 04/28/2026 +ms.date: 05/07/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -20,270 +20,26 @@ To import messages into Teams, your app needs the following permissions. #### Create Conversations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TaskScope nameDisplay nameDescription
Create ChatChat.Create - Create chats - - Allows the app to create chats without a signed-in user (application) or - create chats on behalf of the signed‑in user (delegated). -
Create TeamTeam.Create - Create channels - - Allows the app to create teams without a signed-in user - (application) or on behalf of the signed-in user (delegated). -
Directory.ReadWrite.All - - Read and write directory data - - - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but doesn't allow deleting users or groups, or resetting - user passwords. -
Group.ReadWrite.All - - Read and write all groups - - - Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group - properties and memberships; allow group owners to manage groups and members - to update group content (delegated). -
Teamwork.Migrate.All - - Migrate teamwork data - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. -
Create ChannelChannel.Create - Create channels - - Allows the app to create channels in any team, without a signed-in user - (application) or on behalf of the signed-in user (delegated). -
Channel.Create.Group (RSC) - - Create channels in this team - - - Allows the app to create channels in this team, without a signed-in user. -
Directory.ReadWrite.All - - Read and write directory data - - - Allows the app to read and write directory data (users and groups) in application - or delegated scenarios, but doesn't allow deleting users or groups, or resetting - user passwords. -
Group.ReadWrite.All - - Read and write all groups - - - Allows the app to create and delete groups; read and update all group properties, - memberships, and conversations (application), and create groups; read group - properties and memberships; allow group owners to manage groups and members - to update group content (delegated). -
Teamwork.Migrate.All - - Migrate teamwork data - - - Allows the app to send chat and channel messages without a signed‑in user, - including specifying the sender, backdating messages, and posting to any chat - or channel in the organization. -
+|Task|Scope name| +|----|-----------| +|Create Chat|Chat.Create| +|Create Team|Team.Create, Directory.Read.All, Group.ReadWrite.All, Teamwork.Migrate.All| +|Create Channel|Channel.Create, Channel.Create.Group, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All| #### Manage Conversation Members - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TaskScope nameDisplay nameDescription
Add Chat MemberChat.Manage.Chat (RSC) - Add Chat Member - - Allows the app to manage the chat, the chat's members and grant access to the chat's data, without a signed-in user. -
Chat.ReadWrite.All - Read the members of all chats, without a signed-in user. Delegated is noty supported - - Allows the app to read and write Microsoft Teams one‑to‑one, group, and channel chat messages (Application) without a signed‑in user and (Delegated) on behalf of a signed‑in user. Does not allow sending messages. -
ChatMember.ReadWrite.All - - Add and remove members from all chats - - - Allows the app to add and remove members from all chats, without a signed-in user. Delegated is not supported. -
Remove Chat MemberChat.Manage.Chat - - Manage this chat - - - Allows the app to manage a chat, including its members and data, without a signed‑in user. -
ChatMember.ReadWrite.All - - Add and remove members from all chats - - - Allows the app to add and remove members from all chats without a signed‑in user. Delegated permissions aren't supported. -
Add Channel Member, Remove Channel MemberChannelMember.ReadWrite.Group (RSC) - - Read and write channel members - - - Allows the app to read and write the members of channels of a team. -
ChannelMember.ReadWrite.All - - Add and remove members from all channels - - - Allows the app to Add and remove channel members and change member roles without a signed-in user (Application) and on behalf of the signed-in user (Delegated). -
Add Team Member, Remove Team MemberTeamMember.ReadWriteNonOwnerRole.All - - Add and remove members with non-owner role for all teams - - - Allows the app to add and remove members from all teams without a signed-in user. You can't add or remove owners or promote a member to owner (Application). On behalf of the signed-in user, you can't add or remove owners or promote a member to owner (Delegated). -
TeamMember.ReadWrite.All - - Add and remove members from teams - - - Allows the app to add and remove members from teams and change member roles without a signed-in user across all teams (Application) and on behalf of the signed-in user (Delegated). -
+|Task|Scope name| +|----|-----------| +|Add Chat Member|Chat.Manage.Chat (RSC), Chat.ReadWrite.All, ChatMember.ReadWrite.All| +|Remove Chat Member|Chat.Manage.Chat (RSC), ChatMember.ReadWrite.All| +|Add Channel Member, Remove Channel Member|ChannelMember.ReadWrite.Group, ChannelMember.ReadWrite.All| +|Add Team Member, Remove Team Member|TeamMember.ReadWriteNonOwnerRole.All, TeamMember.ReadWrite.All| ## Migration requests Migration APIs| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | |---------- |---------- |-------------|-------------|------|----------------|-----------| -|
  • StartChatMigration
  • StartChannelMigration
  • ImportChatMessage
  • ImportChannelMessage
  • CompleteChatMigration
  • CompleteChannelMigration
| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Allows yuor app to create and manage resources for migration to Teams. | **Application-only** | Yes | POST /team | +|
  • StartChatMigration
  • StartChannelMigration
  • ImportChatMessage
  • ImportChannelMessage
  • CompleteChatMigration
  • CompleteChannelMigration
| Teamwork.Migrate.All | [Manage migration to Microsoft Teams](/graph/permissions-reference#teamworkmigrateall)| Allows your app to create and manage resources for migration to Teams. | **Application-only** | Yes | POST /team | ## Supported channel and chat types From 85e8400907b4d5072e9788f8fa30c6081ad4c53d Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 7 May 2026 15:19:22 +0530 Subject: [PATCH 30/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 4ff741fd570..3bc7a04039b 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -22,18 +22,20 @@ To import messages into Teams, your app needs the following permissions. |Task|Scope name| |----|-----------| -|Create Chat|Chat.Create| -|Create Team|Team.Create, Directory.Read.All, Group.ReadWrite.All, Teamwork.Migrate.All| -|Create Channel|Channel.Create, Channel.Create.Group, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All| +|Create Chat|[Chat.Create](/graph/api/chat-post?view=graph-rest-1.0&tabs=http)| +|Create Team|[Team.Create](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Directory.Read.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Group.ReadWrite.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Teamwork.Migrate.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http)| +|Create Channel|[Channel.Create](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Channel.Create.Group](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Directory.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Group.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Teamwork.Migrate.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http)| #### Manage Conversation Members |Task|Scope name| |----|-----------| -|Add Chat Member|Chat.Manage.Chat (RSC), Chat.ReadWrite.All, ChatMember.ReadWrite.All| -|Remove Chat Member|Chat.Manage.Chat (RSC), ChatMember.ReadWrite.All| -|Add Channel Member, Remove Channel Member|ChannelMember.ReadWrite.Group, ChannelMember.ReadWrite.All| -|Add Team Member, Remove Team Member|TeamMember.ReadWriteNonOwnerRole.All, TeamMember.ReadWrite.All| +|Add Chat Member|[Chat.Manage.Chat](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http), [Chat.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http), [ChatMember.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http)| +|Remove Chat Member|[Chat.Manage.Chat](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http), [ChatMember.ReadWrite.All](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http)| +|Add Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http), [TeamMember.ReadWrite.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http)| +|Remove Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-update-members?view=graph-rest-1.0&tabs=http), [TeamMember.ReadWrite.All](/graph/api/team-update-members?view=graph-rest-1.0&tabs=http)| +|Add Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http), [ChannelMember.ReadWrite.All](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http)| +|Remove Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http), [ChannelMember.ReadWrite.All](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http)| ## Migration requests From 63a0ec6b0d2ba1a277c40b7a3d88ca46acc51702 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Thu, 7 May 2026 15:49:47 +0530 Subject: [PATCH 31/32] Update documentation via Content Mentor Quick Workspace --- .../import-external-messages-to-teams.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 3bc7a04039b..53ef2764b38 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -16,26 +16,29 @@ With Microsoft Graph, you can migrate users' existing message history and data f To import messages into Teams, your app needs the following permissions. +>[!NOTE] +>Teamwork.Migrate.All is the baseline permission needed for a significant number of operations. Individual APIs might require additional permissions, refer to linked documentation for each API. + ### Prerequisites #### Create Conversations |Task|Scope name| |----|-----------| -|Create Chat|[Chat.Create](/graph/api/chat-post?view=graph-rest-1.0&tabs=http)| -|Create Team|[Team.Create](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Directory.Read.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Group.ReadWrite.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http), [Teamwork.Migrate.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http)| -|Create Channel|[Channel.Create](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Channel.Create.Group](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Directory.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Group.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http), [Teamwork.Migrate.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http)| +|Create Chat|[Chat.Create](/graph/api/chat-post?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Create Team|[Team.Create](/graph/api/team-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Directory.Read.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Group.ReadWrite.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Teamwork.Migrate.All](/graph/api/team-post?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Create Channel|[Channel.Create](/graph/api/channel-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Channel.Create.Group](/graph/api/channel-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Directory.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Group.ReadWrite.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http&preserve-view=true), [Teamwork.Migrate.All](/graph/api/channel-post?view=graph-rest-1.0&tabs=http&preserve-view=true)| #### Manage Conversation Members |Task|Scope name| |----|-----------| -|Add Chat Member|[Chat.Manage.Chat](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http), [Chat.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http), [ChatMember.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http)| -|Remove Chat Member|[Chat.Manage.Chat](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http), [ChatMember.ReadWrite.All](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http)| -|Add Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http), [TeamMember.ReadWrite.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http)| -|Remove Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-update-members?view=graph-rest-1.0&tabs=http), [TeamMember.ReadWrite.All](/graph/api/team-update-members?view=graph-rest-1.0&tabs=http)| -|Add Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http), [ChannelMember.ReadWrite.All](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http)| -|Remove Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http), [ChannelMember.ReadWrite.All](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http)| +|Add Chat Member|[Chat.Manage.Chat](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [Chat.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChatMember.ReadWrite.All](/graph/api/chat-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Remove Chat Member|[Chat.Manage.Chat](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChatMember.ReadWrite.All](/graph/api/chat-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Add Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [TeamMember.ReadWrite.All](/graph/api/team-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Remove Team Member|[TeamMember.ReadWriteNonOwnerRole.All](/graph/api/team-delete-members?view=graph-rest-1.0&branch=main&tabs=http&preserve-view=true), [TeamMember.ReadWrite.All](/graph/api/team-delete-members?view=graph-rest-1.0&branch=main&tabs=http&preserve-view=true)| +|Add Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChannelMember.ReadWrite.All](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| +|Remove Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChannelMember.ReadWrite.All](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| ## Migration requests From f35167270edf3bdd4066b08d7bb2dc27f784d189 Mon Sep 17 00:00:00 2001 From: SukanyaDas-MSFT Date: Fri, 8 May 2026 17:25:25 +0530 Subject: [PATCH 32/32] Update documentation via Content Mentor Quick Workspace --- .../concepts/design/design-teams-app-icon-store-appbar.md | 2 +- .../import-messages/import-external-messages-to-teams.md | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md index 8ba3758563b..866cb43b266 100644 --- a/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md +++ b/msteams-platform/concepts/design/design-teams-app-icon-store-appbar.md @@ -5,7 +5,7 @@ author: heath-hamilton ms.localizationpriority: medium ms.author: lajanuar ms.topic: reference -ms.date: 05/07/2026 +ms.date: 05/08/2026 --- diff --git a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md index 53ef2764b38..aa191f724ee 100644 --- a/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md +++ b/msteams-platform/graph-api/import-messages/import-external-messages-to-teams.md @@ -5,7 +5,7 @@ ms.localizationpriority: high author: "vikasalmal" ms.topic: overview ms.owner: mehakagarwal -ms.date: 05/07/2026 +ms.date: 05/08/2026 --- # Import third-party platform messages to Teams using Microsoft Graph @@ -21,6 +21,8 @@ To import messages into Teams, your app needs the following permissions. ### Prerequisites +The following permissions are required as prerequisites for migrating messages. + #### Create Conversations |Task|Scope name| @@ -40,7 +42,9 @@ To import messages into Teams, your app needs the following permissions. |Add Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChannelMember.ReadWrite.All](/graph/api/channel-post-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| |Remove Channel Member|[ChannelMember.ReadWrite.Group](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true), [ChannelMember.ReadWrite.All](/graph/api/channel-delete-members?view=graph-rest-1.0&tabs=http&preserve-view=true)| -## Migration requests +### Migration requests + +The following permissions are required to migrate messages into Teams. Migration APIs| Scope name | Display name | Description | Type | Admin consent required | Entities/APIs covered | |---------- |---------- |-------------|-------------|------|----------------|-----------|