Discourse Category Experts


Discourse Category Experts is a plugin that allows users to endorse each other as experts in specific categories. Category experts’ posts are decorated to highlight their expertise. It’s a highly configurable plugin.


  1. Create an expert group for each of the specific categories you want to enable expert endorsements. To learn how to create groups, see: How to create a group in Discourse - howto / admins - Discourse Meta
  2. Enable for each of the categories you want to set this up for and point the category to that group using the category experts group category setting. This would open up the category for endorsements to start being tracked.
  3. Once all of this is enabled, experts should start coming up for review, and can be added to the groups previously created.
  4. If you want to adjust this feature/plugin a bit more to match your preference, be sure to read through the setting documentation below and learn what can be done and how you can use them. If anything is unclear, please reply this post and someone will respond.

:link: GitHub: https://github.com/discourse/discourse-category-experts
:arrow_right: Install: Follow the plugin installation guide.


Site Settings

  • category_expert_suggestion_threshold: Suggest category experts after this many endorsements. This creates an item in the review queue for admin.

  • category_experts_posts_require_approval: Instead of auto-decorating category experts’ posts, staff need to manually give posts a thumbs up for them to be decorated. This is not recommended unless you have highly active moderators.

  • send_category_experts_reminder_pms: Send a weekly PM to category experts with a linked to unanswered questions.

  • send_admin_category_experts_posts_reminder_pm: Send a weekly PM to staff with a linked to unapproved category expert posts. This only works when category_experts_posts_require_approval is enabled.

  • approve_past_posts_on_becoming_category_expert: When a user is placed into a category experts group, mark all their existing posts in the category(s) as expert posts. When a user is removed from a category expert group, un-mark their existing posts as expert posts.

  • max_category_expert_endorsements_per_day: Number of endorsements a user can give out in a day

  • tl2_additional_category_expert_endorsements_per_day_multiplier: Multiplier on top of max_category_expert_endorsements_per_day to give tl2 users more daily endorsements

  • tl3_additional_category_expert_endorsements_per_day_multiplier: Multiplier on top of max_category_expert_endorsements_per_day to give tl3 users more daily endorsements

  • tl4_additional_category_expert_endorsements_per_day_multiplier: Multiplier on top of max_category_expert_endorsements_per_day to give tl4 users more daily endorsements

Category Settings

  • Category experts group: Group of category experts for the category.

  • Badge: Badge given to users when they are approved as a category expert. No badge will be awarded if this is None.

  • Currently accepting user endorsements: Whether or not users can be endorsed as experts for the category. The endorse button shows on user card, and user profile page.


  • Currently accepting questions for category experts: If enabled, a checkbox will appear in the composer for users to mark a topic is a question for category experts.

Topic View

Pills appear on the topic view to indicate whether a topic has a category experts response, or if the topic is a question for category experts.


There are advanced search filters for category expert fields. The appropriate search fields are shown/hidden based on who the user is. With expert response is shown to all users, Question for expert and Without category expert post are shown to category experts, and With unapproved post is only shown for staff.



Is this in any way limited? (X questions for expert per user a week or something similar)

Otherwise I’d be afraid that users will continue to select it at all times, because who doesn’t want an answer from an expert :sweat_smile:


I just merged a pull request that adds rate limiting based on trust level.