Teams Private Chats Migration


Table of Contents


Altosio offers a great tool to migrate data stored in the cloud from and to several vendors. It allows you to seamlessly switch from a tenant to another, with a guarantee of no data loss. 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 The migration tool is reliable, secure and lightning fast.

What is migrated in a Teams User Private chats migration scenario?

  • Chat messages.
  • Chat messages metadata, including the sender and the date-time.
  • Attachments within the chat messages. This includes screenshots and GIF images.
  • Text styling (color, style, font) and emojis.
  • Chats 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 target to look exactly like the source. This is due to some API limitations that either don’t allow us to read the source, or prevent us to push the data in the destination. Some of the limitations are described in the list below:

  • Private chat messages can be read entirely from the source. However, 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 created 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.


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 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.


To access Microsoft Teams, Altosio needs:

  • An admin consent to use the Altosio Azure Active Directory 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 “” or your M365 vanity domain “”.
  • 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 time of the migration.
  • The target users should exist in the target tenant, licensed and should 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 scripts that triggers the provisioning of the OneDrives of your users.


Each user’s chats 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


  1. Sign up and create your first project

First off, please create an account under, 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 Teams User Private Chats migration, we need to create a source and a target connector of type Teams User Chats.

         a. Create your source connector:

Under the connectors page, click on New Connector, choose Source, and then Teams User Chats.

Give your source connector a name then provide the domain of your tenant. This can be either your commercial domain ( or your Microsoft technical domain (
Click on Grant Admin Consent. This will redirect you to a new page where you will have to log in with your Global Administrator credentials and accept to install the Azure Active Directory Application on your tenant.

Please note that this application should be removed from your tenant after migration.

Please note that you can decline installing this application on your tenant. Instead, you can create your own Azure AD application, and provide the Application Id and Secret to Altosio. The tool will then use your own application credentials to connect to your M365 tenant.

The creation of source connectors automatically triggers a discovery job of your source M365 tenant. This job will pull the list of users you have in your source tenant. You can navigate to User Chats page to see the progress of this discovery job.

                b. Create your target connector

Identically to the source, you have to create your target Teams User Chats connector.

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 popup should give you more information about the issue causing the connection to fail.


Pre-migration assessment 

Before running the migration, Altosio provides you with a way to assess your migration. The assessment task allows you to identify which users will take longer to mirgate based on the amount of data in the source.
For more information, please reach out to


        1. Migrate

Once everything is configured, please get back to your User Chats page, select the items you want to migrate and then click start.
This action should prompt a selection of target connector. Select your target connector and click migrate.


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 to seek help if needed.

    2. Results

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 and the destination after migration. The source user, Andy Robbins, has 3 chats, two of them are One-on-One, and one Group chat.

Below is a screenshot of the group chat messages:

and some screenshots of the private chat between Andy and Adele:



After migration, the folder Teams Chat History contains 3 HTML files with the 3 chats of the source, as well as the screenshot that was sent as an attachment from Adele to Andy.

Below is a screenshot of the files inside the Teams Private Chats folder.

The screenshot below shows the chat messages from the group chat file: 
And finally, some screenshots of the chat with Adele, showing how Gifs and attachments are migrated, as well as replying to a certain message and the text styling of the messages.



Once your boards are fully migrated, it is important to remove the Altosio Azure Active Directory (AAD) application.
To remove the application, please follow the steps detailed below:

  1. Go to your Azure portal via this link
  2.  Under Azure Services, click on Azure Active Directory as show in the screenshot.
        3. On the left-hand side menu, click on Enterprise applications.

        4. Among the applications, look for the Altosio application and click on it to open it.

        5. On the left hand-side menu, click on Properties, then delete and confirm the deletion.

Please do not forget to revoke the Asana access token as well.


Support is done by email at or over Teams calls.
Altosio support team will assist you throughout your migration project and will be pleased to help you run a successful migration.