Private Topic Plugin

Repo: GitHub - hms-networks/discourse-private-topic


As we have begun using Discourse more and more as a support platform we noticed a missing component that was seemingly needed. Currently in Discourse if you want to restrict access to a topic to certain people you must transition it to a private message or category with specific groups and permissions.

The challenge however with this existing methodology in a support type installation, is that you lose the ability to have all staff (unless invited) see the topic, you lose visibility on solved status in a category and there is no way to assign a category to the topic. By losing category assignments, things end up on their own, unless you tag things as well .

Private topics are intended to fill that gap.

Use Case:

Customer Jim submits a support request for his installed software, he uploads his contact information to the topic which shows publicly. All staff members need to see the topic and it must be traced back to category Product B for analytics and metrics.

Staff member John marks the topic as private. This removes access to the topic for all users except Jim and staff and keeps it in the existing category. Additionally it is unlisted from the main display.


  • Restrict access to topic for non-permitted users
  • Suppress topic from main topic list

Future Addition(s):

  • Invite additional users to the topic (working on this now)

Admin Settings:

Other than enable/disable

  • Suppress from main list

In Action:

Making private:

Making public again:


There is not, and will never be, any concept of per-topic permissions in Discourse.

It sounds like you want the existing email in support, where any anonymous email can arrive as a group PM and be triaged privately by that group.


The biggest issue is a pm could work however would require the category to remain attached to the topic. In a PM however tagging is only available and will not work in this context.

The TL;DR is:

  1. Customer mails

  2. This email triggers creation of a PM to a group in Discourse, with the topic title being the title of the email and the topic body the body of the email. The user is staged via their email address.

  3. The group can then reply to this PM topic as they see fit, and emails will be automatically sent to the customer.

  4. Customer can reply to the emails generated, and their email replies will arrive in the PM as new posts by that staged user.

For more, see the blog post at How Does Team Discourse Use Discourse?


Hey @jordan1909

I am about to test your plugin as it fits our use case.

Question about this: Are you still planning to implement such feature?

  • Invite additional users to the topic (working on this now)

Also interested in this feature


1 Like

Hey @jordan1909

we had to disable the plugin, it caused private messages to not be accessible by admins anymore.
In addition when posts within topics were set invisible by a moderator, the whole topic became inaccessible for every user (except staff).