How to export your data from Slack before your contract ends
If you are facing a renewal, a plan change or a decision to leave Slack, the first question is what Slack will actually hand over. Public channels can be exported on every plan, but private channels and direct messages need an approved Business+ or Enterprise application. Whatever the plan, the export carries messages and file links, not the files themselves. The limits that matter most are the 90-day file link window on Free and the permanent deletion of Free workspace content older than one year, which Slack states in its help center. Because Free content can disappear on a schedule, a Free workspace should be exported before the oldest history ages out, not at the end of the contract.
Each of these limits shapes a different step. The export roles come first: only workspace owners and admins, or members holding the Export admin role, can start an export, so confirm who holds that access before the renewal date. Next, check whether your workspace is on Business+ or Enterprise and whether an application for private channels and DMs is needed, since approval is not instant and should be planned into the timeline. Business+ workspaces with an approved application can schedule weekly or monthly exports, which helps when you need a rolling copy rather than a single snapshot. The Slack export help article sets out the current options and should be read against your plan before you file anything.
Plan for the file gap now. Because exports contain file links, confirm how long those links remain valid and whether your files are still reachable after the contract ends, and download the files you need while the workspace is still active. Ask Slack to confirm, in writing, which export options your plan and any approved application cover, and note that exports from Enterprise Grid organizations cannot be imported into other Slack workspaces. Whatever target you choose, test the export on a sample before cutover so you can see which messages, threads and attachments arrive in a readable form.
What each Slack plan can export and in which format
This table compares what each Slack plan lets you export, how the export is requested, the format it arrives in, and the limits that apply. Read it by first finding your plan, then checking whether your private channels and DMs need an approval step before you start.
| Export item | Plan and access | Format and approval | Limits |
|---|---|---|---|
| Public channel messages | Every Slack plan, including Free | JSON export by a workspace owner, admin or member with the Export admin role | Public channels only on every plan |
| Private channels | Business+ or Enterprise only | Requires an approved application to Slack before export | Not available on Free or Pro without approval |
| Direct messages | Business+ or Enterprise only | Requires an approved application to Slack before export | Not available on Free or Pro without approval |
| Scheduled exports | Approved Business+ workspaces | Weekly or monthly scheduled exports | Available only after the approval step |
| File links | Every Slack plan | Export holds file links, not the files themselves | Free workspaces get file links from the last 90 days only |
| Custom exports by member or conversation | Enterprise only | Selected members or conversations exported on request | Not available on Business+ |
| Who can run an export | Owners, admins or Export admin role members | Confirm the Export admin role exists in your workspace settings | Other members cannot start an export |
What Slack does not export and how to work around each gap
A Slack export is a record of messages and file links, scoped by your plan and your workspace type. The cards below cover the gaps that most often surprise teams during a move, and what to capture before the window closes or the plan changes.
The files themselves
A Slack export contains messages and file links, not the attachments. Each link points to a file in Slack, so the file is only retrievable while Slack still hosts it and your account can open it. Before cutover, plan a separate download job that fetches files through those links and stores them in your own object store or file system, keyed to the message they belong to. Check whether the links still resolve for files shared by people who have since left the workspace, since those are the files most likely to be lost.
Free plan history beyond 90 days
Slack Free shows 90 days of message and file history, and Slack documents that content older than one year on Free workspaces is permanently deleted. Anything in that older band is outside what a standard export gives you, so the window closes on its own schedule. If you are on Free and plan to leave, capture the history you need now, while it still exists, and record the date you did it. Confirm with Slack what is retained for your specific workspace before you rely on it for a records decision.
Visible history after a downgrade
Plan changes can change what members see and what an export can reach. If your workspace moves from a paid plan to Free, history that was visible under the paid plan may fall into the Free window and become inaccessible to members. Run the full export while the workspace is still on its current plan, and do not wait until after a renewal lapses or a seat count drops. Keep the export archive, its date and the plan in force when it was created, so you can show what was captured and under which rules.
Private channels and direct messages
Every Slack plan can export public channels, but private channels and direct messages need an approved request on Business+ or Enterprise. Free and Pro workspaces cannot export these conversations at all, so a team on those plans must upgrade and be approved before the data can leave. Ask the workspace owner to start the application early, since approval is a step outside your control. Confirm which conversations the approved export will cover before you start the migration plan.
Enterprise Grid exports
Exports from Enterprise Grid organizations cannot be imported into another Slack workspace. If you are moving to a self-hosted platform, that restriction does not block the export itself, but any import tool that expects a standard Slack export may need the data prepared differently. Confirm with Slack exactly which export format and approval path your Grid organization supports, and ask whether the output can be used by the target platform's import tool before you commit to a timeline.
Custom exports by member or conversation
Custom exports filtered by member or conversation are an Enterprise-only capability. Teams on other plans get the standard workspace export, which covers what their plan allows and no more. If you need only one team's channels or a single person's conversations, check whether your plan includes custom exports before you plan around them. Otherwise, filter the full export on your side after receiving it, and log which filter you applied so the result can be reproduced.
The sequence for a complete Slack export
This sequence produces a verified, per-channel export of your Slack workspace data, with a record of what was exported, what was missed, and which file links still need to be retrieved. Work through it in order, because the plan and the export owner's role decide which later steps are open to you.
Confirm the plan and the export owner's role
Start by checking which Slack plan the workspace is on, since that decides what can be exported. Only workspace owners and admins, or members holding the Export admin role, can run exports. Public channel exports are available on every plan, while private channels and direct messages need Business+ or Enterprise. If the workspace is on Enterprise Grid, note that its exports cannot be imported into other Slack workspaces. Done means you have a written record of the plan, the names of the people who can run exports, and the scope you need.
Apply for private channel and DM access
If the workspace is on Business+ or Enterprise and you need private channels or direct messages, submit the export application through Slack before you plan anything else, because approval controls what the later steps can contain. Ask Slack to confirm in writing what the approval covers, including which conversations and date ranges. Done means you hold a written approval, or a written note that the scope is limited to public channels. Do not assume approval is quick, and confirm the timing with Slack.
Run the public and private exports
Run the workspace export from the admin settings for the approved scope. The export contains messages and file links, not the files themselves. Keep the public export and any approved private or DM export in separate folders so each can be verified on its own. Done means each export has finished and you can open its JSON output. Compare the channel count and the earliest and latest message dates for a sample of channels with what admins see in the Slack interface. Any gap should be written down before you continue.
Schedule recurring exports if approved
If Business+ approval includes scheduled exports, set up weekly or monthly runs so that content created after the first export is captured. Scheduling is not available to every plan, so confirm it in the export settings before you rely on it. Name each scheduled export in your own log and record the first run date. Done means the schedule appears in the admin settings and the first scheduled file arrives. Compare its channel list with the one-time export to confirm nothing dropped out.
Download the export and linked files promptly
Download the export files and then retrieve the files behind the links while those links still resolve. On Free workspaces, file links only cover the last 90 days, so older attachments may already be unavailable, and Slack states that content older than one year on Free is permanently deleted. Log every file that returns an error, with its channel and message timestamp, so you can decide later whether another source exists. Done means you hold the export archive and a list of files that could and could not be retrieved.
Record checksums for each export archive
Generate a SHA-256 checksum for each export archive and each downloaded file bundle, and store the values alongside the archives in a location with access control. Run the checksum again on a copy in your target environment before import to confirm nothing changed in transit. Done means you have a signed-off manifest listing each file, its size and its checksum, and the second check matches the first. This record supports later chain-of-custody and migration reviews.
Inventory the export per channel
Build a per-channel inventory with the channel name, type (public, private or DM), message count, earliest and latest message dates, and number of linked files. Check the totals against counts in Slack for a sample of channels, and record any differences with the reason you found. Include a list of integrations, bots, user groups and Slack Connect channels, because these do not carry through a standard export and need their own planning. Done means every channel in scope appears in the inventory, and each discrepancy has an owner and a note.
Why file links and the 90-day Free window change the export plan
A Slack export carries file links, not the files themselves. The message JSON records where each attachment lived, but the binaries are a separate retrieval job, and that job depends on whether those links still resolve and whether the account used to fetch them still has access. Before you commit to a migration date, ask who in your organization holds the export admin role, confirm that the links in a test export open with the credentials you will actually use, and decide where the downloaded files will land. Teams that skip this check often discover at cutover that a large share of their attachments cannot be recovered in the form they expected. The file workstream should have its own owner, its own test plan and its own schedule, separate from the message import.
The Free plan sets the most urgent clock. Slack states that Free workspaces keep 90 days of message and file history visible, and that content older than one year on Free workspaces is permanently deleted. Anything beyond the visible window may already be gone from the interface, so a workspace that has been on Free for a long time should be exported now rather than planned for later. Confirm your current plan and the oldest message you can still see before you schedule anything else. Because the export only includes content still in the workspace, waiting for a migration project to start can mean losing history that a one-time export would have captured.
For Free teams, the practical rule is to export early and repeat the export before cutover, since each run only captures what remains at that moment. Treat the first export as a safety copy, then run a fresh export shortly before you freeze new messages in Slack so the final import includes the latest conversations. Record the date and scope of each export, and keep the archives in storage you control with access logging enabled. Private channels and direct messages follow different rules, so check the plan requirements described in the earlier sections before assuming the export contains everything you need.
Export paths for Free, Business+ and Enterprise workspaces
On the Free plan, any workspace owner or admin can export messages and file links from public channels. The export gives you a record of conversation text and links, but not the files themselves. Free workspaces also have a file link window: the export only includes file links from the last 90 days. Slack states that content on Free workspaces older than one year is permanently deleted, so the time to act is before that content ages out, not after you decide to leave.
- Export public channels first: Run the workspace export from the admin settings as soon as you know you will move, and keep the archive somewhere your organization controls.
- Check the 90-day file link window: Files older than 90 days will not have links in the export, so download anything you need from Slack directly while it is still accessible.
- Assume private channels and DMs are out of reach: Free workspaces cannot export them, so plan for those conversations to be lost unless members save them manually.
- Watch the one-year deletion date: Work out which history is approaching the one-year mark and prioritize it.
Ask Slack's help center or your account contact whether your plan has changed, and confirm the current retention behavior for your workspace before you rely on it.
Business+ workspaces can export public channels on every plan, but private channels and direct messages need an approved application. Only workspace owners and admins, or members with the Export admin role, can start an export. The application is the gating step, so submit it early and keep the request tied to a documented business reason, such as a migration or a retention obligation. Approved Business+ workspaces can also schedule weekly or monthly exports, which helps when you need a rolling copy during a phased cutover.
- Apply for private channel and DM access: Submit the application through Slack's export process and expect to wait for approval before you can export those conversations.
- Confirm who holds the Export admin role: Assign it to a named person who can run and store the archive, and record the assignment.
- Set up scheduled exports after approval: Use weekly or monthly schedules to capture ongoing history while you move teams in stages.
- Remember that exports contain file links: Plan a separate process to download files that must move to your new platform.
Before you apply, ask your Slack account team or Slack support what approval requires and how long it takes for your workspace.
Enterprise organizations have the widest export options, including custom exports by member or conversation. These exports are an Enterprise feature, so they are not available to Business+ workspaces. Enterprise Grid organizations need one extra check: exports from Grid organizations cannot be imported into other Slack workspaces. If your destination is a self-hosted platform, that restriction matters less than it sounds, but it limits any plan that depends on moving data into a second Slack workspace.
- Use custom exports for scoped moves: Export specific members or conversations when a team, business unit or legal matter needs its own archive.
- Confirm the Grid restriction early: If you run Enterprise Grid, verify that your intended path does not rely on importing into another Slack workspace.
- Coordinate with your Slack account team: Ask who can enable private channel and DM exports, how long approval takes and whether scheduled exports are available.
- Align with legal and compliance owners: Identify which conversations must be preserved before any deletion or retention change, and document the scope.
- Plan for a phased handover: Use scoped exports for teams that move first and keep the full archive for records.
Confirm the exact export options, approval steps and Grid limits in writing with your Slack account team before the project is scoped.
What to plan before the Slack contract renews or ends
A Slack export is only as complete as the plan behind it. The plan links the export timetable to the renewal date, the approval your workspace needs for private channels and DMs, the retention rules that apply to your records, and the destination you choose. Each card below is a decision to settle and confirm in writing before anyone starts the export.
Export timetable against renewal
Work back from the contract end date to a fixed export window, and allow time to test the output before the workspace is downgraded or closed. Slack's Free plan permanently deletes content older than one year, so a downgrade can remove history that you have not yet exported. Ask Slack in writing when your current plan's history limits take effect and when a downgrade would apply to your workspace.
Approval lead time for private data
Private channels and direct messages only leave Slack after an approved application on Business+ or Enterprise, and only workspace owners, admins or members with the Export admin role can run the export. Confirm with Slack how long approval takes for your workspace and who must sign it off internally. Without approval, the export covers public channels only, so plan the request as early as the renewal date allows.
Retention and legal hold needs
If legal, regulatory or litigation holds apply to Slack content, decide before export which records must be kept and who owns the hold. Exports contain messages and file links, so a hold on files needs a separate copy plan. Ask your legal team and Slack whether any hold must be preserved in Slack itself until the destination platform holds the data, and document the decision.
Destination platform choice
Choose the destination before the export, because the format you receive depends on the tool that will import it. Mattermost imports a Slack export through its migration tooling, and Rocket.Chat imports full Slack workspace exports through its built-in importer. Confirm which users, channels, threads and attachments each importer carries across, and what must be rebuilt, such as integrations and user groups.
File storage target
Slack exports contain file links, not the files, and Free workspaces only provide links from the last 90 days. Decide where the actual files will live, such as object storage or a network file share, and who copies them before links expire. Confirm the storage capacity, backup scope and access controls with your infrastructure team, because the destination platform will reference those files after cutover.
Verification sign-off
Name the people who approve the export as complete: a data owner, a security reviewer and a team lead who checks sample conversations, threads and attachments. Agree on acceptance checks before the first import, such as message counts for sampled channels and access tests for private content. Record the sign-off so auditors and records managers can see when and how the data was verified.
Questions buyers ask before exporting Slack data
How much effort does a full Slack export take?
The effort depends mostly on what is in scope, not on a fixed duration. Slack exports contain messages and file links rather than the files themselves, so the size of the message history and the number of conversations drive the work. Export scope also matters: public channels are available on every plan, while private channels and direct messages require an approved Business+ or Enterprise application. Ask Slack and your own team how long the approval and export steps take for your workspace before you plan a date, because those waits are often the longest part of the process.
Can a workspace admin export Slack data without outside help?
Yes, if the person is a workspace owner or admin, or a member with the Export admin role. The export itself is a self-service task in Slack's admin tools. What an admin cannot do alone is obtain private channel and direct message content on Business+ or Enterprise workspaces without an approved application, and on Enterprise Grid, exports cannot be imported into other Slack workspaces. Outside help is usually needed later, when the data has to be loaded into a new platform and mapped to its users, channels and permissions.
What does the export need from the workspace owner and IT?
Three things need to line up: an owner or admin who can run the export, a decision on which conversation types are in scope, and IT ownership of where the output is stored. For private channels and direct messages, the workspace must apply through Slack and wait for approval, so the owner should start that request early. IT should confirm storage location, access controls and retention for the export files, since they contain message history and links to files that may hold sensitive data. Agree these points in writing before the export is requested.
Can private channel and direct message export be refused?
Yes. Slack controls whether private channels and direct messages can be exported, and the application for Business+ or Enterprise workspaces can be declined or delayed. Custom exports by member or conversation are reserved for Enterprise. If your organization needs those conversations for legal, records or migration reasons, confirm with Slack what the approval process requires, what it covers, and what fallback exists before you commit to a migration timeline. Do not assume a full history is available until Slack has confirmed it.
What would a consultant add beyond the export file itself?
The export is only the raw input. A consultant can plan which conversations and users to keep, map Slack channels and roles to the target platform, run test imports, check that messages and threads arrived intact, and document what did not transfer, such as integrations, user groups or shared channels. DeployOpen plans, implements, integrates and documents self-hosted open-source platforms in your own infrastructure, and works from a written scope agreed before work starts. DeployOpen does not issue audit reports or certifications, so any compliance evidence still comes from independent auditors.
How far before renewal should we start a Slack export?
Start early enough to cover the approval wait, a test export, a test import and a review of what did not transfer. Slack's plan terms matter here: Free workspaces keep only 90 days of visible message and file history, and content older than one year is permanently deleted, so any Free workspace should not wait for a renewal to export. For paid plans, confirm your contract's notice period and data return terms with Slack. The exact lead time depends on your workspace and approval timing, so ask Slack and your implementation partner to estimate it from your own data.
How do we verify that an export is complete?
Verify completeness by comparing the export against a defined inventory rather than trusting the file size. Count public and approved private channels, check the date range against your retention needs, and sample threads, edits and reactions in the export. Confirm that file references resolve, understanding that the export contains links, and note that Free workspaces only provide file links from the last 90 days. Record each check and its result, then repeat the same checks after the import into the target platform so that gaps are documented, not discovered later.
How DeployOpen works on this
DeployOpen treats a Slack data exit as a fixed-scope engagement inside your own infrastructure. We agree in writing which plan tier, channel types and exports are in scope, then plan, build and document the export and import path for your chosen platform.
How we scope
- Confirm which Slack plan and export permissions your workspace has before any work starts
- Inventory public channels, private channels, DMs and Slack Connect channels so the written scope names each one
- Agree in writing which content types move, such as messages, threads and file links, and which stay behind
How we build
- Set up the target platform inside your cloud account, data center or air-gapped network, with the database and storage it needs
- Convert and test the Slack export in a staging environment before any production import
- Test imported users, channels, threads and file links against a sample checklist agreed in the scope
How we hand over
- Deliver runbooks covering the export steps, import commands, known gaps and manual rebuild tasks such as integrations
- Document the admin settings, access roles and retention configuration as they exist at handover
- Provide the migration evidence your compliance or records team asks for, without issuing any audit report or certification
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer after the fixed-scope engagement ends
- Plan patching and version upgrades for the platform so it stays on a supported release line
- Ask your team to confirm the retainer terms and response expectations in writing before work begins

