Birthdays
Birthdays are the one automation that costs nothing and gets remembered. A member tells FlaviBot their date once, chooses which of their servers may celebrate it, and every year on the day your server gets a message.
Two halves make it work, and both are required: you turn the feature on for the server, and each member opts in for themselves.
The server side
Go to Engagement > Birthday in the dashboard and switch the feature on.
| Setting | What it does |
|---|---|
| Announcement channel | Where birthday messages are posted. Required |
| Message | Leave it as the default text, or pick an embed you built on the Embed Messages page |
| Birthday role | Optional. Given on the day and taken back afterwards |
| Role duration (hours) | How long that role stays. Default 24, anywhere from 1 to 168 |
If no embed template is chosen, the default message is a 🎂 Happy Birthday
mention, and it includes the member's new age when they told FlaviBot their
birth year.
The message supports variables: {user} to ping them, {user.name} for their
name, {server.name} for the server, and {birthday.user.age} for the age. A
member who did not give a birth year leaves the age blank.
Like the welcome and goodbye channels, the announcement channel can be a text channel, a voice or stage channel's text chat, a forum or a media channel, or a single thread inside one of those.
The member side
Nothing is announced for a member who has not asked for it. Members set themselves up with:
| Command | What it does |
|---|---|
/birthday set month:<1-12> day:<1-31> year:<optional> | Records their birthday. The year is optional and only used to show an age |
/birthday announce | Turns announcements on or off for the server they run it in |
/birthday info user:<optional> | Shows someone's birthday |
/birthday upcoming | Lists the next birthdays in the server |
/birthday remove | Deletes their birthday from FlaviBot entirely |
The date is stored once per member, not once per server. The opt-in is per server: a member can be celebrated in one community and stay private in another. They can also manage the date and the per-server opt-ins from the Birthday page in their own dashboard area.
That opt-in is what makes the feature safe to enable. Turning it on does not expose anybody who has not asked to be exposed.
When announcements go out
FlaviBot checks for birthdays once a day, at 08:00 UTC.
Which calendar day counts is read from your server's timezone, set on the dashboard's Configuration page, so a server set ahead of or behind UTC celebrates on its own local date rather than on UTC's. The check itself still happens at the same moment worldwide, so the message arrives at 08:00 UTC whichever timezone you picked.
Each member is announced at most once per year per server, so a retry or a restart never doubles a message.
The birthday role
If you set one, FlaviBot gives it on the day and schedules its removal after the duration you chose. The role must sit below the bot's own highest role and must not be a role Discord manages itself, otherwise Discord refuses to assign it.
Make it a purely cosmetic role. It is handed out automatically to anyone whose birthday it is, so it should not carry permissions.
Permissions
In the announcement channel the bot needs View Channel, Send Messages and Embed Links. Add Manage Roles if you use a birthday role, and Create Public Threads if the channel is a forum.
When birthdays switch themselves off
Like the other features here, 10 consecutive permanent failures disable the birthday system and the dashboard page shows the reason. Since it runs once a day, that is about ten days of a broken configuration, usually a deleted announcement channel. Fix it and switch the feature back on.
