Thank you for your continued feedback. We are currently working on this, and recently announced this feature for developers in Beta. For more information, please visit https://developer.microsoft.com/microsoft-teams/blogs/importing-3rd-party-platform-messages-to-microsoft-teams-is-now-available-in-beta/.
An error occurred while saving the commentAngelo Lakra commented
After six months of checking this thread, I was hoping someone had a solution, but this doesn't seem to have happened yet.
We were using Slack and a company came along and bought us. They use Skype and Teams for all group chat communication.
We though that we had to switch over to Teams, but we were told several months later that we would remain on Slack.
Today, I work across two different services, Slack and Teams, to communicate to different parts of the company. I don't know if this will continue as our teams get more integrated, but we'll see.
Regardless, in those few short months, I was racking my brain on how to import our historic chat data into the threaded format that Teams uses. This seems possible by reformatting each channel's history for it to make sense in a threaded context.
The first obstacle I ran into is that I don't have the time to do that. As a realistic example, if four people are having two different conversations in the same channel in Slack, how should that look in Teams? I can create two threads with the correct context so that each thread has the correct participants, right? What if one of the users decides to answer both users across the conversations on the same message? I can solve this by creating a single thread, but I cannot come to that conclusion without grasping the context of the conversation. Manual refinement doesn't scale well for large archives of chat.
If you make every message you want to import into it's own thread, then it could work, but this doesn't look right in Teams because you end up with a ton of single message threads that are linked or not linked by conversation. You won't know unless you read each one because they aren't grouped.
The second obstacle I came across were the missing import features of the current API. I cannot import messages with backdated time stamps. I cannot easily assign authorship of past messages to current users without some type of credentials from that user. And the most problematic, I cannot create more messages within a thread other than the first one from the API.
According to the API documentation (as of Jan 2, 2018), none of this is straight-foward or even possible with the Microsoft Graph Beta API for Teams. See https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/resources/chatmessage and https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/channel_post_chatthreads
So, even if you are a good programmer and you have all the historical chat data structured in a threaded way, you're blocked until they add support for these needed features. If I'm wrong about this, please do post about it and correct me.
Having assessed the import situation, it might be useful to think through a few questions for creating alternative solutions:
1) Why do you want to preserve your old chat data? This might be seem obvious, but asking it will actually pinpoint the value you want to retain for your organization.
2) Do you have a business requirement that requires that this data be readily available? Is not having this chat data available causing your business to suffer in some way? This can help your prioritize how badly you need this functionality.
3) When you do finally get your data imported, what minimal viable functionality do you need to get the value from your historic chat data? Is search and retrieve enough? Do you need some sort of heuristic process to get deeper knowledge out of your data?
4) Are there other ways that you can utilize your historic chat data out-of-band from your previous chat provider and Teams? Can your organization provide an in-house solution for querying your historic chat data? Or would you be willing to work with a third-party who can build a solution for you?
I think if you can at least answer these questions, it will at least be clear if pursuing an import strategy is worth it or not. For me, it turns out that I didn't need to, but that could change as the company I work for integrates its tooling more tightly.
Now, not all is lost, there are some other handy features of Teams that can be utilized to get your historical chat data into usable places. Tabs seems to be the most viable because you can build a custom web service somewhere on the internet and serve your content contextually to a tab tied to each channel.
This content could be as simple as a flat plain text log of all the historical data for the slack-equivalent channel or you can add search features. It's up to you. I really believe this is the correct way to solve the migration problem because you aren't beholden to the constraints of Teams.
I would love to hear further thoughts on this.Angelo Lakra supported this idea ·