Events
Discord events your bot can listen to, privileged intents, and visual event handlers.
Events let your bot react to things happening in Discord — member joins, messages, reactions, and more.
Create an event flow
- Open your bot dashboard and create an event handler.
- Select the event, then connect its trigger to nodes in the visual editor.
- Add conditions to restrict the channels or cases that should trigger the response.
- Use Send Message → Send to channel with an explicit channel or setting. Events have no private command response.
- Save, deploy, and trigger the event in your test server.
For a welcome flow, choose Member Joined, add Send Message to your welcome channel, and enter Welcome {member} to {guild.name}!. For a saved image design, use Image Cards with Welcome Messages.
Supported events
| Event | Description | Privileged |
|---|---|---|
guildMemberAdd | When a new member joins the server | Yes |
guildMemberRemove | When a member leaves or is removed from the server | Yes |
messageCreate | When a message is sent in a channel (non-command messages) | Yes |
messageDelete | When a message is deleted | No |
messageReactionAdd | When a reaction is added to a message | No |
messageReactionRemove | When a reaction is removed from a message | No |
guildCreate | When the bot is added to a new server | No |
guildDelete | When the bot is removed from a server | No |
channelCreate | When a channel is created in the server | No |
channelDelete | When a channel is deleted from the server | No |
roleCreate | When a role is created in the server | No |
roleDelete | When a role is deleted from the server | No |
voiceStateUpdate | When someone joins, leaves, or moves voice channels | No |
presenceUpdate | When a user's online status or activity changes | Yes |
guildBanAdd | When a member is banned from the server | No |
guildBanRemove | When a member is unbanned from the server | No |
threadCreate | When a thread is created in the server | No |
threadDelete | When a thread is deleted from the server | No |
messageUpdate | When a message is edited in a channel | No |
guildMemberUpdate | When a member's roles, nickname, or other attributes change | Yes |
channelUpdate | When a channel's name, topic, permissions, or other settings change | No |
roleUpdate | When a role's name, color, or permissions change | No |
emojiCreate | When a custom emoji is added to the server | No |
emojiDelete | When a custom emoji is removed from the server | No |
stickerCreate | When a custom sticker is added to the server | No |
stickerDelete | When a custom sticker is removed from the server | No |
inviteCreate | When a server invite link is created | No |
inviteDelete | When a server invite link is deleted or expires | No |
guildScheduledEventCreate | When a scheduled event is created in the server | No |
guildScheduledEventDelete | When a scheduled event is cancelled or deleted | No |
guildScheduledEventUserAdd | When a user marks interest in a scheduled event | No |
guildScheduledEventUserRemove | When a user removes their interest from a scheduled event | No |
typingStart | When a user starts typing in a channel | No |
webhooksUpdate | When a channel's webhooks are created, updated, or deleted | No |
autoModerationActionExecution | When an AutoMod rule is triggered and an action is executed | No |
Privileged intents
BotDen selects the intents its configured features need, but you must enable any required privileged intents in the Discord Developer Portal. These are separate from the bot permissions BotDen includes in its generated invite.
- Server Members Intent — for member joins, departures, and updates
- Message Content Intent — for reading message text in
messageCreate - Presence Intent — for
presenceUpdate
- Open your bot's application in the Discord Developer Portal.
- Select Bot and find Privileged Gateway Intents.
- Enable the intents required by your features, save, and redeploy the bot in BotDen.
You do not need to enable every privileged intent. If the bot cannot start or events are missing, see intent troubleshooting.
Visual events
Events use the same visual action system as commands — reply, send to channel, add role, conditions, etc. Build welcome messages, logging, auto-moderation, and more without writing code.
Variables and troubleshooting
Use the variable picker for the selected event; not every event exposes the same fields. For example, a joining member uses {member.id}, while a new message exposes {message.author.id}. Deleted messages may have no cached content. See template variables.
If a handler does not run, check that the bot is deployed, the event is selected correctly, required intents are enabled, and the bot can access the source and destination channels. A Discord webhook-change event reports changes to channel webhooks; incoming external JSON notifications belong in Webhook Relay.