Are you looking to migrate from Slack to Microsoft Teams? Or maybe even looking to do a migration from Teams to Teams for restructuring or merging tenants? Well, this article is an excellent place for you to learn about what’s new.
What is the Microsoft Teams Import API?
It’s a new API within Microsoft Graph that allows you to programmatically import third-party platform messages into Microsoft Teams. An example of a third-party messaging system would be Slack. Are you limited to just importing from Slack? Absolutely not; it could be any third-party messaging system, or it could even be Teams itself (think Teams to Teams migrations). As of March 30th, 2021, this new functionality has become generally available for Microsoft 365 commercial tenants.
Can I import information to Teams now, without the new Import API?
Yes, you can. There are methods that now allow for the posting of messages into Microsoft Teams via the Conversation API. However, there are some significant drawbacks and limitations in doing so. Most notable of those are:
- No ability to keep the original sender in the message
- No ability to keep the original date and time the message was sent
- The Conversation API was not designed for migration purposes, especially large scale
- You could see very heavy throttling depending on how much data you are migrating
Think of going through a migration and having all your messages brought over to your new Team only to find that responses to the existing messages will not go to the original sender. This loss of data can be very frustrating for your end users as it results in a poorer experience.
Bear in mind that these are not all the limitations, but enough to highlight why we need something else, especially for migration purposes. This was something that Microsoft was aware of and that was a popular item in the Microsoft user voice community. They welcomed the feedback and gave us something that can help alleviate many of these issues.
What are the benefits?
We know what it is and why it was created, but what are some of the goodies that it provides? First and foremost would be high throughput processing; messages will import at five requests per second per channel. Does this mean that throttling will go away completely? Let’s not go that far, but if we see much-improved support for message throughput and less throttling, that should make for better performance. Also, the import API supports:
- Keeping the created time of the original message
- Keeping the sender of the original message
- Inline images as part of the messages
- Links to existing files in SharePoint Online and OneDrive
- Messages with rich text (HTML)
- Message reply chain (reply hierarchy)
Microsoft provides very helpful guidelines on how to best use their APIs and limit the amount of throttling that occurs. At AvePoint, we follow these guidelines very strictly, making our products more streamlined when it comes to performance with API interaction.
It works because many engineers who are much brighter than myself created it (I kid, but not really). Without going into too much technical detail, the process can be broken into five steps:
- Create the Team (it cannot exist already in the destination; more on this below)
- Create your channel (you can create multiple)
- Import the messages from your source
- Complete the migration, end migration mode (we will get into the details on this)
- Add your Team members
You’re probably wondering what migration mode in step 4 is and what it means to “complete” it. That makes for the perfect intro to our next section.
Limitations of the new API
Nothing is made perfect the first time around—especially in software—and the Import API has some limitations. Some of them are big, but it’s not all bad news; let’s dive in.
Once you begin the migration and tell the API to start creating your Team, it goes into what is called “migration mode” where you will not be able to see or access the Team in the UI. That applies to the native client, web version, and mobile app. If you have been part of a migration project before, you’ve probably checked your destination to make sure things look good. Do we want to visually check everything? Absolutely not, but the ability to spot-check a few Teams and make sure the channels and messages look good would be helpful.
Not until you tell the API that you wish to exit “migration mode” can you see the Team. However, once you have exited migration mode, you cannot start it back up; the import API cannot migrate to a Team that already exists.
Other items that are out of scope/unsupported include:
- 1:1 and group chat messages
- Private channels
- @ mentions
- Code snippets
- Crossposts between channels
That is a decent-sized list, and there are some big-ticket items in there. To learn how to overcome these limitations read my follow-up article here.
Optimizing Microsoft Teams Migrations with AvePoint
Remember when I said above that it was not all bad news? It’s not, and this is where AvePoint and our migration software FLY come in. We have another article to follow which will highlight how we support many of the unsupported items above, and how FLY was designed with a migration process mindset to help overcome some of the issues of not seeing the Team.
We don’t just make migration software here; we also do migrations through our migration as a service offering. That puts us in a situation where we understand the pain points and how limitations can affect those who are tasked with doing migrations.
If you’re ready to take the next step, sign up for your AvePoint account and give FLY a try!