The export command saves your Slack workspace as a ZIP file compatible with
Slack's own export format.
For incremental/resumable archiving, prefer slackdump archive. See the
Archive vs Export vs Dump section below.
Warning
For Enterprise Workspaces, read the [Enterprise tips][enterprise.md] first!
# Export the whole workspace (Mattermost format by default)
slackdump export
# Export to a specific ZIP file
slackdump export -o my_export.zip
# Export only specific channels
slackdump export C12301120 D4012041
# Standard format (for use with slack-export-viewer)
slackdump export -type standard -o my_export.zip| Type | Flag | Description |
|---|---|---|
| Mattermost (default) | -type mattermost |
Compatible with mmetl / Mattermost bulk import |
| Standard | -type standard |
Compatible with slack-export-viewer and other tools |
/
├── __uploads/ ← all uploaded files
│ └── F02PM6A1AUA/
│ └── Chevy.jpg
├── everyone/ ← channel "#everyone"
│ ├── 2022-01-01.json
│ └── 2022-01-04.json
├── DM12345678/ ← a DM conversation
│ └── 2022-01-04.json
├── channels.json
├── dms.json
└── users.json
/
├── everyone/
│ ├── 2022-01-01.json
│ ├── 2022-01-04.json
│ └── attachments/
│ └── F02PM6A1AUA-Chevy.jpg
├── DM12345678/
│ └── 2022-01-04.json
├── channels.json
├── dms.json
└── users.json
Pass channel IDs or URLs as arguments. Use ^ to exclude, @file for a
list file. For the full syntax, run slackdump help syntax.
# Include only specific channels
slackdump export C12401724 C4812934
# Exclude a channel
slackdump export ^C123456
# Use a file list
slackdump export @channels.txt
# With time range
slackdump export C123456,2024-01-01T00:00:00,2024-12-31T23:59:59You can use the built-in viewer:
slackdump view my_export.zipOr use one of these external tools:
- SlackLogViewer — fast C++ desktop app with search; works with Export files.
- slack-export-viewer — web-based viewer; requires Standard format.
-
Export in Mattermost format:
slackdump export -o my-workspace.zip -
Download
mmetlfrom the mmetl GitHub page and transform the export:./mmetl transform slack -t YourTeamName -d bulk-export-attachments \ -f my-workspace.zip -o mattermost_import.jsonl
-
Create the bulk import ZIP:
mkdir data mv bulk-export-attachments data/ zip -r bulk_import.zip data mattermost_import.jsonl
-
Upload and import into Mattermost:
mmctl auth login http://your-mattermost-server mmctl import upload ./bulk_import.zip mmctl import list available # note the file name with ID prefix mmctl import process <filename> mmctl import job list # monitor progress
See the Mattermost documentation for full details.
Use Slackord2 — a GUI tool compatible with Slackdump export files.
| Command | Format | Best for |
|---|---|---|
archive |
SQLite database | Incremental backups, large workspaces, SQL queries |
export |
Slack-compatible ZIP | Mattermost/Discord migration, compatibility with viewers |
dump |
Per-channel JSON | Low-level access, custom tooling |
archive is the recommended default. It is faster than export, can be
resumed, and can be converted to Export or Dump format afterwards:
slackdump convert -f export ./slackdump.sqliteIn fact, Slackdump uses a temporary archive file and then converts it to
export, when you run slackdump export.
| Flag | Default | Description |
|---|---|---|
-o location |
slackdump_<ts>.zip |
Output directory or ZIP file |
-type value |
mattermost |
Export type: mattermost or standard |
-files |
true |
Download file attachments |
-export-token string |
— | Append export token to file URLs (or set SLACK_FILE_TOKEN env var) |
-member-only |
— | Only export channels the current user is a member of |
-chan-types value |
all | Filter channel types (public_channel, private_channel, im, mpim) |
-time-from YYYY-MM-DDTHH:MM:SS |
— | Oldest message timestamp |
-time-to YYYY-MM-DDTHH:MM:SS |
now | Newest message timestamp |
-workspace name |
current | Override the active workspace |