Custom Guest Mode


Is there a possibility of a guest feature as below.

We discuss with lot of 3rd party vendors. However unlike internal users, for whom all categories and posts are visible, the vendors should only be confined to threads, where we have conversation with them. Also vendors should not be able to see any public threads, where they are not tagged (for example, if we discuss with 2 vendors of similar service, their quotes are confidential, each cannot see other’s in any way).

I think a workaround like this may be achievable.

  1. Create a user for each vendor, but with any internal public threads not accessible
  2. Vendor could see and respond only to private threads where he is tagged and can also respond in that thread.
  3. It would be up to users of private thread to be cautious of tagging vendors with conflict of interest

Can we and how do we achieve this?

I can create simply a public post but it would be visible for all the world.


We’ve run into this challenge when adding a guest feature to Discourse for Teams. What we ended up doing is semi-automating this process:

  1. Create a new group for a guest/guests (could be multiple people working for a vendor, for example)

  2. Create a new category for content shared between internal users and that guest group

  3. Use the category permissions to allow the new guest group to only access that category

  4. We then added a reminder to the composer so internal users are aware that they’re posting in an area guests can see.

Steps 1-3 are possible manually with Discourse out of the box (we have a guide: How to use category security settings to create private categories), but the additional warning from step 4 would take some custom work.

It’s not likely that we’ll add permissions on a per topic basis any time soon, as it adds a lot of complexity.


I like the summary Kris made of guests in teams. It’s a nice feature and promising for teams working with external partners, vendors and customers and seeking to keep them all separate from each other and from internal discussions.

You could probably achieve what you want with personal messages in Discourse. Add users you want to include to have a private discussion with just with those users. But using the PM system has the disadvantage that discussions end up siloed, and cannot easily be shared with the rest of your community.

If you have them email you, Discourse can create a new PM topic for each email, with a staged user for each email address. That’s how our support email addresses work right now.


Is it a single guest category for all vendors? In that case, vendors could see each other’s threads in that guest category which is a problem.

If guest category per vendor, then we have multiple vendors short and long term. Guest categories would soon outgrow.

For time being, @codinghorror 's solution is interested, I am yet to understand fully, will explore.

So, I ask these people to sign up, send them to a guest group, which is prohibited to view any of our internal categories, and then I only create a PM thread tagging them so they only see that? This is possible right? Being prohibited to view any categories will not automatically also prohibit them from individual messages (private thread), right?

1 Like

Nope, guests are full role based (groups) in Discourse for Teams. Guests need to be in at least one group to have any access at all.

You’re able to create a category that allows two different vendors to talk if you want to!