Suggestions
The Suggestions module provides a community suggestion system with voting (👍/👎), Approve/Reject buttons, and optional discussion threads.
Enabling the Module
Enable the module
Dashboard → Your server → toggle Suggestions
Configure the channel
Click Edit and configure the suggestions channel
Save
Save changes
Configuration
| Option | Type | Default | Description |
|---|---|---|---|
channel_id | string | — | Channel where suggestions are posted (required) |
color_pending | hex | #3B82F6 | Pending suggestion embed color |
color_approved | hex | #22C55E | Color after approval |
color_rejected | hex | #EF4444 | Color after rejection |
create_thread | boolean | false | Create a discussion thread under the suggestion |
anonymous | boolean | false | Hide the suggestion author |
manage_permission | string | "moderation_roles" | Who can approve/reject |
manage_roles | list | [] | Management roles (when permission = "custom") |
counter | number | 0 | Automatic suggestion counter |
Dashboard — Configuration
The edit panel contains:
- Channel — dropdown with text channels
- Colors — three color pickers (pending, approved, rejected)
- Create Thread — checkbox
- Anonymous — checkbox
- Manage Permission — radio: "Moderation Roles" / "Custom Roles"
- Custom Roles — multi-select (visible when "Custom" is selected)
Commands
/suggest
Submits a new suggestion.
| Parameter | Required | Description |
|---|---|---|
content | ✅ | Suggestion content (max 2000 characters) |
Flow:
- Bot increments the suggestion counter
- Creates an embed with title "Suggestion #X", content, and status "⏳ Pending"
- Sends the embed to the configured channel with Approve/Reject buttons
- Adds 👍 and 👎 reactions for voting
- Optionally creates a discussion thread
- Sends an ephemeral confirmation to the author
- Logs the suggestion creation
Approve / Reject
Authorized users (see manage_permission) can click:
- Approve ✅ — changes color to green, status to "Approved by [name]"
- Reject ❌ — changes color to red, status to "Rejected by [name]"
After approval/rejection:
- Buttons are removed from the message
- Thread (if exists) is archived and locked
- Moderator receives an ephemeral confirmation
- Action is logged
Voting
The 👍 and 👎 reactions are used to gather community opinions. The bot adds them automatically, but the count is visible natively through Discord — the bot doesn't interfere with the counter.
Anonymous Mode
When anonymous = true:
- The embed displays the author as "Anonymous"
- In logs, the author is still visible (for accountability)
Listened Events
| Event | Action |
|---|---|
on_interaction | Handles Approve/Reject button clicks |
Persistent Views
The Approve/Reject buttons use custom_id (not callback) — they work even after a bot restart.
Logging
Actions are logged by Logs under the suggestions category:
- 💡 Suggestion Created — with number, author, and content (truncated to 200 characters)
- ✅ Suggestion Approved — with number and moderator
- ❌ Suggestion Rejected — with number and moderator
Tips
Best Practices
- Create a dedicated
#suggestionschannel with restricted writing permissions (bot only) - Enable
create_threadso discussions don't clutter the main channel - Set
manage_permissionto"moderation_roles"so moderators can approve/reject - Anonymous mode encourages honest feedback but makes moderation harder
Channel Required
The suggestions channel must be configured — without it, the /suggest command will return an error. The dashboard also won't allow saving the configuration without a selected channel.