# Suggestions

Turn every message in a Discord channel into a numbered suggestion with votes, a discussion thread and a team decision from the panel.

Source: https://fivedash.fivex.gg/docs/en/discord/suggestions

Every city has residents with good ideas. With **Suggestions**, every message a member sends in the chosen channel becomes a numbered suggestion (#001, #002…): the bot adds the vote reactions, opens a thread for the community to discuss and keeps everything in the panel. The team reads, approves or refuses from FiveDash, and the player gets the result by DM.

## Before you start

* **Plan:** the organization's plan must include the **Discord** module. Suggestions works on every tier (Plus, Pro and Ultra).
* **Bot connected:** the city's bot must be set up and inside the Discord server. See [Bot](https://fivedash.fivex.gg/docs/en/discord/bot).
* **Message Content Intent:** without it, Discord delivers messages empty and suggestions arrive with no text. Turn it on in **Developer Portal → Bot → Privileged Gateway Intents**.
* **Bot permissions in the channel:** **Add Reactions**, **Read Message History**, **Create Public Threads**, **Send Messages in Threads**, **Manage Threads** and **Manage Messages**. If any is missing, the page shows a warning with the list.
* **Access level** (in **Settings → Members**, area **Suggestions**):

| Level         | What it allows                                                                              |
| ------------- | ------------------------------------------------------------------------------------------- |
| **View**      | Suggestions and discussions (list, votes, copied thread and the settings in read-only mode) |
| **Manage**    | Approve and refuse (also **Mark as read**)                                                  |
| **Configure** | Channel, votes and messages; saving settings and **Clear suggestions**                      |

The menu is **Discord → Suggestions** (`/<org>/<server>/discord/sugestoes`). The page has two tabs: **Suggestions** (the list) and **Settings**.

## Turn suggestions on

### Open the page

Go to **Discord → Suggestions** and click the **Settings** tab.

### Pick the channel

Under **Channel**, pick the **Suggestions channel**. Anything a member sends in it becomes a numbered suggestion.

### Pick the vote emojis

Under **Votes**, click **Like** and **Dislike** to change the emojis. You can use common emojis, the bot's pack or the server's own. The two must be different.

### Set up the discussion

Under **Discussion**, keep **Open a thread on each suggestion** and **Notify the player by DM** on if you want them.

### Turn the module on and save

At the top of the page, turn the switch on (it shows **On**). Click **Save** in the bar that appears at the bottom.

> Use a channel only for suggestions. Any message with text or an attachment in it becomes a suggestion, including messages from the team.

## How it works on Discord

1. A member writes in the **Suggestions channel** (text, image or video; up to 10 attachments are kept).
2. The bot gives it the next number and adds the two vote reactions to the member's own message.
3. With **Open a thread on each suggestion** on, the bot opens a thread named `#001 · start of the text` and posts the **First message in the thread** (if it has text or an image).
4. Everyone's votes count except the bot's own reaction. The panel re-reads the votes from the message when you open the suggestion.
5. If the member edits the message, the text in the panel follows. If the message is deleted, the suggestion stays in the panel, marked **Left the channel**.
6. The thread archives itself after 7 days without messages (Discord's longest option).

## Review and decide

### Open the list

In the **Suggestions** tab, use the **New**, **Read**, **Approved** and **Refused** cards to filter, the search (**Search by text, member or number**) and **Sort** (**Newest** or **Most voted**).

### Open the suggestion

Click the row. The side panel shows the text, the attachments, the **Votes** (with the share that approves) and the **Discussion** copied from the thread. Use **Refresh from Discord** to re-read votes and messages right now, or **Open in Discord**.

### Decide

* **Mark as read**: changes the status to **Read**, without sending anything to the player.
* **Approve**: opens the **Message to the player (optional)** field; confirm with **Approve suggestion**.
* **Refuse**: opens the **Reason for refusing** field (required); confirm with **Refuse suggestion**.

When you approve or refuse, the bot posts the decision in the thread (with the message or the reason), saves a copy of the discussion, locks and archives the thread and, if **Notify the player by DM** is on, sends the approved or refused DM. A decided suggestion can't be decided again.

> You need the **Manage** level in **Suggestions**. With only **View**, the panel shows "Your access doesn't let you decide suggestions."

### Statuses

| Status       | When                              | Does the player get anything?                       |
| ------------ | --------------------------------- | --------------------------------------------------- |
| **New**      | The suggestion just arrived       | No                                                  |
| **Read**     | Someone used **Mark as read**     | No                                                  |
| **Approved** | Someone approved it               | Notice in the thread and DM (if on)                 |
| **Refused**  | Someone refused it, with a reason | Notice in the thread and DM with the reason (if on) |

### List columns

| Column         | What it shows                                                                      |
| -------------- | ---------------------------------------------------------------------------------- |
| **Suggestion** | Number, author, start of the text and whether it has an image, video or attachment |
| **Votes**      | Likes and dislikes, with the share that approves                                   |
| **Status**     | New, Read, Approved or Refused, and who decided (**By** and the name)              |
| **Sent**       | When it arrived                                                                    |

The list shows 10, 20 or 50 per page (**Per page**).

## Settings

### Channel

| Field                                | What it does                                                  | Default |
| ------------------------------------ | ------------------------------------------------------------- | ------- |
| Switch at the top (**On** / **Off**) | Turns the module on or off. When on, a channel is required    | Off     |
| **Suggestions channel**              | Where each message becomes a numbered suggestion              | None    |
| **Votes** → **Like**                 | Vote-for reaction (common emoji, from the pack or the server) | ✅       |
| **Votes** → **Dislike**              | Vote-against reaction; must differ from **Like**              | ❌       |

### Discussion

| Field                                | What it does                                                                              | Default |
| ------------------------------------ | ----------------------------------------------------------------------------------------- | ------- |
| **Open a thread on each suggestion** | Opens a thread under each suggestion; the conversation shows up in the panel              | On      |
| **Notify the player by DM**          | When the team approves or refuses, the player gets the result (and the reason) in private | On      |

### Cleanup

| Field                               | What it does                                                                                                     | Default |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------- |
| **Clean the channel automatically** | Removes old suggestions from the channel (message and thread). In the panel they stay, with the discussion saved | Off     |
| **Suggestions older than**          | Age to clean up: 7 days, 15 days, 1 month, 2 months, 3 months or 6 months                                        | 1 month |

The cleanup runs in the background and removes a few suggestions at a time, oldest first.

## Customization

In the right column, under **Customization**, there's a Discord preview (tabs **In the channel**, **Approved** and **Refused**) and two shortcuts. Each has **Restore default**.

### Messages

Click **Messages** to open **Customize messages**.

| Field                                  | What it does                                                                                                                                 | Default                                                                                                              |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **First message in the thread**        | What the bot writes when the thread opens. With no text and no image, the thread opens without a message from the bot. Up to 1000 characters | `{{info}} Use this thread to talk about {membro}'s suggestion. When the team decides, the result shows up here.`     |
| **Image** (Thread)                     | Wide image (2:1) under the first message                                                                                                     | None                                                                                                                 |
| **DM when the suggestion is approved** | Approved DM. `{motivo}` is the team's optional message. Up to 1500 characters                                                                | `{{success}} Your suggestion **#{numero}** on **{servidor}** was approved! Thanks for helping make the city better.` |
| **Image** (Approved)                   | Wide image (2:1) at the end of the DM                                                                                                        | None                                                                                                                 |
| **DM when the suggestion is refused**  | Refused DM. `{motivo}` is the reason (always asked). Up to 1500 characters                                                                   | `{{error}} Your suggestion **#{numero}** on **{servidor}** was declined.` + new line + `**Reason:** {motivo}`        |
| **Image** (Refused)                    | Wide image (2:1) at the end of the DM                                                                                                        | None                                                                                                                 |

Images can be PNG, JPG, WebP or GIF up to 1 MB. With the DM on, the approved and refused messages can't be empty. The default texts follow the city's language.

#### Variables

The variable names stay in Portuguese in every language.

| Variable     | Becomes                             |
| ------------ | ----------------------------------- |
| `{membro}`   | Mentions who suggested it (@Player) |
| `{nome}`     | The name of who suggested it        |
| `{numero}`   | The suggestion's number             |
| `{sugestao}` | The start of the suggestion's text  |
| `{servidor}` | The Discord server's name           |
| `{motivo}`   | What the team wrote when deciding   |

### Embed

Click **Embed** to open **Customize embed**.

| Field                | What it does                                                        | Default           |
| -------------------- | ------------------------------------------------------------------- | ----------------- |
| **Color** (Thread)   | The side bar of the bot's first message in the thread               | **Bot color**     |
| **Color** (Approved) | The bar of the approved DM and of the notice that closes the thread | Green (`#57F287`) |
| **Color** (Refused)  | The bar of the refused DM and of the notice that closes the thread  | Red (`#ED4245`)   |

## Clear suggestions

The **Clear suggestions** button at the top of the page deletes every suggestion from the panel, along with the decisions and the copied discussions, and the numbering goes back to #001. The messages and threads already on Discord stay there, but their votes stop counting.

> **Clear suggestions** can't be undone. It needs the **Configure** level.

## Warnings on the page

| Warning                                          | What to do                                                                              |
| ------------------------------------------------ | --------------------------------------------------------------------------------------- |
| **Message Content Intent** missing               | Turn it on in **Developer Portal → Bot → Privileged Gateway Intents**                   |
| "The bot needs more permissions for suggestions" | Give the listed permissions to the bot's role in **Server Settings → Roles** on Discord |
| "The service that reads the channel is down"     | Wait: new messages only become suggestions once it's back                               |

## FAQ

**The suggestion arrived with no text. Why?**
The bot doesn't have the **Message Content Intent**. Turn it on in the Developer Portal; the page shows the warning while it's missing.

**Does deleting the message on Discord delete the suggestion?**
No. The suggestion stays in the panel with what was already saved and shows as **Left the channel**.

**Can I change the decision later?**
No. An **Approved** or **Refused** suggestion stays decided. A **Read** one can still be approved or refused.

**The player didn't get the DM.**
Check that **Notify the player by DM** is on. If the member has DMs from the server closed, Discord refuses the message and nothing can be done.

## Next steps

[Bot](https://fivedash.fivex.gg/docs/en/discord/bot)Connect the bot, turn on the intents and pick the emoji pack.
[Forms](https://fivedash.fivex.gg/docs/en/discord/forms)Get structured answers with team approval.
[Team and permissions](https://fivedash.fivex.gg/docs/en/dashboard/team-and-permissions)Give each person the right level in Suggestions.
[Commands](https://fivedash.fivex.gg/docs/en/discord/commands)Every command of the city bot.
