How to migrate from Slack to Mattermost
How complete {from}'s export is depends on your plan: Free/Pro plans only export public channels, with no DMs or private channels — if you need that history, you need to be on a Business+ plan or higher before exporting.
- 1
Confirm your Slack plan's real export scope before promising anything
In Workspace Settings → Import/Export Data, check what kind of export your current plan actually offers. If your team expects to recover DMs or private channels and you're on Free/Pro, it's not going to happen — settle this before announcing a cutover date.
- 2
Export Slack's history
Generate the export from that same panel — Slack delivers a .zip with one .json per channel per day, plus `users.json` and `channels.json` metadata. You don't need to unzip it before uploading it to Mattermost.
- 3
Deploy Mattermost via Docker Compose
Mattermost needs PostgreSQL (see the docker-compose.yml on its page). Before importing, create the accounts for the users you're migrating first — Slack's importer links messages to existing users by email, it doesn't automatically create new accounts in every case.
- 4
Import with mmctl, not just the web console
As a system admin, use the `mmctl` CLI: `mmctl auth login`, then `mmctl import upload slack-export.zip`, `mmctl import list uploads` (note the ID it returns), and `mmctl import process <id>` to kick off the job. One-click import from System Console exists, but in several Mattermost versions it's an Enterprise feature — the CLI path works on the Team/OSS edition.
- 5
Reconnect integrations and check external shared channels
Slack's webhooks, bots and connected apps don't migrate — you'll need to recreate them pointing at Mattermost. Slack Connect channels (shared with other companies) also have no automatic equivalent: those conversations stay only in Slack.
Before cancelling Slack
Before cancelling Slack, verify the importer brought over threads and emoji reactions correctly in a couple of test channels — mmctl does support them, but it's worth confirming with your own data before migrating the rest of the team.
Ready to deploy Mattermost?
Full profile with license, tech stack and ready-to-copy docker-compose.
View Mattermost's profileThese steps are a general guideline — the exact export menu can vary depending on Slack's plan and version.