“Can I export everything?” is the question people ask right before they migrate, right after a legal request, or in the specific hour after someone reads an article about vendor lock-in. The answer for Slack is a qualified yes, and every qualification is worth understanding before you rely on it.
Export scope varies by plan and by workspace settings and has changed over time — treat what follows as the shape of the thing, and verify the specifics against Slack's current documentation for your plan.
What a standard export contains
The baseline export available to workspaces covers public channel content: messages, timestamps, user IDs, reactions, and references to uploaded files. It arrives as a zip of JSON, organised by channel and by day.
- Public channel messages — the main body of the export.
- Channel and user metadata — enough to reconstruct who said what, where.
- File references — usually URLs pointing at the files rather than the files themselves, which matters more than it sounds.
- Reactions, edits and thread structure — present in the JSON, if not in a form you'd want to read directly.
The parts with asterisks
Private channels and DMs
This is the big one. Exporting private channels and direct messages is not part of the standard export on every plan — access to it is generally tied to higher plans and to a formal request process, on the entirely reasonable grounds that letting any admin silently download everyone's DMs would be a privacy catastrophe.
So if your mental model is “I'll export everything and switch tools,” recalibrate: you may be exporting the public half of your workspace. For most migrations that's genuinely the important half — the institutional knowledge lives in channels — but it's not everything.
The 90-day window on free plans
An export gives you what the workspace can currently access. On a free plan, that's the visible window rather than the full history, so an export won't retrieve messages already behind the wall.
It's JSON, not an archive you can read
A Slack export is a preservation format, not a reading format. Nobody is browsing 2026-03-14.json for the deploy discussion. If anyone will need to actually read this later, budget for a viewer, a script, or an import into something else.
A workable export routine
- 1Decide what you need, honestly. Compliance retention and “I want to keep the good threads” are very different requirements with very different solutions.
- 2Check your plan's scope in Slack's current export documentation, especially for private channels and DMs.
- 3Run the export from workspace settings and download the zip.
- 4Fetch the actual files referenced in the JSON, rather than trusting the URLs to outlive the archive.
- 5Store it somewhere backed up with a retention policy attached. An export sitting on one laptop is a story about a laptop, not a backup.
- 6Verify it once. Open a file, find a message you remember, confirm it's there. Nobody does this and it's the only step that tells you whether any of it worked.
What good export looks like in a chat tool
Since this article is on the site of a competing product, here's the standard being argued for rather than a sales pitch. A chat platform's export is good when:
- It's available on every plan, including the free one. Export gated behind a tier isn't a feature, it's a deposit.
- It covers the whole workspace, with the privacy controls around DMs made explicit rather than implicit.
- It includes the actual files, or a manifest that makes fetching them mechanical.
- It produces something machine-readable and something human-readable — JSONL for tooling, CSV for the person who just wants a spreadsheet.
- It's documented, so you can write against it without reverse-engineering.
For the record, Fluid Chat's export produces JSONL, CSV and a file manifest covering the whole workspace, and it's on the free plan — which is to say every plan, since there's only one. The reason to care isn't that it's generous; it's that an export you can run at any time is what makes a tool switchable, and a tool you can leave is a tool you can trust.
Export on every plan, because there's one plan.
Fluid Chat exports the whole workspace as JSONL, CSV and a file manifest, free, whether you self-host or use the hosted version.
If you're exporting in order to migrate
The uncomfortable truth about chat migrations is that the export is the easy half. Getting a Slack archive into another product is the genuinely hard part, and support for it is thin across the whole category — Fluid doesn't have a Slack importer either.
The pragmatic pattern most teams land on: export from Slack and keep it as the historical record, start clean in the new tool, and give people a month of overlap. History you rarely read is fine as a file. History you read daily needs to be in the tool — and that history starts accumulating the day you switch.