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
- Who. The workspace's Owners and Admins. A custom role with Manage integrations isn't enough: an import reshapes the whole workspace. You confirm with your password and second factor when you connect.
- Plans. Every plan, including Free, can read a server and (soon) bring over its structure.
- Your own bot. There is no shared Missived bot. If this workspace already has a Discord bridge, the move can use that bot. Otherwise you make one in the Discord Developer Portal and paste its token. A token for a person's Discord account is refused: self-bots are against Discord's terms.
- The bot must be in the server. Discord only lets a bot read servers whose admins added it. Adding it needs the Manage Server permission there.
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)
- Open discord.com/developers/applications → New Application, and name it.
- Open the Bot tab → Reset Token → Copy. Keep it secret: anyone with it controls the bot.
- Open OAuth2 → URL Generator, tick bot and the View Channels permission, open the link and add the bot to your server.
Connect and read
- Choose Start moving a server. Pick your bridge's bot, or paste the token. Confirm with your password and code.
- Missived checks the token with Discord, stores it encrypted for this move only, and never shows it again.
- Pick the server from the list of servers the bot is in, then Read this server.
Reading copies only the server's shape:
- categories and channels (text, announcement, voice, stage, forum and media), their order, topics, slow mode, age-restricted (NSFW) flags, forum tags and permission overrides;
- roles, their colours, order and permissions, and which ones Discord or a bot manages;
- upcoming scheduled events;
- the rules channel and the welcome screen;
- how many emojis, open threads and members it has.
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:
- Tokens and installs. A bot is an app installed in a workspace; its token belongs to that install (
msv_bot_…), not to a global bot user. - Where it can read. An app sees public channels and the channels it was added to — never DMs or group chats. Message text
arrives only when it's mentioned, its own, or it has the
message_contentscope. - Ids and shapes. Ids are opaque strings, not snowflakes; REST is
/v1with snake_case shapes (API reference). - No voice for bots, and a bot can't post in a channel shared with another workspace.
- Permissions are Missived's channel permissions, not Discord's bitfield.
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:
- 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.
- It waits — 24 hours unless an Owner chose less (1–72 hours). Admins can't shorten it.
- 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:
- Post an invite in Discord: the bot posts a "We're moving to …" card with a Join on Missived button in the Discord channels you tick. The link lets anyone who sees it join as a Member, for 7 or 30 days, as long as you have seats. If people can link their Discord account here, the card tells them to, so they get their roles back and can claim the messages copied over for them.
- Post "we've moved": one message in each Discord channel that came over, saying which channel it carries on in here, with a join link. People can still talk in Discord — it only points the way.
- Turn links off and take posts down: the links stop working at once and the bot deletes its posts. People who already joined stay. Undoing the import does this too.
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:
- YouTube and Kick notifiers, RSS bots: type the channel or feed address, pick where posts go (we suggest the channel the bot posted in, from its permissions), confirm. It's the same as adding it in YouTube Live and Kick or Feeds, and it's listed there afterwards.
- Twitch notifiers: whoever streams links Twitch as a broadcaster, then you pick them in the Twitch section (streaming).
- Ticket bots: opens the Create card in Chats, filled in as a forum called "tickets".
- Welcome bots, reaction-role bots, logging and event bots: shows what the import already set up (the pinned Welcome message, roles that follow Discord) or where it lives (the audit log, the Events page).
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.