Migration field guide · 14 October 2026

Slack to Discord migration: archive, access and rollback

Keep the history accessible, rebuild permissions deliberately and budget for the period when both systems may remain in use.

Edited by Clinton Feyisitan. Review scope: official documentation read on 14 October 2026 and local worksheet checks with synthetic examples. No native account migration, paid execution or timed completion test was performed.

Can Discord import your Slack history?

This guide starts new conversations in Discord and keeps a separate Slack archive. It does not document a native history importer. Before moving, check your export eligibility, attachment access and the permissions you need to recreate.

Define what moves

This workflow starts new conversations in Discord and retains a separate Slack archive. It does not promise to import old messages with their original authors, timestamps, threads or permissions. Before proceeding, name an archive owner and decide how long the old workspace must remain available. A community chat and a business record have different access requirements.

Make a list of channels, external guests, integrations, files and private discussions. Flag anything whose retention or access rules you cannot reproduce. Keep that part in the original system until its owner approves an alternative. Cost the period when both subscriptions may overlap in the stack calculator.

Export before inviting anyone

Slack’s export scope depends on plan and permission. Public-channel messages and file links are exportable across plans; private conversations need additional eligibility and approval. Free-plan exports have a 90-day file-link limit. On desktop, an authorised owner/admin opens Admin → Workspace settings → Security → Import & export data → Export, selects the date range and starts the export. Download the completed ZIP when notified. Check the official export requirements against your workspace first.

The JSON archive contains links to attachments, not the attachment files themselves. Deleting a file, its channel or its workspace can break those links. Preserve permitted essential files separately and verify that an authorised archive reader can open them. See Slack’s archive format.

Map channels and access

Slack itemDestination / retained recordCheck
Public project channelDiscord text channel, with its purpose copiedCan the intended member read and post?
Private channel or guest accessExplicit Discord role and channel permissionsCan an unrelated test member see it?
Thread history and attachmentsAccess-controlled archiveCan the archive owner retrieve a known message and file?
Bot or integrationReconfigure separately after reviewDoes it expose data to the wrong channel?

Discord combines server roles with channel permissions. Create a small set of named roles and inspect channel overrides; check the @everyone role as well as explicit member access. Use the permissions guide while configuring. Do not assume a channel name makes it private.

Run a small pilot

  1. Create one ordinary channel and one restricted channel using synthetic messages.
  2. Check access as an ordinary member, a restricted member and someone who should have no access. Record expected and actual results in the worksheet.
  3. Test a mention, a reply, a file and an integration with non-sensitive content. Verify notification settings with the pilot users.
  4. Compare the archive date range and channel inventory with the agreed export scope. List missing material explicitly instead of treating an export download as complete.

Cut over with a route back

Choose a cutover date and announce which system is authoritative after it. Keep the old workspace and archive available for the agreed retention period; do not delete them as part of launch. If permissions, notifications or a required integration fail, pause new Discord activity and return the affected team to Slack. Keep a dated list of messages or decisions made during the pilot so they can be reconciled manually. Only retire access after owners sign off on the checks.

Keep a migration record

Download the CSV planning worksheet

Synthetic examples are marked and all execution statuses start as “not run”. Replace them with your own inventory. This worksheet is for planning and verification, not an import file for either provider. Keep customer data in your own approved storage.

Sources checked

Need help scoping the work? Ask about a separate migration proposal. The £149 newsletter decision memo does not include this migration.