Questions about Discourse badges/trust levels/tagging/metrics/solved

A few questions as we continue refining our understanding and strategy at

  • Are there ways to tag an individual user’s post (not just a topic)? Use case: we want to measure the “solutions” that some of our users provide that answer questions from others where they provide a specific workflow/steps/instruction.

  • What exotic permissions are available to higher trust levels — doesn’t feel like there is much to offer - why are there higher TLs if they don’t get added benefits?

  • Can trust level badges show in posts with the user’s name? Right now you have to go to their profile to see their “badges” as assigned to trust level. Use Case: we want to celebrate users of higher TLs

  • Can we automate custom badges? e.g. has provided a solution - looks like we can upload custom badges, but they have to be awarded manually or in bulk. Can we train Discourse on other badges?

  • Is there a way to view/filter all “solved” topics?

  • Can the Stickiness (DAU/MAU) metric be changed to weekly (WAU/MAU)? We report on a weekly cadence so this is helpful…


There is a plugin called #plugin:data-explorer. It allows one to run queries on the database, and I believe badges can be tied to a run query. Lots of docs in that category about interesting queries to run. :slight_smile:

The data explorer plugin can run a query for you if you needed a report, but you can apply ?solved= to the end of queries on the front end, such as /latest?solved=yes. Works on category pages, as well.

Again with the data explorer plugin, but basically anything showing on the metrics screen is a query you can modify and run on your own. Not sure about showing it on the dashboard like that, though. :thinking:


There is no way to tag an individual post. Tags are added at the topic level. I can see what you are wanting to accomplish, but tags are not the correct approach to this. I’m wondering if using Bookmarks could work as a way of noting posts that you want to come back to.

This blog post gives a good overview of what users at each trust level can do: Understanding Discourse Trust Levels. Trust level 3 and above users can help you manage your site. Trust level 0 users are very restricted in the actions that they can perform on the site.

I am fairly sure this could be done with a theme component. There is an existing theme component to display badges next to a post author’s username: Post Badges component. I think it can only be used to display the badges you find listed on your Admin / Badges page though. You could use the approach I give in the next answer to assign a custom badge to all members of a trust level, and then display that custom badge next to the poster’s username.

As you have noted, you can bulk award custom badges. If you have a criteria for the custom badge, you can do this in two steps by using the Data Explorer plugin. First, create and enable the custom badge, then write a Data Explorer query that will return the email addresses of the users who should be awarded the badge. For example, if you would like to award a badge for users who have created 1000 posts, you could use something like this as a Data Explorer query:

FROM user_stats us
JOIN user_emails ue
ON ue.user_id = us.user_id
WHERE us.post_count > 1000
AND ue.primary = true
AND us.user_id > 0

Whatever query you use, you need to be sure that it returns a single column with email set as the column name. After running the query, click the CSV button to download a CSV file of the query’s results. Now click the “Bulk Award” button on your custom badge’s page and upload the CSV file. The badge will be awarded to the users returned by your Data Explorer query.

You can also grant custom badges through the API: How to grant a custom badge through the API.

I think this would be best approached by writing a Data Explorer query that uses the DAU/MAU query, but calculates the results on a weekly basis.


Thanks for the reply @maiki and @simon.

Curious if it’s possible to pull “Recategorize and rename topics” from the TL3 group? We couldn’t find that in the admin settings.

Also, I think we’re thinking about the trust levels as a way to track and engage cohorts and thinking about TL3 as a “super user group” and wondering whether that’s best practice or whether we should be thinking about badges as more of a cohort organizing function?

What type of notification, if any, does a user receive when they advance to the next Trust Level?

If we proceed with thinking about TL as engagement measurement/cohort I think it would be useful to “welcome” a user to the next level and give them some guidelines on what privileges they now have in the community and how to use those privileges responsibly. Any thoughts?

1 Like

I don’t think that will work out the way you want; think of trust levels as being overall engagement with the global site, or in your case all the cohorts. I’ve set up charters that use Discourse to communicate, and creating categories with group membership works well.

You might not want to use the trust levels as such. But in practice I don’t think they get in the way. For instance, “Recategorize and rename topics” is primarily used to fix small errors when they crop up. I can do that here, on this Discourse. I’m very active, and I think I may have used it once. My point being: try it out first, it probably won’t be an issue.

Also, I notice a trusted users can edit others setting: “Allow users with high trust levels to edit content from other users”. You can test to see if that affects TL3 “powers”. :slight_smile:


If you disable the trusted users can edit others site setting, TL3 users will no longer be able to recategorize and rename topics.


@simon or @maiki any thoughts on this :point_down:

1 Like

By default, users receive a welcome message when the achieve Trust Level 1. This can be disabled with the send tl1 welcome message site setting. There are no notifications sent to users when they achieve Trust Level 2 or 3.

1 Like

Thank you! Is it possible to send a user a notification when they achieve TL2 or 3 @simon?

1 Like

My previous reply wasn’t entirely correct. When users achieve Trust Level 2, they will be awarded the Member badge. When users achieve Trust Level 3, they will be awarded the Regular badge. Users will receive notifications about these badges. If they click on the badge notification, they will be taken to a page that displays the badge’s Long Description. Would this be enough of a notification for your use case, or do you need a PM to be sent to the user?


If possible to send a PM that would be awesome and more of what we’re looking to do possibly.

1 Like

If you have not disabled the discourse narrative bot enabled site setting, users will be sent a TL2 promotion message . This PM is sent to start the advanced narrative bot tutorial. You could customize the content of this PM to give users additional information when they achieve TL2.

The content of the PM can be seen by searching for discourse_narrative_bot.tl2_promotion_message.text_body_template on your site’s Admin / Customize / Text page. The content of that PM can be customized. Don’t remove the instructions for starting the tutorial from the PM though. Users need that information to start the advanced tutorial.

I can’t think of a straight forward way of sending a PM to users when they achieve TL3. It could be done through a plugin, but could probably also be done through the Discourse API. To achieve this with the API would require a few steps though.


There’s a few problems with this, namely that you can lose and regain TL3 as time goes on. People on the border of the two already complained in the past about the number of badge notifications they got before we added the grace period.


Thank you @riking, good point about the lose/gain/lose/gain TL3 status. Thanks for the suggestion on the PM for TL2 @simon.

1 Like

@simon, is there anything out of the box or something we could build that would allow our members to see their progress toward TL3 the way we can? The Summary on their profile is close but it’s lacking the last 100 days context…

We’d love to give folks a link to a page where they can see their progress toward these goals in the message we send out when they reach TL2 to encourage them to keep going to more quickly move to TL3.

1 Like

The Data Explorer query in this post would be a good starting point for that: Data Explorer query to show progress towards trust level 3 requirements. To share that query with users, the query’s existing parameters could be hardcoded into the SQL. They should be set to match the parameters that you see on your site settings page when you search for TL3. A username parameter could then be added to the query so that users could enter their username.

The biggest problem that I see with this is that it would allow users to query the status of other users on the site. For that reason, I would be reluctant to give a group like the TL2 group access to the query unless some way could be found to set the query’s username parameter in the background based on the current user’s username. That would require a change to the Discourse code.