Placeholders
On this page
A placeholder is a word in curly braces, like {Users}, that Birthday Bot replaces when it posts your message. Write "Happy birthday {Users}!" once, and each day it names the right people.
How to use one
On the website, the message editor shows the placeholders that fit the message you are writing. Click one to insert it, and the preview shows what it turns into.
If you type one yourself, capital letters do not matter: {users} and {Users} do the same thing.

That example was written as "Happy birthday {Users}! Welcome to the big {Age}."
Do mentions notify the members?
It depends on the server's In messages name format on General. With Mention, {Users} becomes a mention of each member, and a mention in a posted message notifies the person it names. With Username, Display name, or Global display name, it writes the name as text and notifies nobody. See Server settings.
The celebration's Ping setting also accepts {Users}, and there it always mentions the members: the In messages name format does not apply to the ping, so it needs no change for the ping to notify. When the message text already mentions them, a ping that only lists who to notify leaves {Users} out so nobody is listed twice; a ping with any other text keeps it.
How do I write an age or anniversary with a suffix?
Choose the ordinal age placeholder for birthdays or the ordinal year placeholder for member or server anniversaries from the lists below. Each inserts the whole number with its English suffix, such as 21st or 3rd, so you do not need to add the number or suffix yourself. The regular age and year placeholders still insert plain numbers.
Ordinal ages follow the same privacy rules as plain ages: the member must share a birth year and allow their age to be shown.
Can I include when members joined?
The join date placeholder in member anniversary messages inserts the member's full server join date. It uses the server timezone and the Date format selected in General settings. A valid server timezone is required to fill in the join date. Members celebrated together joined on the same day, so that date appears once however many members the message names. A member who joined on February 29 is celebrated with the day before in other years, and their date is listed too.
Birthday messages
{Users}- The members celebrating a birthday.
{Count}- The number of members included in this message.
{Server}- The server's name.
{Year}- Their birth year, when they have set one.
{Age}- The age they're turning, when they have set a birth year.
{Ordinal Age}- The age they're turning with an English suffix, such as 21st, when they have set a birth year.
{Birthday Role}- The server's birthday role, when one is set.
{Zodiac Sign}- Their zodiac sign. Needs Premium.
{Zodiac Emoji}- The emoji for their zodiac sign. Needs Premium.
{Zodiac Role}- The role for their zodiac sign, when one is set. Needs Premium.
Member anniversary messages
{Users}- The members celebrating a member anniversary.
{Count}- The number of members included in this message.
{Join Date}- Their server join date, using the server timezone and date format.
{Server}- The server's name.
{Year}- How many years they have been in the server.
{Ordinal Year}- Their membership anniversary with an English suffix, such as 3rd.
{Member Anniversary Role}- The milestone role they earn this anniversary. A message using it is only sent in milestone years. Needs Premium.
Server anniversary messages
{Server}- The server's name.
{Year}- How many years the server has existed.
{Ordinal Year}- The server anniversary with an English suffix, such as 3rd.
Custom event messages
{Server}- The server's name.
{Year}- The year the event is celebrated.
Thread names
When a celebration's Post mode is Threads (Premium), Birthday Bot opens a thread under each announcement, and its Thread name can use a few placeholders of its own. Each kind of celebration has its own default name, described on its setup page.
A thread title is plain text: Discord shows no formatting or mentions there. So {Users} writes the members' names in the server's In messages name format, and with Mention it writes their display names instead. Nobody is notified by a thread name. Standard emoji work in a thread title, but a server's own emoji do not (Discord would show their code as text), so typing a colon in the Thread name field offers standard emoji only.
{Users} names up to 3 members and counts the rest, as in "Ann, Bo, Cy, and 2 more". If the filled-in name would be longer than 100 characters, it names fewer members, and a name still too long is cut at the limit. When a big celebration is split across several messages, each message gets its own thread, named after the members in that message.
The date placeholder writes the day being celebrated as a month and day, in the order the Date format in General settings sets, such as "October 26" or "26 October". The year placeholder is the members' years in the server for member anniversaries, the server's age for server anniversaries, and the year the event is celebrated for custom events.
Birthday Bot refuses to save a thread name with a placeholder that kind of celebration never fills in, such as the year placeholder in a birthday thread name. Other words in curly braces are saved and posted as typed.
Birthday thread names
{Users}- Everyone celebrating, written as names, never mentions. Long lists end in “and N more”.
{Date}- Today's date, e.g. October 26.
{Zodiac Sign}- The zodiac sign, e.g. Scorpio.
{Zodiac Emoji}- The zodiac sign's emoji, e.g. ♏.
Member anniversary thread names
{Users}- Everyone celebrating, written as names, never mentions. Long lists end in “and N more”.
{Year}- How many years they've been a member, e.g. 3.
{Date}- Today's date, e.g. October 26.
Server anniversary thread names
{Year}- How many years old the server is, e.g. 5.
{Date}- The anniversary date, e.g. March 3.
{Server}- The server's name.
Custom event thread names
{Year}- The year the event is celebrated.
{Date}- The event's date, e.g. June 14.
When a placeholder cannot be filled in
If Birthday Bot cannot fill in a supported placeholder for someone, for example {Age} for a member who has not shared a birth year, it skips that custom message for them. For birthdays and anniversaries, it uses a suitable custom message or falls back to its built-in announcement, which posts as plain text when the server-wide messages the bot can use for that type are all plain text, and as an embed otherwise. Keep a message with only {Users} if you want your own wording to work for members who do not share their age. See Customize your messages.
Common problems
- The editor says a placeholder is unrecognized. Check its spelling. This warning does not prevent saving, so you can keep curly braces that you intended as ordinary text.
- The placeholder showed up as plain text. It was used in a kind of message that does not support it.
{Age}, for example, only works in birthday messages. Check the lists above. - A thread name shows curly braces. Only the thread name placeholders for that kind of celebration are filled in; any other word in curly braces is posted as typed.
{Users}shows names, but nobody is notified. The server's In messages name format is not Mention. See Do mentions notify the members?- A message with
{Age}is never used for some members. It is only used for members who shared a birth year and allow their age to be shown. Your privacy explains the age setting. - A message with a Premium placeholder stopped being used. Placeholders marked Premium can only be filled in while the server has Premium, so those messages are skipped without it. If you have already paid, see I bought Premium but it is not active.
{Zodiac Sign}