Variables are words between braces, like {user} or {server.members}, that the bot replaces with a value when sending: the member, the server, a level, the message that started an automation… They are the same in the automations and in the creation studio.
Where to use them
The same variables work wherever the bot writes a text:
| Where | Texts |
|---|---|
| Automations | Every text field of the blocks (messages, replies, nicknames, reasons, conditions…) |
| Creation › Embeds | Message text, title, author, description, names and values of the fields, footer, button texts |
| Creation › Containers | Texts, sections and button texts |
| Creation › Banners | Texts of the layers, and title / text when sending a banner |
Write a variable between braces: Welcome {user} to {server}!. An unknown (or misspelled) variable stays as written.
Insert a variable
- The Insert a variable button (or the { } icon next to a one line field) opens the full list, grouped by theme, with a search and the description of each variable.
- Or type { in a field: a list shows under the line and narrows down as you type (
{mem→{member.level},{member.xp}…). ↑ ↓ to choose, Enter or Tab to insert, Esc to close.
In the studio, the groups marked · automation (Message, Channel, Ticket…) are only filled when an automation sends the message. The Command options group lists the options of all your custom commands ({option.name}): they are filled when the command's automation sends the message (for example Reply with this embed).
The preview
The editor's preview shows the message (or the banner) with the variables filled: your details and the server's, and an example for the event ones.
- Messages: the Fill the variables switch above the preview shows the
{variables}as written. - Banners: the Variables preview button of the top bar does the same.
When they are filled
| Sent | Member | Event variables (message, channel, ticket…) |
|---|---|---|
| By an automation (Send a studio message, Reply, Send a banner…) | The one who started the automation | Filled with the event |
| By hand from the studio (Send button) | You, who send it | Empty: the send window warns you and lists them |
| Scheduled from the studio | You, when scheduling | Empty |
{user} is a real mention in a message (it notifies the member only if the mention is allowed; automations never mention @everyone or @here).
On a banner
A picture can't hold a clickable mention: on a banner, the bot simply writes the name.
| Variable | On the banner |
|---|---|
{user}, {invite.inviter} | Noa (name shown on the server, no @) |
{role} | Moderators |
{channel}, {voice.channel} | #general |
{date}, {member.joined}… | October 23, 2026 (language and time zone of the server) |
Avatar layers and the Server icon / Server banner pictures take the member's and the server's picture when it is sent.
Old names of the studio
The studio used to have 5 variables of its own. They still work, but {user} changed meaning:
| Old | Now |
|---|---|
{user} (name shown) | {user} is the mention; for the name, write {user.display_name} |
{username} | {user.name} (the old name is still understood) |
{members} | {server.members} (the old name is still understood) |
{server}, {date} | Unchanged |
Always available
Filled everywhere, even for a message sent by hand.
Server & date
| Variable | Value | Example |
|---|---|---|
{server} | Server name | Café des Devs |
{server.id} | Server id | 1000000000000000001 |
{server.members} | Member count | 1284 |
{server.boosts} | Boost count | 7 |
{server.icon} | Server icon link | https://cdn.discordapp.com/icons/… |
{date} | Today's date (shown in each member's language) | October 23, 2026 |
{time} | Current time | 9:00 PM |
{datetime} | Date and time | October 23, 2026 9:00 PM |
{timestamp} | Unix timestamp (seconds) | 1792782000 |
{automation.name} | Automation name | Bienvenue |
Member
| Variable | Value | Example |
|---|---|---|
{user} | Member mention (@name) | @Noa |
{user.name} | Discord username | noa.demo |
{user.display_name} | Name shown on the server | Noa |
{user.id} | Member id | 1000000000000001004 |
{user.avatar} | Avatar link | https://cdn.discordapp.com/avatars/… |
{user.created} | Account creation date | May 2, 2020 |
{member.joined} | Server join date | March 12, 2024 |
{member.nickname} | Nickname on the server | Noa ☕ |
{member.top_role} | Highest role | Modérateurs |
{member.role_count} | Number of roles | 3 |
{member.level} | Member level | 24 |
{member.xp} | Member total XP | 18 420 |
{member.streak} | Member current streak | 17 |
Your variables and random
| Variable | Value |
|---|---|
{var.key} | A server variable of the Automation › Variables page |
{member_var.key} | A per member variable: the member's value (the one who started it, or you when sending by hand) |
{random:1-100} | A random number between the two bounds ({random:1-6} for a dice) |
{option.name} | An option of a custom command (automations only) |
Event variables
Filled only when an automation sends the text, depending on its trigger (see Triggers). {level}, {xp} and {streak} give the member's current values outside their trigger.
Channel
| Variable | Value | Example |
|---|---|---|
{channel} | Channel mention | #général |
{channel.name} | Channel name | général |
{channel.id} | Channel id | 1300000000000000002 |
Message
| Variable | Value | Example |
|---|---|---|
{message.content} | Message text | Hi everyone! |
{message.id} | Message id | 1300000000000000003 |
{message.link} | Link to the message | https://discord.com/channels/… |
{message.attachments} | Number of attachments | 1 |
Role
| Variable | Value | Example |
|---|---|---|
{role} | Role mention | @Modérateurs |
{role.name} | Role name | Modérateurs |
{role.id} | Role id | 1300000000000000004 |
Voice
| Variable | Value | Example |
|---|---|---|
{voice.channel} | Voice channel mention | 🔊 Voix du café |
{voice.name} | Voice channel name | Voix du café |
{voice.id} | Voice channel id | 1300000000000000005 |
{voice.previous} | Previous voice channel (move) | 🔊 Salon de jeux |
{voice.members} | Members in the voice channel | 4 |
Before / after
| Variable | Value | Example |
|---|---|---|
{before} | Value before (old nickname, old text) | Noa |
{after} | Value after (new nickname, new text) | Noa ☕ |
Invite
| Variable | Value | Example |
|---|---|---|
{invite.code} | Code of the invite used | cafe42 |
{invite.inviter} | Mention of who invited | @Sam |
{invite.uses} | Invite uses | 12 |
Levels
| Variable | Value | Example |
|---|---|---|
{level} | Level reached | 24 |
{xp} | Total XP | 18 420 |
Streaks
| Variable | Value | Example |
|---|---|---|
{streak} | Streak days | 17 |
Achievement
| Variable | Value | Example |
|---|---|---|
{achievement.name} | Achievement name | Chatterbox |
{achievement.id} | Achievement id | messages_100 |
Ticket
| Variable | Value | Example |
|---|---|---|
{ticket.id} | Ticket id | 42 |
{ticket.channel} | Ticket channel | #ticket-noa |
{ticket.reason} | Ticket reason | Question about the roles |
Giveaway
| Variable | Value | Example |
|---|---|---|
{giveaway.prize} | Giveaway prize | Nitro |
{giveaway.winners} | Winners' mentions | @Noa |
{giveaway.winner_count} | Number of winners | 1 |
Reaction
| Variable | Value | Example |
|---|---|---|
{reaction.emoji} | Reaction emoji | 👍 |
{reaction.count} | Reactions with this emoji | 3 |
Command options
| Variable | Value | Example |
|---|---|---|
{command.name} | Command name (/name) | /points |