Move from Discord

Move from Discord copies a Discord server's shape into a Missived workspace, with your own Discord bot: its categories, channels, roles and their permissions, upcoming events and its rules. You see everything first, and nothing is made in your workspace until you start the import.

Being built in steps. Everything on this page is available now. Setting up the Missived equivalent of each bot for you follows in the next update; this page grows with it.

Before you start

Everything below is in Org Settings → Integrations → Move from Discord, on a computer. A phone shows how far a move has got.

Make the bot (if you don't have a bridge)

  1. Open discord.com/developers/applications → New Application, and name it.
  2. Open the Bot tab → Reset Token → Copy. Keep it secret: anyone with it controls the bot.
  3. Open OAuth2 → URL Generator, tick bot and the View Channels permission, open the link and add the bot to your server.

Connect and read

  1. Choose Start moving a server. Pick your bridge's bot, or paste the token. Confirm with your password and code.
  2. Missived checks the token with Discord, stores it encrypted for this move only, and never shows it again.
  3. Pick the server from the list of servers the bot is in, then Read this server.

Reading copies only the server's shape:

No message is read, and no direct message ever is. What was read is stored encrypted, and only Owners and Admins of this workspace can see it. Read again refreshes it if you change the server.

Forget deletes the move: the token you pasted and everything read from the server. Nothing in your workspace changes.

Choose what comes over

Below the server's summary, What comes over lists every category, channel, role and upcoming event with what it becomes here:

Discord Missived
Category Category (or one you already have)
Text channel Chat channel; topic, slow mode, and NSFW → 18+
Announcement channel Chat channel members can read but not post in
Voice channel Voice channel
Stage channel Voice channel with Stage (ordinary voice if your plan has no Stages)
Forum or media channel Forum with its tags (chat if your plan has no forums, or its forum limit is reached)
Role Custom role, same order and colour
Scheduled event A draft on the Events page

For each item you can skip it (untick), Rename it, or send a channel or category into one you already have instead of making a new one. Skipping a category skips its channels too, unless you tick them back. Roles that Discord or a bot manages (Server Booster, MEE6…) are skipped unless you tick them. A name that's already taken here gets the next free one (general-2, Moderator (Discord)), and names this workspace's word filter refuses are marked so you can rename or skip them (a channel topic it refuses is left off).

Permissions under each channel and role say how Discord's permissions translate: who can't see a channel, who can post, what a role may do everywhere. Under each role, Doesn't come over as it is (collapsed) lists the rest in three groups, each right with a one-line reason: what Owners and Admins do here (Manage Server and Roles, Kick, Ban, Timeout, the audit log, invites, Manage Webhooks — integrations), what works differently (Manage Threads and Mute / Deafen / Move Members: the nearest permissions here, Manage messages and Manage channel, reach further than Discord's, so the import doesn't give them — you can; Create Private Threads; Manage Nicknames) and what has no equivalent (Priority Speaker, text-to-speech, Discord's expressions, insights). Create Events isn't copied: the Events page stays with Owners, Admins and roles you give Manage events. Overrides for single people and channels where two roles disagree are flagged too (in Discord an allow beats a deny; here the higher role decides). The full rules are in the project's docs/DISCORD_MIGRATION.md.

Full control. A role with Administrator shows one line: Full control in Discord → Missived Admin for people with this role, after they link their Discord account and an Owner approves. The import never makes anyone an Admin; see Admins from Discord.

Tick Use the server's icon if you want it as the workspace icon; the rules and welcome screen become a pinned Welcome message unless you untick it. Save choices keeps them; nothing is made in the workspace until you start the import.

Your bots

Bots can't move over: they run on their makers' servers and only speak Discord's API. Your bots names each one (with its picture, shown through Missived's image proxy) and says what does its job here — for example MEE6, Dyno and Carl-bot → AutoMod, the word filter, linked roles and the audit log; ticket bots → a forum or members-only channels; Twitch, YouTube and Kick notifiers → those connectors; StreamElements, Patreon and Ko-fi → Supporters; welcome bots → the Welcome message; logging bots → the audit log; music bots → there are none here, Office jukeboxes play your uploaded audio; levelling, stats and chat-game bots have no direct equivalent. Anything else is pointed at Apps & bots.

Discord lists every bot only to a bot with Manage Server. Without it, the list shows just the bots that have their own role, and says so: give the import's bot Manage Server and read the server again.

While people move over, a Discord bridge keeps your Discord bots' posts visible in the bridged channels.

Your own bot?

If you wrote the bot, it can be ported: Missived's bot gateway and Bot SDK are shaped like Discord's. What's the same: a socket with hello / identify / resume / heartbeats and event frames, slash commands, buttons, selects, forms (modals) and private replies, embeds in Discord's format, and incoming webhooks that accept Discord's payload. What's different:

Start the import

Start the import (save your choices first) makes it all: roles, categories, channels with their topics, slow mode and 18+, permissions, forum tags, event drafts, the pinned Welcome message and, if ticked, the icon. It runs on the server; the page shows how far it's got, and you can leave it. Something that can't be made — a name the word filter refuses, a name someone took meanwhile, a forum past your plan's limit (it comes over as chat) — is listed afterwards with the reason, and the rest carries on. No messages are copied in this step, and nothing is read from anyone's DMs.

When it's done: invite your people, check the roles in Org Settings → Roles, and publish the event drafts on the Events page. Roles made by the import are linked to the Discord roles, so when someone links their Discord account they get the roles they had there.

Copy recent history (optional)

On paid plans, after the import, Recent history under the done screen copies chosen chat channels' pinned messages and their last days of messages (up to a year on Ministry, Creator and Business; Free is structure only). Copied files count toward your workspace's storage, and the screen shows an estimate before you start. Tick the channels, choose the days and how long to wait, and confirm with your password and code. Then:

  1. The bot posts in each Discord channel: "This channel's recent history is being copied to <workspace> on Missived", when it starts, and "React with 🚫 on this message … and they'll be left out." Nothing is read yet.
  2. It waits — 24 hours unless an Owner chose less (1–72 hours). Admins can't shorten it.
  3. It copies: pins first (whatever their age), then the messages since, oldest first, then replies in threads started from a copied message. Each message shows the person's Discord name with "(Discord)", their avatar and its original time; files come through the usual upload checks and your storage limit; reactions become a count line; a reply quotes what it answered. Bots, webhooks and join / boost notices are left out, and so are messages your word filter refuses and everyone who reacted 🚫 (a reply to them keeps none of their words, and if you ask again for that channel they stay out). Nobody is notified and nothing is sent to your integrations. It paces itself to Discord's rate limits and picks up after a restart.

It needs the bot's Message Content Intent (Developer Portal → Bot → Privileged Gateway Intents) and only works in chat and announcement channels the import made (not ones you merged into, and not forums). Each channel copies up to 25,000 messages. Stop ends a channel's copy and keeps what's already over. If someone deletes the announcement during the wait, that channel isn't copied. When people link their Discord account they're recorded as the author of their copied messages. Direct messages are never read.

Undo

For 7 days an Owner (not an Admin) can Undo the import: it deletes the channels, categories, roles and event drafts the import made (and puts the old icon back). The confirm says how many messages people posted since in those channels — they go too. Channels and roles that were already here, and anything you merged into, stay. The workspace's Owners and Admins are told.

Bring people over

Nobody is added to your workspace for them: people join with a link. Once the import is done, Bring people over (below it, Owners and Admins, with your password) can:

Want both running for a while? A Discord bridge keeps chosen channels in step both ways.

Set up what your bots did

Below that, each bot we recognise gets a card saying what does its job here, and sets it up when you say so:

We can't see a bot's settings, so you type what it followed. Nothing is set up until you confirm, and undoing the import doesn't remove these: change or remove them in their own sections.

Admins from Discord

People who had Full control (Administrator, Manage Server or Manage Roles) in the Discord server aren't made Admins by the import. Once one of them joins and links their Discord account (so their Discord roles come back through linked roles), the workspace's Owners are asked Make <name> an Admin? — in Activity and at the top of Org Settings → Members. One click makes them an Admin; No, keep as Member isn't asked again. Admins can see the questions; only Owners answer.

The Discord server's owner, once they link their account, is offered Admin or Owner. Making them an Owner asks the approving Owner to confirm with their password and code, and makes them an Owner beside you (it doesn't hand ownership over).

Audit log

Each step is in the Audit log: discord_import.connected (which bot), discord_import.read (the server's id and counts: how many channels, roles, events), discord_import.choices_saved (how many items skipped, renamed or merged), discord_import.started / discord_import.finished (counts), discord_import.undo_started / discord_import.undone (counts), and for history discord_import.history_requested (channels, days, wait) / history_announced / history_started (how many people said no) / history_finished (counts) / history_stopped / history_failed (a reason code) — never a message per copy, discord_import.invite_posted / pointers_posted (how many channels, the link's days) / posts_taken_down (counts), discord_import.admin_approved (why they were asked, and Admin or Owner) / admin_declined beside the usual member.role_changed, and discord_import.forgotten; the roles and channels it makes carry their usual entries. Names, topics and the token are never written there.