How to move team chat history to a new workspace without losing context

A step-by-step playbook for moving your conversations from Slack, Microsoft Teams, WhatsApp and other tools: what to bring, how to export it, and how to switch over without losing anything.

Migration6 min read

To move team chat history without losing context, decide what is worth bringing, export it from each tool, match people to their new accounts, choose a switch-over day, then verify the result before you retire the old tool. Treat it as a small project with one owner, a fixed date and a way to undo it.

Done well, the move is almost invisible: on switch-over day the team opens the new workspace and their channels, threads and files are already there. This playbook covers the decisions in order, with export notes for each common tool.

Decide what is worth moving

Not everything needs to move. Start with a list of rooms and sort them:

  • Bring: active channels, project and client conversations, and anywhere decisions were made that people still refer to.
  • Probably bring: quieter channels with useful history, such as policies, onboarding and finished projects.
  • Leave behind: abandoned test channels, bot notifications, and join and leave notices.

Decide early about direct messages. They are often where real work happened, but they are also private. Whatever you choose, tell people before the move, not after.

Export team chat history from each tool

Every tool hands over its history differently. Some give you a file; others need an admin to connect an account. Here is what to expect from each.

Slack

To migrate Slack to a new workspace, start with the export. Workspace owners and admins create it from Admin › Workspace settings › Security › Import & export data › Export (Slack's guide). Public channels come in every export; private channels and DMs only when your Slack plan allows exporting them. The export lists files rather than containing them, so bringing the files themselves needs a Slack user token. See moving from Slack.

Microsoft Teams

Teams has no export file. Instead, an admin signs in with a Microsoft 365 account that can see the teams and chats (a Teams or global admin is simplest) and the history is read directly. Group and one-to-one chats only come across if that account is in them, so choose the account with care. See moving from Microsoft Teams.

WhatsApp

Export each group separately from a phone that is in it, with or without media. An export holds at most the newest 10,000 messages with media, or 40,000 without, and disappearing and view-once messages never come out. Our WhatsApp export guide has the steps for iPhone and Android, and moving from WhatsApp covers the import.

Google Chat

Use Google Takeout: at takeout.google.com choose Deselect all, tick Google Chat and export as a .zip. Takeout covers only the spaces, group chats and DMs of the person who runs it, so collect Takeouts from several people to cover more spaces. A Workspace admin may need to allow Takeout first. See moving from Google Chat.

Telegram

Only Telegram Desktop can export; the phone apps and Telegram Web can't. Open the group, choose ⋮ › Export chat history, pick the media to include and set the format to Machine-readable JSON (Telegram's announcement). See moving from Telegram.

Discord

Discord has no export file either. Create a bot in the Discord Developer Portal with the Server Members and Message Content intents, give it View Channels and Read Message History, add it to your server and use its token to read the history. See moving from Discord.

Mattermost

A system admin creates a bulk export with mmctl: mmctl export create --include-archived-channels, then mmctl export download (Mattermost's bulk export docs). See moving from Mattermost.

Match people to their new accounts

History only keeps its meaning if every message is still attributed to the right person. Before importing, invite everyone who belongs in the new workspace, so their old messages can attach to their new accounts.

How matching works depends on what the source records. Slack, Microsoft Teams, Google Chat and Mattermost identify people by email, which makes matching reliable. WhatsApp, Telegram and Discord don't, so people are matched by phone number or name instead, and name matches deserve a human glance because two colleagues can easily share a name.

Decide, too, how former colleagues should appear. Their messages are part of the record, so keep them attributed rather than dropping them.

Merge into existing rooms or start fresh

If your team has already started using the new workspace, some topics will exist in both places. You have two choices for each room:

  • Bring it in fresh as a new room. Imported history stays separate and is easy to review.
  • Merge it into the room you already have, so there is one place per topic. This is usually better for active channels, as long as the importer skips messages that exist in both.

Pick a cut-off date and a switch-over day

The cut-off date is the day you switched. History before it comes from the old tool; everything after it already lives in the new one. Setting it stops the same week of conversation appearing twice. A simple timeline that works for most teams:

  1. Two weeks before: name an owner, list the rooms to bring and announce the date.
  2. One week before: run a trial with a few channels and check how they look.
  3. Switch-over day: post a final message in the old tool pointing to the new workspace, take the final export, and import with the switch-over day as the cut-off.
  4. The week after: answer questions, fix any rooms people can't find, and keep the old tool readable.
  5. Once verified: archive the original export files and retire the old tool.

Tell the team what is changing

A short message beats a long policy. Cover what moves and what stays behind, the date, what happens to direct messages, where old conversations will be, and who to ask. Send it in the old tool and repeat it on switch-over day.

Verify before you retire the old tool

An import that finished is not the same as an import that is right. Before you switch the old tool off, work through this short chat migration checklist:

  1. Open the five busiest rooms and compare their first and last messages with the old tool.
  2. Check that threads read in order and replies sit under the right message.
  3. Open a sample of files, especially older ones.
  4. Search for a decision you know was made and confirm it turns up.
  5. Confirm private rooms are visible only to the people who should see them.
  6. Ask two or three people to check their own conversations.

Keep an undo path

Keep the original export files somewhere safe, and keep the old tool readable until the checks are done. Use an importer that can reverse an import cleanly without touching anything your team has posted since. If something looks wrong, you want to undo and run it again, not repair rooms by hand.

How SphereOne handles the move

SphereOne imports from Slack, Microsoft Teams, WhatsApp, Google Chat, Telegram, Discord and Mattermost, and it follows the playbook above. Nothing is written until an admin confirms the preview. Each room can come in fresh or merge into one you already have, and when merging, duplicates (same author, same text, within minutes of each other) are skipped. You set the cut-off date, people are matched by email or by phone number or name, and the import runs in the background and can be paused.

Any import can be undone, and undo removes only what the import created; anything your team posted since stays. Imports are available to workspace admins on Starter, Business and Enterprise, and during a free trial you can upload an export and see the full preview. Start at the migration hub, check pricing, or book a demo to walk through it with us.

All articles

Try SphereOne with your team

Start free, or book a half-hour walkthrough with our team.