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

  1. Open your bot dashboard and create an event handler.
  2. Select the event, then connect its trigger to nodes in the visual editor.
  3. Add conditions to restrict the channels or cases that should trigger the response.
  4. Use Send Message → Send to channel with an explicit channel or setting. Events have no private command response.
  5. 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

EventDescriptionPrivileged
guildMemberAddWhen a new member joins the serverYes
guildMemberRemoveWhen a member leaves or is removed from the serverYes
messageCreateWhen a message is sent in a channel (non-command messages)Yes
messageDeleteWhen a message is deletedNo
messageReactionAddWhen a reaction is added to a messageNo
messageReactionRemoveWhen a reaction is removed from a messageNo
guildCreateWhen the bot is added to a new serverNo
guildDeleteWhen the bot is removed from a serverNo
channelCreateWhen a channel is created in the serverNo
channelDeleteWhen a channel is deleted from the serverNo
roleCreateWhen a role is created in the serverNo
roleDeleteWhen a role is deleted from the serverNo
voiceStateUpdateWhen someone joins, leaves, or moves voice channelsNo
presenceUpdateWhen a user's online status or activity changesYes
guildBanAddWhen a member is banned from the serverNo
guildBanRemoveWhen a member is unbanned from the serverNo
threadCreateWhen a thread is created in the serverNo
threadDeleteWhen a thread is deleted from the serverNo
messageUpdateWhen a message is edited in a channelNo
guildMemberUpdateWhen a member's roles, nickname, or other attributes changeYes
channelUpdateWhen a channel's name, topic, permissions, or other settings changeNo
roleUpdateWhen a role's name, color, or permissions changeNo
emojiCreateWhen a custom emoji is added to the serverNo
emojiDeleteWhen a custom emoji is removed from the serverNo
stickerCreateWhen a custom sticker is added to the serverNo
stickerDeleteWhen a custom sticker is removed from the serverNo
inviteCreateWhen a server invite link is createdNo
inviteDeleteWhen a server invite link is deleted or expiresNo
guildScheduledEventCreateWhen a scheduled event is created in the serverNo
guildScheduledEventDeleteWhen a scheduled event is cancelled or deletedNo
guildScheduledEventUserAddWhen a user marks interest in a scheduled eventNo
guildScheduledEventUserRemoveWhen a user removes their interest from a scheduled eventNo
typingStartWhen a user starts typing in a channelNo
webhooksUpdateWhen a channel's webhooks are created, updated, or deletedNo
autoModerationActionExecutionWhen an AutoMod rule is triggered and an action is executedNo

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
  1. Open your bot's application in the Discord Developer Portal.
  2. Select Bot and find Privileged Gateway Intents.
  3. 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.