Slack to Teams Direct Messages Migration


Table of Contents
Introduction
Altosio offers a great tool to migrate data stored in the cloud from and to several vendors. It allows you to seamlessly migrate your data from Slack to Microsoft Teams, with a guarantee of no data loss. In addtion to Slack channels migration, Altosio offers a Slack direct messages migration to migrate your users private chats over to Teams. The migration software runs in the cloud, so you do not have to worry about installing anything. Everything is accessible from your web browser at https://app.altosio.com. The migration tool is reliable, secure and lightning fast.
What is migrated?
- 1:1 Chat conversations.
- Group chat conversations.
- Chat messages metadata, including the sender and the date-time.
- Messages replies.
- Attachments within the chat messages. This includes screenshots and GIF images.
- Text styling (color, style), emojis, and code blocks
- Chats and their attachments are migrated to the target user’s OneDrive, under a folder created by Altosio and named “Teams private chats”.
What to consider?
Like any other migration project, it is impossible to get the destination to look exactly like the source.
- Private chat messages can be read entirely from the source. However, due to the lack of Microsoft APIs, it is impossible to push these chats to the destination and rehydrate them into the Teams client. This would require us to connect with the password of each user to be able to create the chat in their account, and that would create a major security threat. Moreover, the Microsoft APIs are not designed to post a huge number of chats and messages.
- Considering the challenges above, the chats will be exported as HTML files in the OneDrive account of the target user. Every chat (One-on-One or Group Chat) will be created in a separte HTML file having the name of the participants. Example, if John Doe’s chats are being migrated, and John has a private chat with Jane Dee, an HTML file will be created in John Doe’s OneDrive and will have the name “John Doe, Jane Dee.html”. The attachments residing in this chat will be created in the same folder as well.
Security
The Altosio software runs in the Cloud and is hosted in Microsoft Azure data centers located in the Netherlands. Altosio is able to provide you with a static IP address from which the migration will run in order to secure your environments with Firewall access accordingly. Please reach out to support@altosio.com to get it. You can also visit our security statement here.
It is also worth noting that the Altosio tool does not store anything internally. It reads data in chunks and pushes them in real time in the target. No data is cached or stored in the hard drive of the servers running the migration. Altosio does however store the unique Ids of files and tasks that are migrated. This allows the customer to rerun the migration without duplicating data.
Altosio’s migration tool does not edit the source environment in any way. It copies the data to the target without altering it. Altosio needs a read-only access to the source.
Requirements
To access Slack, Altosio needs:
- A programmatic consent to access your Slack workspace and list the users in it. This token acts on behalf of the user that grants consent.
- Once the user list is populated, Altosio will need access to the direct messages of each user. Slack does not offer an admin access token that allows us to read each user’s private messages. Therefore, we need to demand access from each user to be able to read their data. This is done through email, and is explained in more detail later on in the guide.
To access Microsoft Teams, Altosio needs:
- An admin consent to use the Altosio Entra ID application from your tenant. This requires a Global Admin account to grant the admin consent.
- Your tenant’s domain. This could be either your commercial domain “company.com” or your M365 vanity domain “tenant.onmicrosoft.com”.
- For Teams User Chats migration, Altosio does not need to have a migration account or password. Therefore, your tenant can keep having MFA enabled on all users during the migration.
- The target users should exist in the target tenant, be licensed, and have a OneDrive account ready for the migration. Altosio does not do any provisioning of the users in the destination or their OneDrive accounts. We can however, provide you with a script that triggers the provisioning of the OneDrive accounts of your users.
Licensing
Each user’s migration consumes a Teams User Chats migration license. The license is automatically allocated to the board and will get burnt as soon as Altosio is able to validate the prerequisites (connecting to the target OneDrive account) during the migration process.
The license is User based and does not depend on the number of chats, messages or attachments.
The migration supports delta passes, which means that you restart the migration several times and it would still consume the same license that was originally assigned to it. Licenses are not refundable upon purchase.
For any further inquiries related to licensing, please reach out to sales@altosio.com
Configuration
- Sign up and create your first project
First off, please create an account under https://app.altosio.com, validate it through the validation email and then login.
Once you login, you will land on a home page where you will have to create your project. Click on New Project, give it a meaningful name and then hit create.
Click on the project name to open it.
2. Create your connectors
The next step in the process is to create your connectors. Since this guide is about Slack to Teams direct messages migration, we need to create a Slack User Chats source connector, and a Teams User Chats target connector.
a. Create your source connector:
On the connectors page, click on New Connector, choose Source, and then Slack User Chats.
Give your source connector a name, then click on Connect to Slack. This will open a new browser window where you will grant consent to the Altosio Slack application to generate a token on your behalf and connect to your Slack environment.
Click on Allow, then go back to Altosio and click on Create Connector to finalize the creation.
b. Create your target connector
On the connectors page, click on New Connector, choose Target as type, and Teams User Chats as product.
Provide a name to your connector and the domain of your target M365 tenant. This could be your commercial domain (i.e domain.com) or your default Microsoft domain (i.e tenant.onmicrosoft.com)
Then, click on Grant Consent to Altosio AD Application to install Altosio’s Entra ID application. This step requires Global Admin privileges.
You can then click on Create connector to finalize the creation.
If your domain is correct and you have granted consent to the Altosio AD Application, the connection test should succeed, and you should have a green check mark as the validation checks for your connectors have passed, as shown in the screenshot below.
If you have a red sign, please click on it, and a pop-up should give you more information about the issue causing the connection to fail.
Discovery job
The creation of your source Slack connector triggers an automatic discovery job. This job connects to your Slack workspace and lists the users you have in the source.
You can navigate to the Users Chats section to see your list of users.
Migration
Once your connectors are set up, navigate to the User Chats page. From the list of users discovered through your Slack connector, you will need to authenticate the users you are interested in migrating.
Slack does not allow workspace admins to generate tokens to access each user’s direct messages. Therefore, we have to ask each user for their authorization to read their direct messages. This is done via email.
Click on Send Email for a specific user to send them an authentication email, or select the users you want to authenticate, then click on Migration Actions -> Send Authentication Email to send emails to users in bulk. Once the email is sent, the authentication status will show an orange exclamation point triangle, as shown in the screenshot below.
The authentication email sent out to users looks like this :
Once the user clicks on Authorize Slack, they are sent to a new browser tab where they should log in with their Slack credentials. Once authorized, a green tick will show in the Authentication status on the Altosio User Chats page, marking the user as Authenticated and ready to be migrated.
After the authentication process, you are ready to kick off the migration. Please note that the user list acts as a mapping table, so it is important to have the correct destination email addresses provided in the list. If the users email addresses are the same, no mappings are required. The tool will map the users to their same email addresses automatically.
Select the user or users you would like to migrate, then go to Migration Actions and click Start. The user will remain in a queued state until it finds a spot on the platform. Once the migration starts, it will show in a “Working” status.
You can click on Details, then the Logs tab to monitor the progress of your migration.
If the migration succeeds, the status will turn into Success. Otherwise, if there is an issue with the configuration, the migration will show an Error status. Please click on details to check the logs to see the reason behind the error. Eventually, please reach out to our support team at support@altosio.com to seek help if needed.
The chat messages will be migrated to HTML files, along with the attachments, in the user’s target OneDrive, in a folder called Teams Private chats.
Below is an example with some screenshots of the source Slack direct messages, and the destination Teams after migration.
The source user, Altosio Admin has a 1:1 conversation with Joe Miller and Nelson Johnson, as well as a group conversation with both of them.
Below, you can find a few screenshots of the group chat messages with Joe Miller and Nelson Johson. It contains emojis, images, file attachments (PDF, Word, Text, and PowerPoint documents) as well as code blocks and links.
The screenshot below shows the one-on-one migrated chat with Joe Miller. It shows the source and destination side by side.