Create a Discord Bot
Create and connect a Discord bot, let ForwardMsg configure it, and choose where it will send or read messages.
To copy messages from Discord, you can use your own account. You do not need to invite a bot to the original server. You do not need to own that server. You do not need to be an administrator. Your account only needs access to the channels you want to copy. Start with Connect a Discord Account if that is what you need.
A Discord bot can deliver copied text and supported mediaβsuch as images, videos, and filesβto your Discord server. Discord embeds can also be forwarded from Discord sources. Choose the message types in Forward Options; the destination server's upload limit still applies. A bot can also read original messages if you choose to use it instead of your account.
- Using your account to read and a bot to deliver? Invite the bot only to the server receiving the copies.
- Using the bot to read too? Invite it to the original server as well, and give it access to the channels you want to copy.
You do not need to write code. You do not need to host the bot. ForwardMsg runs it for you.
Create the bot in Discord
- Open the Discord Developer Portal.
- Select New Application.
- Enter a name you will recognize, such as
Community Forwarder. - Select Create.
- Open Bot in the application's left-hand menu.
Discord calls the bot's settings an application. The Bot page is where you manage its name, picture, and login token.
Copy the bot token
A bot token is a password for the bot. It is different from your personal Discord account token.
- On the Bot page, find Token.
- Select Reset Token to generate a token you can copy.
- Complete Discord's confirmation.
- Copy the token and keep it private.
Shortcut: let ForwardMsg configure the bot
You can skip the manual settings below: paste the token into Add Discord Bot, select Add, then finish the Continue β invitation β Done steps. ForwardMsg automatically configures the bot's supported intents and default server-install settings. You can invite it straight from that dialog. Follow Connect it for sending messages, or Connect it for reading messages if you want the bot to read too. Refresh the Developer Portal afterward to see the settings. The bot still needs access to the receiving channels.
Resetting or revoking the token disconnects the old connection
If you reset a token already saved in ForwardMsg, the old connection can no longer log in. Use Add Discord Bot again with the new token. Select the new connection under Source if it reads messages, and replace the old bot in every affected Routing destination if it sends copies. Save your changes and restart the affected automations. Editing the old connection's name does not update its token.
The next two sections show where to review or change the settings yourself, before inviting the bot.
Allow it to read message text
Discord calls these switches intents. For ForwardMsg, turn on both intents below. This is the recommended setup whether your bot only sends copies, reads messages, or does both. Intents are separate from the permissions that let it see or post in a channel.
- Open Bot in the Developer Portal.
- Find Privileged Gateway Intents.
- Turn on Server Members Intent and Message Content Intent.
- Save the changes if Discord shows a save button.
| Intent | What it does | What to choose |
|---|---|---|
| Message Content Intent | Lets the bot receive message text and content. | Turn it on for the ForwardMsg setup, whether the bot reads messages, sends copies, or does both. |
| Server Members Intent | Lets the bot receive information about server members. | Turn it on for the ForwardMsg setup, whether the bot reads messages, sends copies, or does both. |
Choose the permissions it needs
These are the default permissions requested when you invite the bot. Configure or review them before using its invitation link:
- Open Installation in the Developer Portal.
- Under Installation Contexts, enable Guild Install. Guild is Discord's word for a server.
- Under Default Install Settings, find the Guild Install settings.
- Include the bot scope, which lets you add the bot to a server. ForwardMsg forwarding does not use slash commands; you do not need to set up commands.
- Review the permissions below. ForwardMsg's standard invitation requests this full set.
- Save if the portal asks you to do so.
Permissions included in the standard invite
Keep the default permissions selected so the bot is ready for the forwarding features you choose. Some permissions below are only needed for optional features; you can leave them selected without turning those features on.
| Permission | What it lets the bot do |
|---|---|
| View Channels / View Channel | See the channels it will read or post in. |
| Send Messages | Post copied text in the receiving channel. |
| Read Message History | Retrieve earlier messages, including messages used as reply context. |
| Attach Files | Upload images, videos, and other files. |
| Embed Links | Send embed cards and link previews. |
| Manage Messages | Delete other users' messages; included in the standard message-management permissions. |
| Pin Messages | Pin and unpin messages when those mirror actions are enabled. |
Optional behavior permissions
These permissions are also included in the standard invitation. They are only needed if you use the related feature:
| Permission | What it lets the bot do |
|---|---|
| Manage Webhooks | Create and manage channel webhooks when Enable webhooks uses original author names and avatars. |
| Send Messages in Threads | Deliver copies inside a thread it can access. |
| Add Reactions | Add reactions when reaction mirroring is enabled. |
| Mention Everyone | Send mentions such as @everyone and @here when your message format uses them. |
| Use External Emojis | Use custom emojis from other servers. |
| Use External Stickers | Use stickers from other servers. |
| Send Voice Messages | Send Discord voice messages. |
| Bypass Slowmode | Post without the channel's slowmode wait. |
You do not need to grant Administrator to the bot. After installation, review its actual server and channel permissions. Discord's permission reference explains these controls.
If the bot is already in the server, changing defaults in the portal does not update its existing server access. In Discord, open Server Settings β Roles, select the bot's role, and review Permissions. For one channel, open Edit Channel β Permissions and check the bot's role or its individual entry. Category and channel rules can deny access even when its server role allows it.
Install the bot in a server
For delivery, add the bot to the server where you want the copies to arrive. If your account reads the original messages, the bot does not need to join the original server. Add it there only if you want the bot itself to read those channels.
During Add Discord Bot in ForwardMsg, use Add to Destination Server to open the invitation. Choose the receiving serverβor the original server if you are setting up the bot to read. Authorize it in Discord, return to ForwardMsg, and select Done. If it is already in the correct server, you can select Done without inviting it again.
You can also invite it from the Developer Portal:
- Open Installation in the Developer Portal.
- Under Install Link, choose Discord Provided Link.
- Copy the link and open it in your browser while signed in to Discord.
- Choose Add to server and select the intended server.
- Select Authorize and complete Discord's confirmation.
- Confirm the bot appears in that server's member list.
You can invite it if you own the server, are an administrator, or have Manage Server permission. Otherwise, ask a server administrator to invite it for you. You do not need this permission in the original server when your own account copies messages.
Discord's installation guide shows the portal controls if their layout changes.
Connect it for reading messages
- Open an automation that uses Discord Bot to read messages, then select Add Discord Bot in Source.
- Paste the bot token and select Add.
- Keep or change its name in ForwardMsg, then select Continue.
- Use Add to Destination Server to invite it to the server whose messages it will read, if it has not joined yet. Authorize it in Discord.
- Return to ForwardMsg and select Done.
- Confirm the bot is selected under Source.
- Select Update Settings.
- Select Start and wait for Running.
- Add the servers and channels it should read.
Source is where original messages come from. Choose only the channels you want to monitor.
Connect it for sending messages
If the bot is already saved, select it without pasting its token again and continue to choosing the receiving channel.
- Click the source chat/channel in the editor's left-hand list to open its settings.
- Open Routing.
- Select Add Destination.
- Choose Add Discord Bot if it has not been saved yet.
- Paste its token and select Add.
- Keep or change its name in ForwardMsg, then select Continue.
- Use Add to Destination Server to invite it to the receiving server if needed. Authorize it in Discord.
- Return to ForwardMsg and select Done.
- Choose that bot and the channel receiving copies.
- Complete the destination dialog.
- Select Save Changes.
Destination is where copies arrive. One bot can deliver to several channels if it has access to each.
Reuse the same bot across your forwarding routes. Select the saved bot in other Routing destinations or automations; you do not need to create a new bot for every chat or route. Invite it to each receiving server and give it access to the relevant channels.
Send a new text message through your automation to check the result. If one channel fails, check that bot's permissions in that exact channel.
Check ForwardMsg's automatic configuration
After you save the token through Add Discord Bot, ForwardMsg configures the bot's supported intents, Guild Install, and default install settings so it can be used to read and deliver messages.
- Return to the Developer Portal and reload the page.
- Open Bot β Privileged Gateway Intents to review Message Content and Server Members.
- Open Installation to review Guild Install and its default permissions.
- Invite the bot if you have not done so yet, then select the receiving channel in ForwardMsg.
You can use this shortcut without changing each portal field manually. If a setting has not updated, use the manual steps above.
Portal defaults and server access are separate
Automatic configuration prepares the bot's application settings. It does not invite the bot to a server, assign a verification role, or override a channel's restrictions. The bot still needs access in the actual server where it will read or send messages.
The bot connects but cannot send messages
Being connected means ForwardMsg can log in as the bot. It does not mean every receiving channel has allowed the bot to post.
- Check the server and channel. The bot must be in the receiving server and have View Channel and Send Messages in that exact channel. Threads also need Send Messages in Threads.
- Check verification or gatekeeper bots. Some servers hide channels until a member has a role such as
VerifiedorMember. A newly invited bot may not receive that role automatically. Ask the administrator to assign the appropriate role to your bot or explicitly allow it in the receiving channel. For example, if onlyVerifiedmembers can post in#news, your bot needs that access too. - Check the content type. Allow Attach Files for uploads and Embed Links for embeds. With Enable webhooks, also allow Manage Webhooks.
- Check the token. If you reset or revoked it, add the bot again with the new token and replace the old saved connection wherever it is used.
After fixing access, select Save Changes in Routing, restart the automation if needed, and send a new message from a source chat to confirm it reaches the destination. You can use private test chats.
See Delivery and Permissions for more checks.
Author names, replies, and pins
A normal bot message uses the bot's own name and profile picture. For example, a copied message from Maya appears as a post by Community Forwarder, your bot. Message Format can still include Maya's name in the message text.
If you want the Discord post itself to display Maya's name and avatar, use webhook delivery. Each copied message can use its original author's identity, instead of the same bot profile for every post.
You can let your connected bot handle this automatically:
- Give it Manage Webhooks permission in the receiving channel.
- In ForwardMsg, click the source chat in the left-hand list to open its settings, or click Global Settings to apply the option wherever it is inherited.
- Open Advanced β Send using Author name and avatar photo.
- Turn on Enable webhooks.
- Select Save Changes, then send a new message through your automation to see its name and picture in Discord.
The bot now creates/manages webhooks for delivery. You do not need to create one manually for each receiving channel when using this option.
| Delivery choice | Name and picture on the Discord post | Native replies and pin/unpin mirroring |
|---|---|---|
| Discord bot, Enable webhooks off | The bot's own profile | Available with the relevant permissions and mirror settings. |
| Webhook, Enable webhooks on | The original author's name and avatar | Not available: Discord webhooks cannot create native replies or pin/unpin messages. |
Keep Enable webhooks off when you need those reply or pin actions. See Mirror Actions and Advanced Settings.
Keep the token private
Treat the bot token like a password
Never send it in chat, email, a ticket, screenshots, or shared code. If exposed, reset it in Discord and add the bot again with the new token in ForwardMsg. Replace the old connection wherever it is used, save, and restart the affected automations.
Get Your Discord Account Token
Try QR login first, or get your account token with the browser extension, Network panel, or an optional Console script.
Create a Discord Webhook
Deliver copies with the original author's name and avatar, create a webhook, or try webhook delivery with your existing Discord bot.