How to set up Discord goodbye messages
Welcome & Goodbye can post an embed when a human member leaves your Discord server. Enable goodbye messages, choose a channel, write your template and test it before relying on leave notifications. The module is available on Free. It handles member-leave events as they arrive; it does not build a history of departures missed while the bot was offline.
Start freeStart free. Pro is $9.99/month.
Before you start
- Enable Welcome & Goodbye on an online bot in a test server. Use an account with Manage Server for the welcome configuration and testgoodbye commands.
- Choose a text channel such as #goodbye. Let the bot view it, send messages and embed links. Manage Channels is needed if the bot is to create a channel, rather than use an existing one.
- Confirm Server Members Intent for the Welcome module in the bot’s Developer Portal setup. Its declarations also include Message Content Intent for prefix features. Replace ! in the examples if your bot uses another command prefix.
Choose a separate or shared channel
Open Welcome & Goodbye Settings for the intended server. In Channels, leave Use one channel for join + leave off and select Goodbye Channel ID for a separate destination. For a shared destination, turn that switch on and set Welcome/Goodbye Channel ID. The shared route uses the welcome channel, even if a separate goodbye ID was previously saved. Save your settings.
For a separate channel, you can also run !welcome goodbye-channel #goodbye as a manager, selecting the actual channel mention. This sets the goodbye channel ID; it does not turn off the shared-channel switch. Check that switch in Settings if your message still goes to the welcome channel.
Choose the destination explicitly. Selecting None for the separate goodbye channel stores an empty ID, which means no goodbye channel and skips sending. Older configurations with an unset ID can auto-detect a text channel named goodbye, farewell or welcome-goodbye. If no usable channel is found, optional auto-creation needs Manage Channels; an explicitly empty separate-channel ID skips even auto-creation.
Enable goodbye messages and write the template
In Messages, turn on Enable goodbye messages and edit Goodbye Message, then save. This switch is separate from welcome messages. In Discord, !welcome shows the current settings; !welcome goodbye toggles goodbye messages, so check the displayed state before using it. It is a toggle, not an unconditional enable command.
To set the text from Discord, run !welcome goodbye-message Goodbye, {username}. Thanks for being part of {server}! The module sends that text as an embed description, with a goodbye title, the departing member’s avatar, a remaining-member-count field and a timestamp. It posts in the selected server channel; this is not a goodbye DM.
Use the six supported placeholders
The supported placeholders are {user} for a member mention, {username} for the username, {tag} for the Discord user tag, {server} for the server name, {membercount} for the server’s current member count and {id} for the member ID. Replacement applies to every occurrence of each of these tokens. Unrecognized placeholders are left as written.
A simple template is: Goodbye, {username}. {server} now has {membercount} members. The count is the current server count supplied when the message is built, not a counter maintained by the template. Use {username} if you want a name rather than the mention syntax produced by {user}.
Optional goodbye message rotation chooses randomly from the main message and saved nonempty variations; it does not cycle in a fixed order. The module trims and deduplicates variations and keeps up to eight. That is a message setting, not a Free versus Pro quota. Leave rotation off while checking your first template.
Send a sample, then test a real leave
Run !testgoodbye with a manager account. It builds a sample using the caller’s member details and sends it through the configured goodbye route. It does not make anyone leave. Check the destination channel and the actual embed, not just the command’s success reply: the sample handler attempts to send even when the goodbye switch is off, and the reply does not prove delivery.
Next, with goodbye enabled and the bot online, have a consenting test member leave the test server. The leave handler skips bot accounts and sends for a human leave only when goodbye messages are enabled. If nothing appears, check the saved route, the switch, channel permissions and intent setup. The related Permission Check guide shows how to run /diagnose in the destination channel.
Understand offline departures and plan access
The module has no catch-up scan or stored departure queue. It sends when its member-leave listener receives an event. A departure missed while the bot is offline is not replayed by this module on startup; do not expect a delayed goodbye history. Failed sends are logged, with no retry scheduled by the goodbye sender.
Free includes Welcome’s text and embed messages. Pro adds image welcome cards; the goodbye sender described here still sends an embed. Compare plans on Pricing below. A goodbye notification is a channel message about a received event, not a complete membership audit.
Frequently asked questions
Can welcome and goodbye messages share a channel?
Yes. Enable Use one channel for join + leave and set the shared welcome channel. That route takes priority over a separate goodbye ID.
Does !testgoodbye remove a member?
No. It sends a sample using the caller’s member details. Check the channel for delivery and test a real leave separately.
Will it post goodbyes for departures missed while offline?
No. The module has no departure history or startup catch-up. It sends when it receives a member-leave event.
Do goodbye embeds require Pro?
No. Welcome text and embed messages are available on Free. Pro’s image welcome cards are a separate feature.
Related service
For the wider welcome and goodbye workflow, see the Discord welcome bot overview.
