Slack to Teams Migration Guide for IT Admins

Migrating from Slack to Microsoft Teams requires careful planning to preserve conversations, files, channels, users, and permissions. ZuniPixel helps IT admins manage the migration with channel mapping, direct message migration, delta sync, validation, tracking, and detailed reporting.

By Ravi Y, Product Manager·

What migrates:

  • Public and private channels
  • Direct messages
  • One-Time and Delta Migration
  • Attachments and Custom Emoji Migration
  • Threads, Mentions, and Reactions Preservation
Slack to Microsoft Teams migration guide

Why organizations are migrating from Slack to Teams

Cost consolidation in the Microsoft ecosystem

License costs often drive the decision to migrate from Slack to Teams . Microsoft offers applications such as OneDrive, Outlook, and Teams on a single platform.

Slack only covers internal communication. Organizations end up paying for two platforms—one for communication and another for file management, email, and everything else—instead of consolidating into Teams, where it all lives in one place.

File organization inside Teams

File organization is another factor behind Slack to Teams migration. Microsoft offers OneDrive, where users can create, view, and edit files and share them via a direct link in Teams channels.

Slack focuses mainly on communication. For files, Slack needs to integrate with apps like Google Drive or other third-party tools to offer similar functionality.

Mergers and acquisitions

Consolidation during mergers and acquisitions also pushes many organizations toward Teams. When one organization already uses Microsoft for internal communication and other applications, and the acquired or merging organization uses Slack, leadership wants to consolidate onto a single platform for better management.

Slack vs. Teams: structural differences IT admins need to know

Slack and Teams have entirely different structures. In Slack, everything is a channel — public, private, or shared. In Teams, channels are part of a Team, so a Team must exist before a channel can. This is the fundamental difference between Slack and Teams structure, and the table below shows the detailed composition that helps explain it further.

ZuniPixel

Slack vs. Microsoft Teams structural differences

Slack StructureSlack ComponentTeams EquivalentDescription
ChannelsPrivate channelsPrivate channel (within a Team)Visible only to members who are added
Direct MessagesOne-to-one DMs1:1 ChatChat history exists only between the two members involved
Direct MessagesGroup DMsGroup ChatAll members in the group share the same chat history
Native appsCanvasLoop or OneNoteSlack Canvas migrates as Loop or OneNote
Third-party integrationsGoogle Drive, JIRA, and other external appsSame app if it has a Teams integration, or a Microsoft 365-native alternativeContinues working if the app has a Teams marketplace listing; otherwise replaced with a Microsoft 365-native alternative
File storageSlack's own file storageSharePoint (channel files) and OneDrive (chat/DM files)Channel files save to the SharePoint Documents folder; DM files save to OneDrive

The limits of Microsoft's free migration tool

Microsoft's native tool migrates public and private channels to Teams, letting IT admins create a new Team or bring channels into an existing one. But its limitations create real risk for larger migrations:

  • No delta migration — once the one-time migration runs, any Slack conversation happening afterward is never captured, leaving the migration only partial
  • No automatic rate-limit handling — when Teams API limits are hit, the migration doesn't pause on its own, so IT has to monitor and regulate it manually
  • No direct messages or app integrations — these require a separate solution entirely

For a small team looking to save money, the native tool can be a reasonable starting point. Once an organization needs to migrate Slack channels to Teams with the same structure Slack had, it's no longer enough.

Large organizations need a managed migration service for this reason — a dedicated team accounts for every detail, from initial connection through final cutover, rather than leaving IT to catch gaps on its own. ZuniPixel offers this as a managed migration service, and pauses migrations automatically when it hits rate limits rather than requiring manual monitoring.

Microsoft's native tool vs. ZuniPixel

Microsoft's native migration tool vs. ZuniPixel

Migration CapabilityMicrosoft Native ToolZuniPixel
Public/private channel migration
Direct messages
Delta migration
Archived channels
User mappingAuto-map + manual CSV overrideAuto-map + CSV mapping requested when needed
Multi-workspace support❌ (one workspace at a time)
Pre-migration scan depthLimited (channel content only)Comprehensive (users, channels, messages, files)
Rate-limit handlingManual monitoring requiredAutomatic pause/resume
Slack shared channels❌ (channel excluded entirely)Migrates with external users mapped to a dedicated account, guest access added post-migration
Text formatting, mentions, standard emoji reactions
Custom emoji
Bots and appsMessages/links migrate as-is; bot or app itself needs reconfiguring

What migrates from Slack to Teams

Channel mapping and structure

In Microsoft Teams, a Team is a parent that holds one or more channels. Slack channels can map into this structure in a few ways.

  • Each Slack channel can become its own Team.
  • Multiple public channels can merge into one Team.
  • Multiple private channels can merge into one Team.
  • Channels can merge into an existing Team.
  • Channel descriptions map over to Teams.
  • If a channel description contains a link, Teams doesn't support it — ZuniPixel skips the link and keeps the rest of the description intact.

Messages and threads

Messages, replies, and threads migrate exactly as structured in Slack.

Slack's broadcast feature lets a member surface a thread reply to the whole channel, so the same message appears both in the thread and in the main channel — ZuniPixel migrates both instances without duplicating the message.

  • Timestamps stay intact throughout.
  • Mentions and custom emoji used in messages migrate as-is.
  • Emoji reactions on messages migrate as-is.
  • Text formatting — bold, italics, strikethrough, and code blocks — carries over to Teams
  • Pinned messages migrate and stay pinned in the Teams channel.
  • Files migrate along with the messages they're attached to
  • External and third-party links included in messages migrate as-is.
  • If a Slack channel has a Canvas attached, it migrates to Teams as OneNote or Loop, and the format is customizable to the organization's needs.

User mapping

  • Users matched through auto-map or CSV mapping have their messages migrated as-is, under their own name.
  • By default, ZuniPixel maps messages from departed users (those with no licensed Teams account) to the admin account.
  • Because the admin is often already a member of the same channels, this can create confusion about who's actually posting — so organizations can request a dedicated email account instead, used only for posting messages from departed users.
  • Either way, every message still carries a label with the original user's name, so the conversation reads correctly regardless of which account is posting it.

Bots and apps

  • Bot messages migrate as-is, but the bot itself needs to be configured in Teams after migration.
  • App messages and links — for tools like JIRA and Google Drive — migrate as-is, but the app itself needs to be configured in Teams after migration

Common Slack to Teams migration challenges

The structure mismatch

Slack has a flat structure — public channels and private channels sit side by side. Teams is two-layered: the Team is the parent, and channels sit underneath it. Organizations planning a slack to teams migration need to account for this structural difference before they start.

To address this, ZuniPixel's interface gives organizations options:

  • Each Slack channel becomes its own new Team
  • Public channels merge into a new Team.
  • Private channels merge into a new Team.
  • Channels merge into an existing Team.

This helps organizations structure their Teams environment to avoid confusion or clutter after migration.

Permissions on private channels

Since a private channel is part of a Team, merging it in carries a risk — adding members to the parent Team could expose them to a private channel they shouldn't have access to, violating that channel's privacy.

ZuniPixel handles this in three steps:

  • All parent-level Team members are added first.
  • ZuniPixel retrieves the member list for each private channel separately and adds it only to the corresponding private channel.
  • ZuniPixel checks back against the source to confirm no privacy violation has occurred

The platform is built specifically to prevent this from happening in any scenario.

Governance

Teams creates a SharePoint site for every Team; a Team containing both standard and private channels gets an isolated SharePoint site to maintain privacy for the private ones.

Mirroring Slack's structure exactly — a separate Team for every private channel — can look appealing, but becomes a burden for IT admins managing dozens of extra SharePoint sites after migration.

ZuniPixel works with the organization's IT team to identify which channels genuinely need to stay private in Teams, so the final structure is architected around real needs rather than a literal copy of Slack.

This isn't a product feature — it's a benefit of ZuniPixel's managed migration service.

Attachments

When you migrate Slack channels to Teams, some filenames contain characters that Teams doesn't support. ZuniPixel automatically replaces these unsupported characters before migrating the file, keeping the transfer successful and preserving data integrity instead of failing on that file.

Slack shared channels

Slack shared channels can migrate like any other channel, mapped to the corresponding Team. The challenge is external users — since they aren't part of the organization's Microsoft 365 directory, ZuniPixel can't map them individually.

ZuniPixel migrates these conversations by:

  • Mapping all external users to one dedicated account in the destination Team
  • Letting the organization add external users as guest users after migration
  • Allowing the other company to accept the guest invite and log into Teams to continue the conversation directly

Slack Archived channels

Slack doesn't provide a member list for archived channels through its API. ZuniPixel identifies these channels during the pre-scan and migrates them by creating a dedicated Team for all archived channels.

By default, only the admin is added as a member of this Team, unless the organization requests a different team member instead. This keeps archived content accessible for internal auditing without needing to add the original channel members back individually.

Teams channel and member limits [Verified August 2026]

Microsoft updated Teams' channel and member limits in 2026:

  • Private and shared channels both count toward the overall 1,000-channel limit per team.
  • A private channel can now hold up to 5,000 members, up from the legacy 250-member limit.
  • A shared channel can hold up to 5,000 direct members and be shared with a maximum of 50 distinct Teams.

ZuniPixel works within Microsoft's defined limits. If a migration would exceed any of these caps, ZuniPixel identifies it during the mapping stage, helping the IT team restructure channels or memberships before hitting a hard limit.

Direct message challenges

Direct message migration creates two separate challenges.

Challenges:

  • Every user must authenticate individually before ZuniPixel can migrate their DM list, messages, and files — and large organizations often have more conversation volume in DMs than in channels, since people use DMs for one-to-one and group conversations outside channel-based work.
  • A user who has left the organization can no longer authenticate, and no matching account exists on the Teams side, so there's no way to map their identity.

How ZuniPixel handles it:

  • An authentication status tracker shows which users have been emailed and which have authenticated, with the ability to trigger a new request directly from the interface if a user forgets
  • Migration planning and initiation can continue in parallel while authentication is still in progress, so it doesn't block the entire timeline.

API rate limits

Migrating from Slack to Teams runs into rate limits from three different sources.

Challenges:

  • Reading data from Slack is subject to multiple API tiers, each having its own rate limit, and hitting these limits early in the process can seriously affect the migration timeline.
  • Sending messages to Teams has its own rate limit — exceeding it means messages stop posting.
  • Sending files to OneDrive and SharePoint has a different limit, and going over it can make Microsoft block all SharePoint or OneDrive traffic for days, which is very harmful during delta migration after users have been told Slack is ending.

How ZuniPixel handles it:

  • ZuniPixel's migration engine is built to respect each of Slack's API tiers and their individual rate limits, without affecting migration speed.
  • For Teams message limits, the migration pauses briefly when it approaches the threshold, respects the API's response, and resumes automatically.
  • The same limit system controls file sending to OneDrive and SharePoint, so it never goes over these limits.

Step-by-step: how the ZuniPixel migration works

ZuniPixel Google Workspace OAuth connection step

Getting ready to migrate

Connection

ZuniPixel connects to the organization's Slack and Microsoft 365 accounts at the admin level to begin the slack to teams migration process.

ZuniPixel Slack workspace OAuth connection step
ZuniPixel Google Workspace OAuth connection step

User authentication

  • Slack's API only grants access to private channels and DMs where the connecting admin is already a member.
  • To get full access to a user's private channels and direct messages, that individual user needs to authenticate and give their own consent.
  • ZuniPixel sends an authentication email to every user in Slack.
  • Each user clicks the link in the email, which redirects them to the Slack login page.
  • Once they enter their credentials, ZuniPixel retrieves the private channels and direct messages they were part of
  • ZuniPixel's interface tracks which users have received the email and which have completed authentication, and you can export this report.
  • If a user needs the email sent again, the IT admin can trigger it directly from the interface.
  • Migration planning and initiation can proceed while user authentication is still in progress.
ZuniPixel Google Workspace OAuth connection step

Planning your Slack to Teams migration

Pre-scan

ZuniPixel provides a comprehensive pre-scan report listing every user in Slack and Teams, along with all public, private, and archived channels. For each channel, the report includes:

  • Total number of users, with their names and emails
  • Total message count
  • Total file count

This report gives the IT team and ZuniPixel the details they need to plan the migration well.

Channel mapping and batching

After the pre-scan report is ready, ZuniPixel and the IT admin plan the migration together:

  • Channels are prioritized by how many messages and files they have and how active they are.
  • Batches are planned to balance high, medium, and low-volume channels.
  • The team decides how to move archived channels and set up Teams.
  • ZuniPixel explains the structural difference between Slack and Teams during this phase: Slack has a flat structure, while Teams is two-layered, with a Team as the parent and channels as children. Membership also works differently — members are added at the Team level first, and the organization can then restrict access at the channel level.
  • By the end of this phase, everyone involved understands the Team setup and batch plan, including how many channels are in each batch and when each batch will happen.
ZuniPixel Google Workspace OAuth connection step

Running the migration

ZuniPixel Google Workspace OAuth connection step
ZuniPixel Google Workspace OAuth connection step

Initial sync

After preparing the batches, ZuniPixel initiates the migration based on the channel mapping agreed on during planning.

  • A Migration Job is created for the migration.
  • Initial sync migrates the conversation history in each channel, from the beginning up to the date the migration starts.
  • Users continue having conversations in Slack while an initial sync is in progress.
ZuniPixel Google Workspace OAuth connection step
ZuniPixel Google Workspace OAuth connection step

Delta sync

  • Delta sync catches up on the gap left by initial sync.
  • It identifies and migrates the new messages that accumulated after the initial sync date.
ZuniPixel Google Workspace OAuth connection step

Tracking and reporting

ZuniPixel provides comprehensive reporting at both the job and channel levels, giving IT teams full visibility throughout the Slack to Teams migration. A Migration Dashboard shows a high-level view.

Within a Migration Job, the entire history is trackable:

  • When the initial sync started
  • Which channels were included
  • Total message count
  • How many are in progress versus completed (same detail available for delta sync)

ZuniPixel provides comprehensive reporting at both the job level and the channel level. A Migration Dashboard shows a high-level view:

  • Total jobs in progress and completed
  • Total channels in initial sync (in progress and completed)
  • Same breakdown for delta sync
  • Same statistics for direct messages, both one-to-one and group
ZuniPixel Google Workspace OAuth connection step

Post-migration activities

Third-party app and workflow re-integration

Migrating conversations to Teams doesn't automatically carry over the apps, integrations, and workflows connected to Slack. IT teams need to handle several things after go-live:

  • Webhooks: Developers need to generate fresh webhook URLs and update systems like GitHub and PagerDuty, so system alerts continue reaching the right place in Teams
  • Reinstalling apps: IT admins need to install apps like JIRA, Asana, and Zoom in Teams, and ask users to log in and sync their projects from day one
  • Rebuilding workflows: Engineers need to rebuild Slack Workflow Builder automations in Teams using Power Automate.

ZuniPixel's pre-scan identifies the apps and Workflow Builder automations in use in Slack, so IT admins know exactly what needs reinstalling or rebuilding before go-live, rather than discovering gaps after the fact.

Decommissioning Slack and post-migration support

IT admins should plan Slack's decommissioning as a gradual process rather than a same-day cutover:

  • Archive channels first, once go-live is confirmed stable.
  • Cancel Slack's licensing or subscription only after archiving is complete, rather than on go-live day itself.
  • Setting up an exclusive support channel for users after migration also helps smooth the transition, giving people a clear place to raise issues as they adjust to Teams.

Teams training for end users is optional and available on request. Beyond training specifically, ZuniPixel supports post-migration activities in every way possible as part of the managed migration service.

Real migration results

A mid-sized financial services organization migrated 100 channels, 1,500 direct and group message threads, and 1,000 files for 70 users from Slack to Teams using ZuniPixel — moving between 100,000 and 150,000 messages in total. The entire migration, from initial connection to go-live, was completed in under a month, with zero data loss.

Security

ZuniPixel encrypts data in transit using TLS 1.3, the current standard for secure data transmission. Data at rest is encrypted using AES-256.

Authentication for both Slack and Microsoft 365 connections uses OAuth 2.0, so ZuniPixel never handles user passwords directly.

RY

About the author

Ravi Y

Product Manager at ZuniPixel

10+ years of product management experience in enterprise migration tools, with hands-on work across Slack to Microsoft Teams, Slack to Google Chat, and Google Drive to OneDrive migrations.

Frequently asked questions

Everything you need to know about Slack to Google Chat migration

ZuniPixel connects to the organization's Slack and Microsoft 365 accounts at the admin level to begin the migration process. Authentication for both platforms uses OAuth 2.0.
The pre-scan report lists every user in Slack and Teams, along with all public, private, and archived channels. For each channel, it shows the total number of users with their names and emails, the total message count, and the total file count.
ZuniPixel uses auto-map to match users by email, username, or display name, with CSV mapping used to fill in anything auto-map misses. For channels, ZuniPixel gives organizations several mapping options: each Slack channel as its own Team, merging public channels into a Team, merging private channels into a Team, or merging channels into an existing Team.
Yes. Bold, italics, strikethrough, and code blocks all carry over from Slack to Teams as part of the migration.
Both migrate as-is. Custom emoji used in messages and emoji reactions on messages carry over to Teams without any manual recreation needed.
ZuniPixel maps these messages to an admin account by default, or a dedicated email account if the organization prefers to avoid confusion with the admin's own channel activity. Every message still displays the original user's name as a label.
Yes. Bot messages migrate as-is, but the bot itself needs to be configured in Teams after migration.
Yes. ZuniPixel migrates the conversation by mapping external users to a dedicated account in the destination Team. After migration, the organization can add those external users as guests, so the conversation continues directly in Teams.
ZuniPixel's Migration Dashboard shows a high-level view of every job — total jobs in progress and completed, channels in initial sync and delta sync, and the same statistics for direct messages. Job-level and channel-level reports are also available for a more detailed view.
ZuniPixel's managed migration service handles the migration end to end, including identifying third-party apps and Workflow Builder automations that need reinstalling or rebuilding after migration. Teams training for end users is also available as an optional part of the service.

Ready to migrate Slack to Teams without the risk of lost messages or manual cleanup?

ZuniPixel's managed migration service handles the entire process, from pre-migration scanning to post-migration support.