Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note
The Slack-to-Teams migration tool is currently in public preview.
The Slack to Teams Migration Tool from Microsoft allows customers to migrate data from their Slack workspace to Microsoft Teams. For this version of the tool, the migrated data includes:
- Slack channels (public and private).
- Slack channel messages (including threading and standard reactions).
- Slack channel file attachments.
- Slack channel canvas and list content (migrated to HTML and JSON file attachments within the Teams channel, respectively).
- Slack channel membership (owners and members).
The migration tool runs in the Microsoft 365 admin center and uses Slack export packages and online access to the customer's Slack workspace to retrieve customer data. Customers generate Slack export packages through the standard Slack workspace administration interface.
Once the export package is ready, customers upload the export package provided by Slack into Microsoft Azure Blob Storage. The customer provides permission for the migration tool to read the export package, so it can begin scanning the contents of that export package.
Once the export package content is scanned, the customer can decide which Slack channels to migrate to Microsoft Teams and decide how much content to migrate. For example, customers may wish to migrate all of the data in a channel or only a subset of data based on a date range.
Once these choices are made, the customer maps their Slack users to equivalent Microsoft 365 users. The customer also selects which Microsoft Teams and channels to map their Slack channels to. Mapping can be performed via the migration tool's web UI or via CSV files for larger-scale migrations.
Once migration starts, the Slack data is transformed into equivalent data by the migration tool and imported into Microsoft Teams. No data is deleted from Slack during this migration process.
Prerequisites
Slack
Customers must have permission to export their Slack workspace data into an export package. Workspace Owners, Workspace Admins, Org Owners, and Org Admins have sufficient permission, as do members with the Export Admin system role. For more information, see: Export your workspace data.
Microsoft Teams
- Customers must have permission to import their Slack workspace data into Microsoft Teams. Any of the following Microsoft 365 administration roles can be used:
- Microsoft 365 Migration Administrator (recommended)
- SharePoint Administrator
- Global Administrator
- Customers must grant consent to allow the Microsoft 365 Teams Migration app to import data into Microsoft 365. Only a user with the Global Administrator role can grant this one-time consent. This consent can be performed at any time before starting a migration by following this link. If this consent isn't granted before starting a migration, the migration tool prompts the migration administrator to provide consent.
Azure Blob Storage
- Customers must have an Azure Blob Storage account to store their Slack export file. The Microsoft 365 Migration app reads the exported data from the Slack export file hosted in Azure Blob Storage.
- Customers must have permission to create and manage Azure storage accounts. Any of the following Azure roles can be used:
- Owner (gives you full control)
- Contributor (sufficient for creating resources)
- Storage Account Contributor (minimum requirement)
- Customers must have the User Access Administrator Azure role to grant permission for the migration app to access the Azure Blob Storage account.
Migration steps
Step 1: Grant consent for the Microsoft 365 Teams Migration app to import data into Teams
- As a user with the Global Administrator role in Microsoft 365, browse to this site.
- At the Permissions requested prompt for the Microsoft 365 Teams Migration app, Select Accept.
Note
The Global Administrator role is required to provide this one-time consent. Once this consent is provided, the Global Administrator role is no longer required to proceed with the migration. You can use other roles, such as Microsoft 365 Migration Administrator or SharePoint Administrator, to perform the migration. If consent isn't provided at this time, the migration app prompts you to provide consent before importing data into Microsoft Teams.
Step 2: Export Slack workspace data
The steps to perform an export can vary depending on the type of Slack plan your organization is subscribed to. See Export your workspace data for the specific steps to follow for your Slack plan.
Note
The steps to export data from private channels may be different than the steps to export data from public channels.
Once the Slack workspace export is ready, download the Slack export ZIP file.
Step 3: Create an Azure Blob Storage account
- Browse to the Microsoft Azure portal.
- Select Storage accounts.
- Select Create.
- Fill out the following fields in the Basics tab:
- Subscription: Select your Azure subscription.
- Resource group: Select an existing resource group or create a new one.
- Storage account name: Create a new, unique name for your storage account.
- Region: For all countries outside of Europe, we recommend a US region such as East US or West US 2 for optimal migration performance and minimum Azure bandwidth pricing cost. For countries in Europe, select a European region such as North Europe or West Europe.
- Performance: Standard
- Redundancy: Select Local Redundant Storage (LRS) for basic redundancy, or Geo-Redundant Storage (GRS) or Zone-Redundant Storage (ZRS) for better redundancy.
- Select Next and fill out the following fields in the Advanced tab:
- Require secure transfer for REST API operations: Enabled
- Allow enabling anonymous access on individual containers: Disabled
- Enable storage account key access: Disabled
- Default to Azure Active Directory authorization: Enabled
- Minimum TLS version: Version 1.2
- Access tier: Hot
- Select Next and fill out the following fields in the Networking tab:
- Public network access: Enabled
- Select Next and fill out the following fields in the Data protection tab:
- Enable soft delete for blobs: Enabled
- Enable soft delete for containers: Enabled
- Select Next and fill out the following fields in the Encryption tab:
- Encryption type: Microsoft-managed keys (MMK)
- Enable support for customer-managed keys: Blobs and files only
- Enable infrastructure encryption: Enabled
- Select Review + create.
- Select Create.
For more information, see Create an Azure storage account.
Step 4: Grant permission for the migration app to access the Azure Blob Storage account
- Browse to the Microsoft Azure portal.
- Select Storage accounts.
- Select the storage account you created.
- In the navigation pane, select Access Control (IAM).
- In the toolbar, select Add.
- Select Add role assignment.
- Select the Storage Blob Data Reader role.
- Select Next.
- Make sure the Assign access role to field is set to User, group, or service principal.
- Select + Select members.
- Search for and select the Office 365 Mover application.
- Select Select.
- Select Next.
- Select Review + assign.
Step 5: Create an Azure Blob Storage container
- In the navigation pane, select Storage browser.
- Select Blob containers.
- Select Add container.
- Enter a name for the storage container in the Name field.
- Select Create.
Step 6: Upload Slack export file to Azure Blob Storage container
- In the navigation pane, select Storage browser.
- Select Blob containers.
- Select the name of the container you created.
- Select Upload.
- Select Browse for files.
- Select the Slack export file and then select Open.
- Select Upload.
- Select the name of the newly uploaded file in the Azure Blob Storage container.
- In the Overview tab, copy the URL property of this file to the clipboard.
Step 7: Provide the Slack export file to the migration app
Browse to the Microsoft 365 admin center.
Select Setup in the navigation pane.
Select Migration and imports.
Select Slack to Teams.
If you haven't provided a Slack export file to the migration tool before, select Get started.
In the Azure Blob Storage source path field, enter the URL of the Slack export file stored in the Azure Blob Storage container. (This URL is the URL that you previously copied to the clipboard.)
For customers with multiple Slack workspaces, select a workspace you want to migrate from the dropdown list.
Note
Multi-workspace shared channels are independent of individual workspaces and must be migrated separately.
Select Save and import.
Note
If you import a new package, only new tasks (channels) are detected. If existing channels contain new content in the new package, manually select the task and perform a scan.
Step 8: Scan Slack channels
- In the Conversations tab, select one or more channels for the migration tool to scan by checking their checkbox.
- Select Scan messages.
- Wait for the Channel scan status to reach the Completed state for the channels in question.
- Examine the other columns to review the results of the scan, including the total number of messages in the channel and the last message posted date. These results should help you decide which channels you want to migrate and estimate the length of the migration duration.
Step 9: Select Slack channels for migration
- In the Conversations tab, select one or more channels for the migration tool to migrate by checking their checkbox.
- In the Send to migration details pane that appears, decide on the date range of messages to migrate for the selected channels.
- Select the Send all messages to migrations radio button if you want all messages in the selected channels to be migrated
- Select the Only send messages from the selected date range radio button if you want a subset of messages in the selected channels to be migrated.
- This radio button displays time in UTC.
- The Earliest message date field specifies the earliest date of messages to be migrated (starting at the beginning of the specified day).
- The Latest message date field specifies the latest date of messages to be migrated (ending at the end of the specified day).
- For example, specifying January 20, 2025 as the earliest message date and January 21 as the latest message date results in two days-worth of messages being migrated.
- Select Send to migrations when you finish selecting which messages to migrate.
Step 10: Map Slack identities to Microsoft 365 identities
All users in a Slack workspace must be mapped to Microsoft 365 users before starting the migration. This mapping includes deactivated users. Migration can't proceed until all Slack users are mapped to Microsoft 365 users.
For smaller migrations, you may prefer to use the web-based user interface (UI) of the migration tool to perform the user mapping. Slack users can be automatically mapped to Microsoft 365 users using the Auto-map option if the email address associated with both accounts is identical. After the auto-map operation completes, you can manually map the identities of any remaining user that auto-map couldn't map. If there's no equivalent Microsoft 365 user for a Slack user, you can map the Slack user to the Unknown user.
For large-scale migrations with many users, you may find it easier to map users using a CSV file. The migration tool gives you the option to download a CSV template file, enter the mappings, and then upload the CSV file to the migration tool. If there's no equivalent Microsoft 365 user for a Slack user, you can map the Slack user to unknown.
If you wish to rerun the Auto-map operation, you must first select the Clear Identities button. This selection erases all mappings from Slack users to Microsoft 365 users in the migration tool. You can then select Auto-map to rerun the auto-map operation.
Map identities using the web-based UI
- Select the Migrations tab.
- Select Map identities in the toolbar.
- Select Auto-map in the toolbar to discover all the Slack users in the Slack export package and automatically map their accounts to Microsoft 365 accounts with the same email address.
- After the mapping process finishes, successfully mapped accounts have their Mapping status set to Automatically set. Accounts that still need to be mapped have their Mapping status set to Mapping needed.
- Select the row for an account where mapping is still needed.
- In the Select a new user mapping pane that appears, enter the name or email address of the Microsoft 365 account that this user should be mapped to in the Equivalent Microsoft 365 user field. Then select the desired Microsoft 365 account in the drop-down list. If there's no equivalent Microsoft 365 account, move your cursor focus on the Equivalent Microsoft 365 user field and select Unknown user in the drop-down list.
- Select Save.
- Repeat steps 5 to 7 until all accounts are mapped.
- select Close.
Note
You can return to this page and manually update the mapping of a user at any time. Select the row for an account, then update the mapping in the Select a new user mapping pane.
Map identities using a CSV file (for large-scale migrations with many users)
- Select the Migrations tab.
- Select Map identities in the toolbar.
- Select Auto-map in the toolbar to discover all the Slack users in the Slack export package and automatically map their accounts to Microsoft 365 accounts with the same email address.
- After the mapping process is finishes, successfully mapped accounts have their Mapping status set to Automatically set. Accounts that still need to be mapped have their Mapping status set to Mapping needed.
- Select Export Identities and a CSV file containing the account mappings downloads.
- Open the downloaded CSV file with a compatible app.
- For each Slack account where the Microsoft 365 Email ID (Enter unknown if the user's not present) column is empty, enter the email address of the equivalent Microsoft 365 user. If there's no equivalent Microsoft 365 user, enter unknown so the Slack user maps to the Unknown user.
Note
You don't need to modify any other column to set the mapping. 8. Save your changes to the CSV file. 9. On the Map identities page, select Import users. 10. On the Import users pane, select Select file. 11. Select the CSV file with your saved changes and select Open. 12. Once the validation completes successfully with no issues found, select Save.
Note
You can manually update the mapping of a user at any time by reediting the CSV file and reimporting the updated CSV file. All previous mappings are overwritten with the mappings in the newly imported CSV file.
Step 11: Map Slack channels to their destination
Each Slack channel you wish to migrate must be mapped to a destination team and channel within Teams. The migration tool can only migrate Slack channels to teams and channels created using the migration tool.
For smaller migrations, you may prefer to use the web-based UI of the migration tool to perform the destination mapping. For large-scale migrations with many channels, you may find it easier to map channels via a CSV file. The migration tool gives you the option to download a CSV template file, enter the mappings, and then upload the CSV file to the migration tool.
Map destinations using the web-based UI
- Select the Migrations tab.
- Select the checkbox of the Slack channel to be mapped.
- Select Map destinations in the toolbar.
- Select Manually map to destination.
- In the Microsoft Teams name drop-down list, select Create a new team to create a new destination team. Otherwise, select an existing team.
- If you create a new team, enter the team name in the Microsoft Teams team name field and select whether the team should be public or private.
- In the Channel name field, select Create a new channel to create a new destination channel for the selected team. Otherwise, select an existing channel.
- If you create a new channel, enter the channel name in the Channel name field and select whether the channel should be shared, standard, or private. Then select Add channel.
- Once you set the desired destination team and channel, select Save changes.
Note
You can manually update the mapping of a channel at any time before migration starts. Check the checkbox for a channel, select Map destinations, then select Manually map to destination.
Map destinations using a CSV file (for large-scale migrations)
- Select the Migrations tab.
- Select the checkboxes of the Slack channels to map. You can select multiple channels.
- Select Map destinations in the toolbar.
- Select Upload destinations and map.
- On the Upload destinations pane, select the Download template: MigrationDestination.csv link and a CSV file containing the channel mappings of the selected channels downloads.
- Open the downloaded CSV file with a compatible app.
- For each Slack channel, enter the following information:
- In the Teams team name column, enter the name of the destination team.
- In the Teams team type column, enter Public to make the team a public team or Private to make the team a private team.
- In the Teams channel name column, enter the name of the destination channel.
- In the Teams channel type column, enter Shared to make this channel a shared channel, Standard to make this channel a standard channel, or Private to make this channel a private channel.
Note
You don't need to modify any other column to set the mapping.
- Save your changes to the CSV file.
- In the Upload destinations pane, select Browse.
- Select the CSV file with your saved changes and select Open.
- Once the validation completes successfully with no issues found, select Save.
Note
You can manually update the mapping at any time by reediting the CSV file and reimporting the updated CSV file. Previous mappings are overwritten with the mappings in the newly imported CSV file.
Step 12: Start migration
Once you map all Slack user identities to Microsoft 365 users and map the Slack channels to their destination teams and channels, you're ready to perform the channel migrations.
- Select the Migrations tab.
- Check the checkbox of the Slack channels to migrate. You can select multiple channels.
- Select Migrate in the toolbar.
- The Before you migrate pane appears, confirming whether or not you successfully mapped all Slack user accounts to Microsoft 365 user accounts. the pane also confirms whether or not you granted consent for the Microsoft 365 Teams Migration app to import data into Teams. If any tasks aren't complete, complete these tasks before proceeding.
- Select Start migration.
Note
A second trigger of the migrate action on a migrated task initiates a delta sync migration, during which only updated content from the source migrates.
The channel migration tasks are queued in the migration tool and are performed at the earliest opportunity. The migration tool can migrate up to 20 channels in parallel. If the number of channels queued for migration exceeds this limit, the channels over the limit remain in the queue until existing channel migrations complete. The migration tool automatically picks up new channel migrations waiting in the queue as capacity becomes available, until the queue is empty.
You can monitor the progress of each channel migration by reviewing the Channel Migration status column of each channel in the Migrations tab. Its status resets to Migrated when the migration finishes.
Migration reports
The migration tool can generate migration reports for each channel migration. The migration reports show detailed status information about the migration, including details on any warnings or failures encountered during the migration. Migration reports are in the CSV file format, with each row representing one conversation (channel).
The migration report is available only after the channel migration concludes for a given channel. Migration reports aren't available for a channel if its migration status is Not started, Queued, or In Progress.
Review a channel migration report
- Select the Migrations tab.
- Check the checkboxes of the Slack channel migrations you wish to review. You may select multiple channel migrations.
- Select Generate report in the toolbar.
- Migration report generation begins. It may take time to process the migration events and generate the migration report.
- When the migration report is ready, select the Recent actions button at the top of the page (shaped like a clock with an arrow circling it).
- In the Recent actions pane, select the migration summary report link to download the file.
- In the downloaded ZIP file, open the SlackMigrationSummary.csv file with a compatible app.
Here you can review the details of each conversation (channel) migration, including:
- Slack Conversation Name
- Slack Conversation Type
- Slack Conversation ID
- Teams Team Name
- Teams Team Type
- Teams Conversation Name
- Teams Conversation Type
- Teams Web URL
- Team ID
- Channel ID
- Total Migrated Messages
- Task ID
- Transaction ID
- Transaction Start Time (UTC)
- Transaction End Time (UTC)
- Channel Migration Status
- Error Code
- Error Message
- Original Posting of Last Migrated Message (UTC)
Supported Content
- Slack channels
- Public
- Private
- Channel ownership and membership
- Channel message metadata
- Created by
- Created date
- Channel message content and formatting
- Block quote
- Bold, italics, and strikethrough
- Lists
- Bulleted
- Ordered
- Code
- Code blocks
- Standard emojis
- GIPHY
- Images
- Links
- @-mentions
- Standard reactions
- Threading
- File attachments
Known Limitations
- Only one Slack workspace can be connected to the migration tool at a time. To migrate more workspaces, disconnect the migration tool from the current workspace and then connect the migration tool to the next workspace.
- The migration tool currently only migrates Slack channel content. It doesn't migrate content outside of Slack channels such as:
- Direct Messages (one-on-one chats)
- Group chats and related content
- Workflows
- Custom app integration
- The migration tool currently doesn't support migrating Channel links (such as #channel_name). Unsupported content may be marked with a flag such as NOTMIGRATED or NOTSUPPORTED.
- The migration tool currently doesn't support Slack connect channels.
- The migration tool currently doesn't support Slack archived channels. You can unarchive the Slack channel before performing the export to make it available for migration.
- The migration tool currently doesn't support custom emoji reactions.
- If a file attachment's filename contains characters restricted by SharePoint, the migration tool replaces each restricted character with an underscore ("_") character when migrating the file to Microsoft Teams.
- Slack channel canvas pages migrate into Teams channels as HTML file attachments.
- Slack channel lists migrate into Teams channels as JSON file attachments.
- Total Migrated Messages counts may be different than the Total Messages count under certain circumstances. For example, Slack message thread replies that are also sent to the full channel are migrated to Teams as two separate messages. One migrated message is the thread reply while the other migrated message is a new root message in the channel.
- The migration tool currently doesn't support migrating attachment system metadata:
- Created at
- Created by
- Last edited at
- Last edited by