Initial Setup

When FeedbackBot joins your server, it will try to create a channel called #fbb-admin, and will prompt you to begin the setup process.

You can manually restart or rerun the setup process at any time using the /admin setup command.

If you just want to get up and running with the default FeedbackBot settings, Automatic setup is the way to go!

Automatic setup will create the commands /bug, /feedback, /idea, /request, and /suggestion, and create a private channel for each of those commands that is only visible to people with the Feedback Viewer role.

Note: You can change your settings before running automatic setup, and they will be properly reflected. For example, if you change your server's keywords and then run automatic setup, slash commands and channels created will be based on your changes instead of the defaults.

If you don't really understand how FeedbackBot works, or want to know what it does during the setup, you can select "Custom" setup to get a very thorough step-by-step explanation of what it is doing and why.

The first part of setup is assigning the keywords FeedbackBot will use to collect user feedback. These keywords will become the Slash Commands that people use to submit messages. By default, the keywords are bug, feedback, idea, request, and suggestion, which create the commands /bug, /feedback, /idea, /request, and /suggestion respectively.

Note: You can change these keywords at any time using the /admin keywords commands. More info available below.

The next step in setup is to create the Feedback Viewer role. This step isn't strictly necessary, but is a convenient way to grant trusted users access to the private feedback channels that FeedbackBot will create in the next step. If you allow FeedbackBot to create the role, users with the role will be able to see all the feedback destination channels. If you don't create the role, then the channels will only be visible to server admins by default, and you will need to manually control who can access them.

The final step of the process is to create the channels where feedback will be copied after it it submitted. These channels correspond to one or more keywords. The way that FeedbackBot knows what channel to copy feedback to is simple, it looks for channels with the "channel prefix" (by default fbb-), and then it checks to see if that channel name contains one of the keywords. This allows you to easily and intuitively combine or separate different kinds of feedback into different channels. For example, and #fbb-bugs channel would only collect /bug messages, but an #fbb-ideas-and-suggestions channel would collect both /idea and /suggestion messages.

You can also use the special keywords other or default in a destination channel name to capture all feedback keywords that don't have a more specific destination channel.

If you choose "Automatic" during this step of the process, FeedbackBot will create one destination channel for each feedback keyword. You can rename the channels after they are created to combine different kinds of feedback into the same channel.

If you choose "Custom" during this step, you will be shown a menu that will help you build destination channels to perfectly match your needs. This menu will help you to clearly understand which commands will be copied to what channels, and will create the channels for you with the press of a button.

Customizing FeedbackBot

By using the /admin command and it's various subcommands you can customize FeedbackBot to fit your needs!

/admin help
Get information about FeedbackBot's Admin commands and customization options

Keywords become the Slash Commands that people use to submit feedback on your server. You can change your keywords at any time, and they will immediately become available as Slash Commands. When someone uses a keyword command, their message will be copied to the corresponsing Feedback Destination Channel.

Default Settings:

  • Keywords: bug, feedback, idea, request, and suggestion.
  • Commands: /bug, /feedback, /idea, /request, and /suggestion.

Public & Private Keywords

  • When someone uses a keyword command, FeedbackBot will reply to them using the thanks message. These replies are public by default, so anyone viewing that channel will be able to see the submitted feedback.
  • If you would like FeedbackBot's replies to certain keywords to be visible only to the person who submitted the feedback, you can set visibility: private when adding keywords.
/admin keywords add {visibility} words
Add one or more new keywords.

Options

  • Required
    • words: string - A word or set of words to add.
  • Optional
    • visibility: public|private - Should FeedbackBot's reply to this command be public or private? [Default: public]

Examples

  • /admin keywords add words: complain
    • Adds the feedback command /complain.
    • FeedbackBot's reply to the /complain command will be visible to everyone in the channel where the command was used.
  • /admin keywords add words: report visibility: private
    • Adds the feedback command /report.
    • FeedbackBot's reply to the /report command will only be visible to the person that used it.
    • The /report feedback will still be copied to the corresponding feedback destination channel.
  • /admin keywords add words: comment critique review opinion
    • Adds the feedback commands /comment, /critique, /review, and /opinion.
    • FeedbackBot's reply to all of these comands will be visible to everyone in the channel where the command was used.
Show details
/admin keywords help
Use this if you need help understanding what FeedbackBot keywords are for.
/admin keywords list {show_details}
Lists this server's feedback keywords.

Options

  • Optional
    • show_details: True|False - If "True", shows which commands are publicly visible and which are private.
Show details
/admin keywords remove {words}
Remove one or more keywords.

Options

  • Optional
    • words: string - A word or set of words to remove.

Examples

  • /admin keywords remove words: idea
    • Removes the /idea feedback command.
  • /admin keywords remove
    • When no keyword is specified, FeedbackBot will provide you with convenient buttons you can use to remove feedback keywords.
Show details
/admin keywords set {visibility} words
Sets this server's list of feedback keywords to a new list.

Options

  • Required
    • words: string - The space-separated list of feedback keywords to set as this server's feedback keywords.
  • Optional
    • visibility: public|private - Should FeedbackBot's replies to these commands be public or private? [Default: public]

Examples

  • /admin keywords set words: bug feedback idea request suggestion
    • The keywords to the default set of words.
  • /admin keywords set words: report visibility: private
    • Change your keywords to only include the /report command, which will respond privately when used.
Show details

When a someone uses the /help command, FeedbackBot will respond with a message explaining how to use it. You can customize FeedbackBot's response to better suit your server and the kinds of feedback you're trying to collect.

What you set as the help text will be displayed as a Discord message, so you can use markdown and special characters like \n to make it look the way you want.

Default Setting

I collect any messages sent with these commands: {keywords} so the super cool devs can track them easier!\nExample:\n> /bug The game crashes when you lose on the first fight.

Include Keywords Commands Automatically

If you include the text {keywords} in your help text, FeedbackBot will automatically replace that with a list of the keyword commands on your server. Using this placeholder means that you won't need to update your help text when you change your keywords.

Alternate Help Messages

You can have additional custom /help messages for channels marked with the Alpha or Beta Development Stage.

/admin help_text help
Learn about how to modify the /help message.
/admin help_text reset {development_stage}
Resets help message settings to default.

Options

  • Optional
    • development_stage: Normal|Alpha|Beta - The stage of development to assign.
Show details
/admin help_text set {development_stage} text
Change the help text.

Options

  • Required
    • text: string - The text of the message. Put "{keywords}" in the text to list the feedback commands.
  • Optional
    • development_stage: Normal|Alpha|Beta - The stage of development to assign.
Show details

This is the message that FeedbackBot sends in response to feedback commands. The response can include the submitting person's username, and the ID of the feedback. Feedback IDs simply increment by 1 each time feedback is submitted.

Placeholder Values

  • {user}: is replaced with the username of the person who ran the feedback command.
  • {number}: is replaced with the feedback id number.

Default Setting

  • Setting: Thanks {user}! Feedback saved as #{number}
  • Example: Thanks CoolUser! Feedback saved as #123
/admin thanks_text help
Learn how to modify the reply to feedback.
/admin thanks_text reset
Sets the feedback response thanks message to the default.
/admin thanks_text set text
Change the thanks message.

Options

  • Required
    • text: string - The new thanks message text. See /admin thanks_text help for more info.
Show details
/admin thanks_text test
Replies with an example thanks message response.

Assigning a development stages allows you to customize the Help Text and Lookup Data for specific channels in your server.

/admin development_stage help
Learn about assigning development stages to channels.
/admin development_stage list
List the development stages assigned to all channels.
/admin development_stage set channel development_stage
Assign a development stage ("Normal", "Alpha", or "Beta") to a channel.

Options

  • Required
    • channel: Channel - The channel you are changing the development stage of.
    • development_stage: Normal|Alpha|Beta - The stage of development to assign.
Show details

If an admin channel exists, /admin commands can only be run in that channel. This is a safety measure to prevent accidental exposure of FeedbackBot admin features to your general userbase.

By default, FeedbackBot will create the channel #fbb-admin, and mark it as your admin channel. You can reassign the admin channel to any other channel using this command.

/admin change_admin_channel channel
Allows you to reassign the FeedbackBot admin channel.

Options

  • Required
    • channel: Channel - The channel to set as the new FeedbackBot admin channel.
Show details

If you change the admin channel, be sure that the permissions to that channel are restricted, and that "normal" users in your server don't have access to FeedbackBot's /admin commands. You can double check this in Discord by going to Server Settings -> Integrations -> FeedbackBot and making sure /admin is only enabled in the admin channel, and disabled for the @everyone role.

FeedbackBot uses Channel names to determine the destination channels for different kinds of feedback. In order to prevent FeedbackBot from copying feedback into the wrong channels, destination channels must start with a special prefix. By default that prefix is fbb, but you can change it to whatever you like.

For example, when someone uses the command /bug, FeedbackBot will look for a channel name that starts with your channel prefix (default "fbb") and contains "bug" in its name (ex: #fbb-bug-idea-suggestion)

/admin channel_prefix help
Learn about the channel prefix and how to change it.
/admin channel_prefix set prefix
Change the channel prefix of the feedback destination channels.

Options

  • Required
    • prefix: string - The prefix (the start of the channel names). Must be valid as part of a Discord channel name.
Show details
/admin setup
Run or rerun the FeedbackBot setup process.
/admin echo text
Repeats what you said without Discord formatting, so you can get things like emoji IDs.

Options

  • Required
    • text: string - The text to repeat back to you

Example

Command:

/admin echo text: This is text with my custom emoji :my_emoji:

Response:

You said:
This is text with my custom emoji <my_emoji:1234567890>
Show details
/admin override_feedback_count new_value
This command allows you to manually set the feedback count for this server. In general it should not be used once people start submitting real feedback.

Options

  • Required
    • new_value: number - The feedback count on this server will be set to this number.
Show details
/admin copy_with_plaintext use_plaintext
Control whether copied feedback messages use plaintext.

Options

  • Required
    • use_plaintext: True|False - If "True", copied messages use plaintext instead of embeds. Default: "False"
Show details

Data Lookup

In addition to the feedback submission functionality, FeedbackBot allows you to populate it with descriptions for the various elements/items/characters/etc of your game or product. After the upload, users will be able to look up items using the category keyword that you specify, and FeedbackBot will even do fuzzy-matched autocompletion to help them find the right thing.

This feature allows users to discuss your content accurately and without the need for external wikis. Throughout this section I will refer to all data as "things", but they could represent anything (items, characters, countries, etc).

/admin lookup help
Learn about the data lookup feature.
/admin lookup setup
Configure FeedbackBot to accept lookup data uploads for this server.

Before you can upload data, you must run the /admin lookup setup command to generate an auth token.

The auth token act as your password for data uploads, so keep it secret!. Do not ever include it with your game's files, or post it publicly. If it is leaked somehow, you can generate a new one at any time by rerunning the /admin lookup setup command and selecting "Reset Upload Token"

Because FeedbackBot is product agnostic, the data you upload must be in a specific format. Currently only a JSON-based format is available.

Your JSON must be an array of objects with values for the following keys*:

  • "bot_keyword" This should be a category, and will become the command that people use to look up the thing.
  • "name" The name of the thing.
  • "bot_text" The Discord formatted message text that the bot will reply with when this thing is looked up.

Example

If you were making a game and had the following things:

Weapons

Name Damage Flavor Text
Wooden Sword 6 A simple wooden sword.
Iron Sword 10 A basic iron sword.
Iron Axe 14 A basic iron axe.
Magic Axe 24 A magical axe.

Items

Name Healing
Potion 10
Mega Potion 40

Then the JSON data you upload would look something like this:

[
{"bot_keyword": "weapon", "name": "Wooden Sword", "bot_text": "`Attack:` **6**\nA simple wooden sword."},
{"bot_keyword": "weapon", "name": "Iron Sword", "bot_text": "`Attack:` **10**\nA basic iron sword."},
{"bot_keyword": "weapon", "name": "Iron Axe", "bot_text": "`Attack:` **14**\nA basic iron axe."},
{"bot_keyword": "weapon", "name": "Magic Axe", "bot_text": "`Attack:` **24**\nA magical axe."},
{"bot_keyword": "item", "name": "Potion", "bot_text": "Heals **10** HP."},
{"bot_keyword": "item", "name": "Mega Potion", "bot_text": "Heals **40** HP."}
]
  • NOTE: Your JSON can include other fields, but lookup based on those custom fields is currently unsupported. [It hasn't been ported to the FeedbackBot was rewrite, let me know if it's something you want/need!]

Formatting bot_text

Discord bots must use disambiguated versions of emoji when putting them in messages. To find the disambiguated version of your emoji, you can use the /admin echo command, which will repeat what you say, but without the discord formatting.

/admin echo text
Repeats what you said without Discord formatting, so you can get things like emoji IDs.

Options

  • Required
    • text: string - The text to repeat back to you

Example

Command:

/admin echo text: This is text with my custom emoji :my_emoji:

Response:

You said:
This is text with my custom emoji <my_emoji:1234567890>
Show details

You can then put the full disambiguated version in your bot text.

Now that you have the data, you'll need to send it to FeedbackBot. There are a few different options for how to do that.

Uploading through Discord is a manual process, but is the most straight forward if your data does not change often. Simply use the /admin lookup upload command and attach your data json file.

/admin lookup upload data {development_stage}
Upload new lookup data.

Options

  • Required
    • data: file - The game data json file to upload.
  • Optional
    • development_stage: Normal|Alpha|Beta - The stage of development to assign.
Show details

If your data changes frequently, it can be convenient to integrate the data update into your game or your build process. You can upload lookup data directly to FeedbackBot by submitting an HTTP PUT request along with your JSON data to https://www.discordfeedbackbot.com/upload/. Your request must include your auth token in the header, like so:

Authorization: Bearer <YOUR_TOKEN>
Content-Type: application/json

If you're making software that is distributed to other people, be sure you DO NOT INCLUDE your Auth Token in files that are available to the public.

To upload data for the Alpha or Beta development stages, simply add the development_stage query parameter to the upload url when uploading:

  • Alpha: https://www.discordfeedbackbot.com/upload/?development_stage=alpha
  • Beta: https://www.discordfeedbackbot.com/upload/?development_stage=beta

I've created an example Python upload script. The script will prompt you for the Auth Token and JSON file to upload, or you can modify the script and prepopulate those fields. You can use this script as a guide for implementing your own uploader, or incorporate it into your build tools for convenient automatic game data updates.

/admin lookup manage_uploads {development_stage}
Approve or delete uploaded lookup data.

Options

  • Optional
    • development_stage: Normal|Alpha|Beta - The stage of development to assign.
Show details

FeedbackBot requires you to manually approve uploads before they are made public. This is to prevent accidental uploads from leaking "spoiler" type information, and to prevent abuse if your upload credentials are exposed.

After you upload data to FeedbackBot, you must run /admin lookup manage_uploads, you will then be prompted to approve, view, or delete the changes.

Once the changes are approved, the lookup commands will be available to everyone on your server. If you used the example JSON above, the commands /weapon and /item would be added, and could be used like: /weapon wooden sword", or "/item Mega Potion.

/admin lookup set_upload_notification_channel {channel} {webhook_url}
Set the channel or webhook where new lookup data upload notifications are posted

Options

  • Optional
    • channel: Channel - The channel to post notifications in.
    • webhook_url: string - The url of the webhook to use when posting notifications.
Show details

FeedbackBot can post a message whenever new lookup data is uploaded. Use the /admin lookup set_upload_notification_channel command to designate a channel (or webhook) where new upload notifications should be posted. If you specify a channel, you will need to grant FeedbackBot the "Manage Webhooks" permission so it can create a webhook (it will prompt you to do so).

FAQ & Troubleshooting

If you need help with FeedbackBot, please join the FeedbackBot Development Discord, I'll be happy to help you or answer any questions you have.

In Discord, go to Server Settings > Integrations > FeedbackBot. This menu gives you full control over who can use FeedbackBot, the channels it can be used in, and allows you to modify those settings for each command individually.

More information is available here: https://discord.com/blog/slash-commands-permissions-discord-apps-bots

Warning: The /admin command should always be limited to approved users / channels. As an added precaution, even if your server has a #fbb-admin channel, admin commands will only work in that channel. This is to prevent issues like accidentally making the /admin commands public, or the time Discord broke their permissions system and made all commands public.

If you don't see any available slash commands for FeedbackBot, it means that it was not granted the proper permissions when it was added to your server. In particular the "Application Commands" scope must be granted for FeedbackBot slash commands to be available. Please grant FeedbackBot permissions using this link.

FeedbackBot does not store any messages, ever. The FeedbackBot database only stores the number of feedback messages, not their content. FeedbackBot will not advertise to you. It doesn't track users or send DMs unless directly messaged. The only data it stores is a configuration for your Discord server, and game data if you upload it.

You can make FeedbackBot's replies to specific keywords visible only to the person that submitted them using them (see the Keywords section for more info). When that feedback is copied to it's destination channel, it will still tell you which user submitted the feedback, so people with the Feedback Viewer role and server Administrators will still know who submitted the feedback. There is no way to have "truly anonymous" feedback.

In your server on Discord, you can right click FeedbackBot and select "Change Nickname".

Discord bots must use disambiguated versions of emoji when putting them in messages. To find the disambiguated version of your emoji, you can use the /admin echo command, which will repeat what you say, but without the discord formatting.

Currently no, and there are no plans to add such support. This request has come up a few times, and I'm hesitant to work on it for a few reasons:

More dependencies, more problems.

For every new service that FeedbackBot could export data to, there's a whole variety of ways that each of them could break. APIs change frequently, and the more external services that FeedbackBot interacts with, the more susceptible it is to being broken by a 3rd party change. In addition to that, integrations with 3rd party services will significantly increase the number of dependencies that FeedbackBot uses. Currently FeedbackBot uses a relatively small 21 dependencies, but adding just Google Sheets support would involve an additional 42 dependencies, a 200% increase. More dependencies means more chance for breaks/changes/incompatibilities as permanent part of maintaining FeedbackBot.

Per-project customization.

Another confounding factor is that each new supported service opens the door up to even more complexity. If I added Google Sheets export, it's reasonable to then ask to be able to customize the format of that export. Some people might want a specific set of columns in a specific order, others might want different columns in a different order. Same with other issue tracking tools like JIRA, people might want a specific list of components, or labels, or subprojects. There's just too many dimensions of customization available for FeedbackBot's support of 3rd party services to be up to the requirements of the users, or my personal standards.

FeedbackBot has a defined, limited scope.

Something I presonally find really valuable as the developer of FeedbackBot is that the project's scope is well defined: "It is a bot that helps people filter down to just the feedback from their Discord servers, so feedback is easy to keep track of". Integration with 3rd party services increases that scope to a potentially infinite amount of work, since the issue tracking software market isn't static, and new tools are being made all the time.

The "sanctity of the issue tracker".

This one is a bit more philosophical, but here goes: From my experience working in the software industry, I actually think it's a bad idea for user feedback to go directly into the same place you track your real development tasks. A lot of user feedback is low quality in isolation, duplicates of other feedback, and some of it would be actively harmful to your projects if implemented verbatim. The idea that feedback would go directly into your issue tracker, mixing with your real tasks seems like a recipe for disaster in my opinion, as even the most thorough processes (triage, etc) break down occasionally. It's for this reason that I find the step of having to manually look at the feedback in Discord before it makes it to your official todo list is actually beneficial for most people.

Yes! (with some small caveats)

  1. If your project makes a comfortable profit and you find FeedbackBot valuable, I would appreciate your support on Patreon. If you believe it saves even 1 hour of work per month that's worth at least a couple bucks, right?
  2. If your company has annual revenue of $50 million or more, you will need to purchase an Enterprise License for long-term FeedbackBot use. Contact me via Discord to discuss payment options.
  3. If your company does active harm to people or the planet, or engages in illegal activity, I would ask that you please do not use FeedbackBot, and also please find another line of work.

FeedbackBot is build with NodeJS in Typescript, using DiscordJS, MongoDB, and runs on Heroku.

This website and the lookup data upload functionality are built with all of the above, plus 11ty, Netlify Functions, and run on Netlify

Thanks so much! If you like FeedbackBot, please join the FeedbackBot Development Discord and let me know how it has helped you with your project.

If you want to support FeedbackBot with money in addition to positivity, you can donate at the links below: