PLATFORM
Slack Migration Tool
MigrationFox migrates Slack workspaces to Microsoft Teams with full message history, threaded replies, file attachments, and channel membership preserved. Whether you're consolidating on Microsoft 365 or retiring a Slack Free workspace before the 90-day message limit kicks in, MigrationFox handles the conversation data in a single job.
Channel Migration
Every public channel in your Slack workspace is enumerated during discovery. Private channels are included when the bot token has the required scopes. You can select individual channels or migrate the entire workspace in one pass.
For each Slack channel, MigrationFox creates a matching channel in the target Microsoft Teams team. Channel names are sanitized to fit Teams' naming rules (no slashes, no leading dots, max 50 characters) and collisions are resolved by appending a numeric suffix.
Message History with Threads
Slack messages are paginated using the conversations.history API with cursor-based iteration, so MigrationFox handles workspaces with millions of messages without hitting rate limits. Threaded replies are fetched per parent message using conversations.replies and attached beneath the parent in the destination.
Message formatting — bold, italics, code blocks, mentions, and emoji — is translated from Slack's mrkdwn syntax to Teams' HTML message format. User mentions are mapped using email address matching against the target tenant.
Attachments and Files
Files uploaded to Slack channels are downloaded using the Slack file API and re-uploaded to the corresponding Teams channel's SharePoint-backed file store. Each file is linked from the original message so the conversation context is preserved.
Large files use chunked upload sessions against Microsoft Graph. Files that exceed the Teams per-file size limit are logged to the skipped-items report with their original Slack URL so you can handle them manually.
Member Migration
Channel membership is read from the Slack conversations.members endpoint and mapped to the target tenant using email matching. Users that exist in both workspaces are added to the corresponding Teams channel automatically. Users without a match are logged so you can invite them or skip them during cutover.
Authentication
MigrationFox authenticates with Slack using a bot token from a custom Slack app that you install into your workspace. The required OAuth scopes are documented in the job setup screen and include channels:read, channels:history, groups:read, groups:history, files:read, and users:read.
The bot token is encrypted at rest with AES-256 and is only used for the duration of the migration job. You can revoke it in the Slack admin console the moment the job completes.
Supported Migration Paths
Slack to Microsoft Teams
The primary supported path. Channels, messages, threads, files, and members are mapped end-to-end during a single job.
Pricing
Slack migrations are billed at $0.50 per GB transferred (measured by the total size of message JSON plus attachments). Your account starts with 2 GB free — no credit card required. Discovery scans are always free and unlimited.