Tool
Open Source
AI-Plans Onboarding Discord Bot
View on GitHubA configurable Discord bot that sends welcome messages and role-triggered messages with interactive button navigation. Each server gets its own JSON-based config, fully manageable through Discord admin commands — no editing config files directly.
Originally built for onboarding on the ai-plans.com Discord server, where it is still actively running.
Features
- Welcome messages — send a message to a channel when a member joins or receives a specific role
- Role triggers — map Discord roles to messages with priority support (if multiple roles are added at once, only the highest-priority message is sent)
- Interactive buttons — attach buttons to messages that navigate to other configured messages as ephemeral follow-ups
- Per-server config — each guild stores its settings in a JSON file, created and managed entirely through bot commands
Admin Commands
All commands require the Administrator permission. Run !help in any server channel to see the full list.
| Command | Description |
|---|---|
| !init | Initialize the bot config for this server |
| !setwelcomechannel <#channel> | Set the channel where welcome/role messages are sent |
| !setwelcomerole <@role> | Set a role whose assignment triggers the welcome message |
| !welcomeonjoinenabled <true|false> | Enable or disable the automatic welcome on member join |
| !setmessage <id> <text> | Create or update a message. Use welcome as the ID for the join welcome. |
| !listmessages | List all configured messages and their buttons |
| !deletemessage <id> | Delete a configured message |
| !setbutton <message_id> <target_id> <label> | Add a button to a message that navigates to another message |
| !deletebutton <message_id> <label> | Remove a button from a message |
| !sendmessage <id> | Send a configured message to the current channel (for testing) |
| !addroletrigger <@role> <message_id> <priority> | Send a message when a role is assigned. Higher priority wins if multiple roles are added simultaneously. |
| !deleteroletrigger <@role> | Remove a role trigger |
| !listroletriggers | List all configured role triggers |
Tech Stack
Python
discord.py
Discord API
JSON