Trigger reference

Every event that can start a flow, what it fires on, and the extra variables it puts into the run. Entries written as {var:name} are read with that exact syntax in step fields; the rest are bare variables like {user}.

Commands and input

The ways a member deliberately runs a flow.

TriggerFires whenExtra variables
Command
command
A slash command plus prefix alias - the flow name becomes the command. Supports parent + group for subcommands.{args}, {arg:N}, {option:name}, {optionId:name}
User context menu
userContext
Right-click a member, then Apps. The flow name is the menu label.{targetUser}, {targetUserId}, {targetUsername}
Message context menu
messageContext
Right-click a message, then Apps.{targetUser} / {targetUserId} / {targetUsername} = the author, {var:targetMessageId}, {var:targetContent}
Button click
button
A button with the matching custom ID (created by a Buttons node) is clicked.{selected} = the button custom ID
Select menu
selectMenu
A dropdown with the matching custom ID (created by a Select Menu node) is used.{selected}, {var:selectedIds}, {var:selectedData} (resolved JSON)

Messages

React to chat traffic. A keyword flow with a blank keyword fires on every message in its channel.

TriggerFires whenExtra variables
Keyword
keyword
A message contains the phrase. Blank keyword = every message, but a channel scope is required.{content}, {messageId}, {args}
Bot mentioned
mentionBot
Someone @mentions the bot.{content}
Message reply
messageReply
Someone replies to one of the bot's messages.{content}, {var:replyToId}, {var:replyToContent}
Message deleted
messageDelete
A message is deleted. {content} may be empty for old uncached messages.{content}, {messageId}
Message edited
messageUpdate
A message is edited.{oldContent}, {content}, {messageId}
Attachment posted
attachmentPost
A message with attachments lands. Optional file-type filter.{var:attachmentCount}, {var:attachmentNames}, {var:attachmentUrl}
Link posted
linkPost
A message containing a URL lands. Optional domain filter (wildcards allowed).{var:linkUrl}, {var:linkDomain}
First message
firstMessage
A member's first-ever message in the server - survives restarts. Premium.{user}, {content}
Poll ended
pollEnd
A native Discord poll closes. Premium.{var:pollQuestion}, {var:pollResults}, {var:pollMessageId}

Members

Joins, leaves, and member lifecycle events.

TriggerFires whenExtra variables
Member joined
memberJoin
A new member joins. Invite attribution is included when the bot has Manage Server.{user}, {var:inviteCode}, {var:inviteUses}, {var:inviterId}, {var:inviter}, {var:inviterUsername}
Member left
memberLeave
A member leaves or is kicked.{user}, {username}
Member boosted
memberBoost
A member starts boosting the server.{user}
Boost ended
boostEnd
A member's boost ends.{user}
Member updated
memberUpdate
Nickname or timeout status changes.{user}, {var:changedFields}, {var:oldNickname}, {var:newNickname}, {var:timeoutUntil}
Role added
memberRoleAdd
A role is granted to someone - optional role filter, blank = any role.{user}, {var:roleId}, {var:roleName}
Role removed
memberRoleRemove
A role is removed from someone.{user}, {var:roleId}, {var:roleName}
Member timed out
memberTimeout
A member receives a timeout.{user}, {var:timeoutUntil}
Presence changed
presenceUpdate
A member's status changes (online/idle/dnd/offline). Optional user + status filters. Premium.{user}, {var:status}, {var:oldStatus}, {var:customStatus}

Server changes

Admin and audit events. "Server changed" is one trigger with a watch-for dropdown; channel and role deletion also have dedicated triggers that identify who did it.

TriggerFires whenExtra variables
Server changed
serverChange
Watch for: name, icon, banner, channelCreated, channelDeleted, channelUpdated, roleCreated, roleDeleted, roleUpdated, emoji, inviteCreated, webhookUpdate.{var:changeType}, {var:changeTargetId}, {var:changeTargetName}, {var:oldValue}, {var:newValue}; inviteCreated also sets {var:inviterId}, {var:inviterUsername}
Channel deleted
channelDelete
A channel is deleted. Best-effort audit-log lookup names who did it.{channel}, {var:deletedName}, {var:deletedId}, {var:deleterId}, {var:deleterTag}
Role deleted
roleDelete
A role is deleted, same audit lookup.{var:deletedName}, {var:deletedId}, {var:deleterId}, {var:deleterTag}
Member banned
guildBanAdd
A member is banned.{user}
Member unbanned
guildBanRemove
A ban is lifted.{user}
Thread created
threadCreate
A thread is created - optional parent-channel filter.{channel}, {var:threadId}, {var:threadName}, {var:parentChannelId}
Event created
eventCreate
A scheduled event is created. Optional event filter.{var:eventId}, {var:eventName}, {var:eventUrl}
Event started
eventStart
A scheduled event goes live.{var:eventId}, {var:eventName}, {var:eventUrl}
Event joined
eventJoin
A member RSVPs to a scheduled event.{user}, {var:eventId}, {var:eventName}
Bot added to server
guildJoin
Your bot is invited to a new guild.{server}, {var:guildId}, {var:guildName}, {var:memberCount}, {var:ownerId}
Bot removed
guildLeave
Your bot is removed from a guild. No channel context - only data and cross-guild steps work.{server}, {var:guildId}, {var:guildName}, {var:memberCount}
Emoji created / deleted
emojiCreate / emojiDelete
The server emoji set changes.{var:emojiName}, {var:emojiId}
Sticker created / deleted
stickerCreate / stickerDelete
The server sticker set changes.{var:stickerName}, {var:stickerId}
Stage started / ended
stageStart / stageEnd
A Stage channel event opens or closes.{var:stageTopic}, {var:stageChannelId}
Invite used
inviteUsed
A member joins through an identified invite - optional invite-code filter.{user}, {var:inviteCode}, {var:inviteUses}, {var:inviterId}, {var:inviter}, {var:inviterUsername}

Voice

Voice channel traffic. Moving between channels fires both leave and join.

TriggerFires whenExtra variables
Voice joined
voiceJoin
A member joins or moves into a voice channel. Optional channel filter.{user}, {voiceChannel}
Voice left
voiceLeave
A member leaves or moves out of a voice channel.{user}, {voiceChannel}

Time and external

Flows that run on a schedule or in response to systems outside Discord.

TriggerFires whenExtra variables
Scheduled
scheduled
Runs every N minutes (1-1440), or once at a specific date/time.{channel}
Cron schedule
cronSchedule
A standard 5-field cron expression in UTC. Premium.{channel}
Stream alert
streamAlert
Polls Twitch via a saved connection - fires once on the go-live transition. Premium.{var:streamer}, {var:streamTitle}, {var:streamGame}, {var:streamViewers}, {var:streamUrl}, {var:streamThumbnail}
Webhook event
webhookEvent
Any service POSTs JSON to the flow's secret endpoint URL - optional event-name filter and HMAC signature check. Premium.{var:wh_<field>} per JSON field, {var:whBody} = raw body
HTTP watch
httpWatch
Polls a URL every 5-1440 min: feed mode fires on new RSS/Atom items (works for YouTube uploads), value mode on a JSON field changing, status mode on up/down flips. Premium.{var:watchUrl}, {var:watchMode}, {var:watchValue}, {var:watchPrevious}
Minecraft event
minecraftEvent
Events pushed by the StyzBridge plugin on your Minecraft server - optional event-type and player filters. Premium.{var:mcEvent}, {var:mcPlayer}, {var:mcMessage}, {var:mcWorld}, {var:mcCoords} and more

Things every trigger shares

  • The base variables are always there: {user}, {userId}, {username}, {server}, {memberCount}, {channel} are filled on every run, so a member-join flow can greet the member without extra steps. On triggers with no human actor (schedules, guild events) the author fields resolve to the bot itself.
  • Output channel: event triggers take a channel ID in their config - that is where message steps post. Blank falls back to the channel the event happened in, then the system channel.
  • Gates still apply: allowed roles, allowed channels, cooldown, and daily limit work on event triggers too - a keyword flow can still be staff-only.
  • Premium triggers: minecraftEvent, webhookEvent, httpWatch, streamAlert, cronSchedule, firstMessage, presenceUpdate, and pollEnd require a paid plan - enforced when the flow is saved.
  • Intents: the bot requests Discord privileged intents on demand - presenceUpdate flows request Guild Presences, pollEnd flows request Polls - so adding one of these triggers may take a restart to activate.