Customize your messages
On this page
Write your celebration messages on the website's Messages page. When several messages fit a celebration, Birthday Bot picks one at random, preferring messages that mention an age or a milestone role when it can fill those in.
On the website
- Choose your server and open Messages.
- Press + New message and choose the Type.
- Choose Plain text or Embed. Write in Message text or Description. Birthday and member anniversary messages must include
{Users}, and server anniversary messages must include{Server}; the editor's placeholder chips insert them, and the message cannot be saved without one. - Check the preview beside the editor. Press − or + above it to see the message when several members celebrate on the same day, and Full screen to see it at full size on a desktop and a phone side by side. On a phone, switch to the Preview tab to see it, then back to Edit.
- Press Create message. When editing an existing message, press Save changes. The ← Messages link (and Cancel on a new message) asks before throwing away unsaved changes.
What success looks like
Your message appears on Messages. For example, Happy birthday, {Users}! 🎉 can look like this when sent:

The illustration above uses example names. On Messages and in the message editor, the preview uses your name (with example names for any other members you add) and the server's In messages name format from General. A message for one member (Applies to) previews with that member's name instead, and the editor hides − and + because the message only ever names that member. If that member has left the server, the preview shows Unknown member: the message only posts while they are a member, and applies again if they rejoin.
Which celebration is this message for?
Choose Birthday, Member anniversary, or Server anniversary. Each type has its own messages. Custom events have their messages in the event editor instead.
Birthday and member-anniversary messages can also be written for a particular member with Premium, using Applies to. A server-anniversary message is for the server as a whole.
How do I add variety?
Create more messages of the same type. Each time, the bot picks at random from the messages it can fill in for that celebration. When a birthday message could mention an age (one of your messages uses {Age}, {Year}, or {Ordinal Age}, or you have no custom messages and the built-in announcement is used), the members celebrating that day are split into two groups: those whose age can be shown get a message that mentions it when you have one, and the others get a message without an age. Each group gets its own announcement, so nobody's hidden age costs another member theirs. Member anniversaries are always grouped by the number of years, one announcement per count, and a count that earns a milestone role draws from your messages that use the milestone role placeholder, when you have any. Adding several messages does not guarantee a different one each time. See When a placeholder cannot be filled in for how the bot chooses a suitable message or falls back to its default.
| Message type | Free | Premium |
|---|---|---|
| Birthday | 1 | 500 |
| Member anniversary | 1 | 500 |
| Server anniversary | 1 | 500 |
Message text can contain up to 1,000 characters. Placeholder shorthand such as @mar is expanded to its full name ({Member Anniversary Role}) before the length is counted.
Should I use plain text or an embed?
Plain text posts your message text on its own, like a message a person would type, so a link to an image or GIF shows the picture below the text. Embed puts it in a card with a colored bar down the side, where you can add a title, footer, image, and color. Choosing an embed does not itself need Premium.
Either way, the celebration's Ping setting is posted in the same message: at the bottom of the card for an embed, below the text and image and above the footer, or above the text for plain text. When one announcement holds several cards, such as groups that got differently styled messages, each card has its own ping line naming only the members in that card. Choose who gets celebrated explains when trusted roles leave that line out.

Can I change the color?
With Premium, use Embed color to choose a swatch or a custom color. Free embeds use the default color.
Can I add a title or footer?
With Premium and Embed selected, fill in Title and Footer. The title is shown as a heading at the top of the card and the footer as small text at the bottom. Mentions, placeholders, and markdown work in both, the same as in the description. To make the title a link, write it as a markdown link, such as [Happy Birthday!](https://example.com). Keep emoji outside the link text, such as 🎉 [Happy Birthday!](https://example.com): when the link text contains an emoji, Discord shows the brackets and address as plain text instead of a link. That includes an emoji a placeholder fills in from a name, such as {Users} when the In messages name format writes names as text. These extra fields are not included in plain-text messages.
The title can contain up to 256 characters and the footer up to 256.
Can I add an image?
Yes. Paste a link to an image or GIF into a Plain text message and Discord shows the picture below the text, as it does for a link a person posts. That works on every server.
With Premium, an Embed can carry an image of its own: add an Image in the embed editor, then choose how it is displayed by opening General, setting Image format to Full image or Thumbnail, and pressing Save changes. Full image shows the picture large, below the text. Thumbnail shows it small, beside the title. That format is shared across the server's custom message embeds.
How do I include names and celebration details?
Use the chips under the message field to insert details the bot fills in when it posts. The placeholder reference shows the available details for each celebration and marks those that need Premium.
For wording such as "Happy 21st birthday" or "Happy 3rd anniversary", choose the ordinal placeholder in the editor. It inserts the number and its English suffix together. See ordinal ages and anniversaries for details.
When many members share a day, the message names as many of them as fit and ends with how many more there are.
Who gets notified?
Every mention in a posted message notifies who it names: a member, a role, or everyone. That includes {Users} when the server's In messages name format is Mention, so the members being celebrated are notified by the message itself. The other name formats write the name as text and notify nobody. The NOTIFIES row under the editor's preview lists who the message will notify. A mention written inside code formatting, or after a backslash, shows as plain text and notifies nobody, so the row leaves it out. A dashed name in the row (and the same mention dashed in the preview) is one the bot cannot deliver in the posting channel: it still posts, but nobody is notified. A message for one member who has left the server shows Unknown member dashed too, because that message doesn't post until they rejoin. Hover over the name, or tap it on a phone, to see why.
Roles and everyone still need the bot to have permission to mention them in the channel. See Missing permissions.
When your message already mentions the celebrated members, a Ping that is only a list of who to notify leaves {Users} out so nobody is listed twice; any role or everyone in the ping is still posted. A ping with any other text or punctuation, such as Wish {Users} a happy birthday!, keeps the names so it still reads. With several cards this is decided card by card: a card whose text mentions its members leaves them out of its ping, while a card whose text does not keeps them.
A big celebration can take more than one message. Each one shows the Ping line, but a role or everyone in it is notified once, by the first message. Members mentioned in each message are notified by that message.
Common problems
-
The bot posted a default message instead of mine. A required detail may be unavailable for that celebration. Check placeholder availability.
-
My birthday message never appeared. Ask the member to confirm they have set their birthday, then check the channel and celebration settings in A birthday was not announced.
-
The members were not notified. A name written as text does not notify anyone. Either of these fixes works on its own:
- Add
{Users}to the celebration's Ping setting. In the ping it always mentions the members, whatever the name format. - Or, on General, set In messages to Mention, so the message text itself mentions them.
- Add
-
The editor asks for Premium. Member-specific messages and extra embed styling need it. Check Premium activation if you already bought it for this server.
Using Discord instead
Use the message commands to create, edit, remove, or test messages, and the viewing command to see what is saved:
/message
Manage ServerAdd, remove and edit custom messages.
/message
Manage Server/message edit embed3 optionsEdit whether a custom message should be embedded.
/message edit embedmessagerequired · text- The alias of the message you would like to use.
embedrequired · yes or no- If this custom message should be embedded.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message edit colorPremium3 optionsEdit the color of a message. Only works for custom messages that are embedded.
/message edit colorPremiummessagerequired · text- The alias of the message you would like to use.
colorrequired · text- What color this custom message should be. Color only shows if the message is embedded.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message edit descriptionNeeds a vote3 optionsEdit the description of a custom message.
/message edit descriptionNeeds a votemessagerequired · text- The alias of the message you would like to use.
descriptionrequired · text- The text of the message. Placeholders: {Users} or @User, {Server}, {Year}, {Zodiac Sign}, and more.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message edit imagePremium3 optionsEdit the image of a message. Only works for custom messages that are embedded.
/message edit imagePremiummessagerequired · text- The alias of the message you would like to use.
imageoptional · file- Image for this custom message, leave blank to reset. Only works if the message is embedded.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message edit titlePremium3 optionsEdit the title of a message. Only works for custom messages that are embedded.
/message edit titlePremiummessagerequired · text- The alias of the message you would like to use.
titleoptional · text- Title for this custom message, leave blank to reset. Only works if the message is embedded.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message edit footerPremium3 optionsEdit the footer of a message. Only works for custom messages that are embedded.
/message edit footerPremiummessagerequired · text- The alias of the message you would like to use.
footeroptional · text- Footer for this custom message, leave blank to reset. Only works if the message is embedded.
edit_alloptional · yes or no- Whether to update all messages of the given type with this value.
/message clear1 optionClear all custom messages of a given type.
/message cleartyperequired · text- What type of message to clear. Clears all messages of this type.
- Birthday
- Member Anniversary
- Server Anniversary
/message remove1 optionRemove a custom message.
/message removemessagerequired · text- The alias of the message you would like to use.
/message test5 optionsTest a custom message.
/message testmessagerequired · text- The alias of the message you would like to use.
user_countoptional · whole number · 1 to 5- The number of users to put in this message to imitate multiple birthdays/anniversaries.
no_pingoptional · yes or no- Whether to test without the ping setting, also silencing any mentions in the message.
birth_yearoptional · whole number · 1900 to 2500- The birth year of the user to be used in the test. Used with the age and year placeholder.
anniversary_yearoptional · whole number · 1 to 100- How many years since the member joined or since the server was created.
/message addNeeds a vote3 optionsAdd a custom message.
/message addNeeds a votetyperequired · text- What type of message to add.
- Birthday
- Member Anniversary
- Server Anniversary
messagerequired · text- The text of the message. Placeholders: {Users} or @User, {Server}, {Year}, {Zodiac Sign}, and more.
imageoptional · file- Image for this custom message, leave blank to reset. Only works if the message is embedded.
/view_messages
View your server's custom messages.
/view_messages
typerequired · text- What type of list you would like, defaults to birthday.
- Birthday
- Member Anniversary
- Server Anniversary
pageoptional · whole number · 1 or more- Optional page to jump to. Defaults to 1.
The editor warns about unrecognized placeholders without blocking saving. Check typos before saving, or keep the text if the braces are intentional. For member counts and server join dates, see Placeholders.
Premium