Tutorial: Set up birthday congratulations in 5 minutes
Step by step: enable the module, pick channel and timezone, optionally set a 24h role, design the canvas card, and post the registration panel in your channel.
This tutorial walks you through the complete setup of the Birthday module for your Discord server. By the end, every user can register their date privately via slash command or button click, and the bot congratulates automatically at the configured time.
Prerequisites
- TeraOne is installed on your server (or a custom bot with your branding).
- You have
Manage Serverpermission on the server. - Optional: a text channel with bot write permissions where congratulations should appear.
Step 1: Enable the module
- Open the dashboard at tera-one.de and sign in with Discord.
- Pick your server from the sidebar.
- Click the Birthday tab (🎂 icon between Welcome and Leveling).
- In the top-right corner you'll find the activation toggle. Switch it on.
Step 2: Channel and timezone
In the Settings tab:
- Congratulation channel — dropdown lists all text channels where the bot has write permission. Pick the one where congratulations should appear (e.g.
#generalor a dedicated#birthdayschannel). - Timezone — defaults to
Europe/Berlin. If your server is mostly active in a different timezone, pick the appropriate IANA zone. - Time — defaults to
00:00. Set when the bot should congratulate. Tip: some communities prefer09:00because more users are online then.
Step 3: Optional birthday role
Create a role in your Discord server (e.g. 🎂 Birthday) that users get for 24h. Important:
- The TeraOne bot role must sit above the birthday role in the server's role hierarchy (otherwise the bot can't grant it).
- The bot needs the
ManageRolespermission on the server.
Then pick the role in the Settings tab under Birthday role. The 24-hour removal runs automatically — you don't need to do anything else.
Step 4: Design the canvas card
The Settings tab includes the embedded Welcome card editor (now with birthday mode). Pick one of the three pre-built birthday templates:
- Classic — rose-orange gradient, large title with
{user.name}. - Confetti — dark background, yellow accent, also displays
{age}. - Minimal — white background, subtle style with
{birthday}.
You can customise:
- Background — solid, gradient, or your own image (PNG/JPG up to 8 MB).
- Text fields — freely placeable with variables like
{user},{age},{birthday}. - Avatar — position, size, optionally with ring.
Don't forget to click Save at the top.
Step 5: Post the registration panel in a channel
So users can easily register their birthday, post an embed panel with a click button in a channel of your choice:
- In Discord, switch to the channel (e.g.
#birthdays). - Type
/geburtstag paneland press Enter. - The bot posts an embed titled "Set your birthday" with a 🎂 button.
- Users click the button and enter day.month (required) and year (optional).
Alternatively, users can run /geburtstag set directly — the same modal opens.
Step 6: Testing
To make sure everything works:
- Register yourself with
/geburtstag set. Use today's date and leave the year empty. - Switch to the dashboard, Overview tab. You should see yourself under "Today".
- In the Settings tab: set the notify time to 2 minutes in the future (e.g. if it's 14:30, set 14:32). Save.
- Wait 2 minutes. The congratulation should appear in the configured channel, ping you, and (if set) grant the role.
- Reset the notify time to your preferred value.
Common questions
The bot isn't congratulating, what now?
- Check that the module is enabled (toggle top-right).
- Verify the bot has write permission in the congratulation channel.
- Check the Overview tab — does the user appear under "Today"? If not, the server timezone might differ.
Can I register entries for other users?
Yes. The Add entry tab has a user picker (search via @-mention style). Admin entries are tracked in the addedByUserId field — users themselves can only change once per year.
What happens to the data when a user leaves the server?
The entry is preserved, but the bot only congratulates members still in the server. If the user rejoins, they'll be picked up again.
Done. If anything doesn't work, check the docs section or reach out in our support server.