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

  1. Choose your server and open Messages.
  2. Press + New message and choose the Type.
  3. 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.
  4. 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.
  5. 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:

# birthdays
Birthday BotAPPToday at 9:00 AM
Happy birthday, @Scott! 🎉

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 typeFreePremium
Birthday1500
Member anniversary1500
Server anniversary1500

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.

# birthdays
Birthday BotAPPToday at 9:00 AM
🎉 Happy Birthday!
Happy birthday @Scott! 🎂
It's a birthday! @Birthday Squad

Can I change the color?

With Premium, use Embed color to choose a swatch or a custom color. Free embeds use the default color.

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.

    See Who gets notified?

  • 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 Server
Add, remove and edit custom messages.
/message edit embed
3 options
Edit whether a custom message should be embedded.
message
required · text
The alias of the message you would like to use.
embed
required · yes or no
If this custom message should be embedded.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message edit colorPremium
3 options
Edit the color of a message. Only works for custom messages that are embedded.
message
required · text
The alias of the message you would like to use.
color
required · text
What color this custom message should be. Color only shows if the message is embedded.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message edit descriptionNeeds a vote
3 options
Edit the description of a custom message.
message
required · text
The alias of the message you would like to use.
description
required · text
The text of the message. Placeholders: {Users} or @User, {Server}, {Year}, {Zodiac Sign}, and more.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message edit imagePremium
3 options
Edit the image of a message. Only works for custom messages that are embedded.
message
required · text
The alias of the message you would like to use.
image
optional · file
Image for this custom message, leave blank to reset. Only works if the message is embedded.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message edit titlePremium
3 options
Edit the title of a message. Only works for custom messages that are embedded.
message
required · text
The alias of the message you would like to use.
title
optional · text
Title for this custom message, leave blank to reset. Only works if the message is embedded.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message edit footerPremium
3 options
Edit the footer of a message. Only works for custom messages that are embedded.
message
required · text
The alias of the message you would like to use.
footer
optional · text
Footer for this custom message, leave blank to reset. Only works if the message is embedded.
edit_all
optional · yes or no
Whether to update all messages of the given type with this value.
/message clear
1 option
Clear all custom messages of a given type.
type
required · text
What type of message to clear. Clears all messages of this type.
  • Birthday
  • Member Anniversary
  • Server Anniversary
/message remove
1 option
Remove a custom message.
message
required · text
The alias of the message you would like to use.
/message test
5 options
Test a custom message.
message
required · text
The alias of the message you would like to use.
user_count
optional · whole number · 1 to 5
The number of users to put in this message to imitate multiple birthdays/anniversaries.
no_ping
optional · yes or no
Whether to test without the ping setting, also silencing any mentions in the message.
birth_year
optional · 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_year
optional · whole number · 1 to 100
How many years since the member joined or since the server was created.
/message addNeeds a vote
3 options
Add a custom message.
type
required · text
What type of message to add.
  • Birthday
  • Member Anniversary
  • Server Anniversary
message
required · text
The text of the message. Placeholders: {Users} or @User, {Server}, {Year}, {Zodiac Sign}, and more.
image
optional · 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.
type
required · text
What type of list you would like, defaults to birthday.
  • Birthday
  • Member Anniversary
  • Server Anniversary
page
optional · 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.