Net Promoter, Satisfaction scoring?

This poll banner theme component might do the trick, it uses the numerical score poll built into Discourse, and displays the poll as a banner:

It relies on Discourse’s existing number rating poll functionality.

To use it you have to create a new public topic with a poll in the first post (if you don’t want the topic to appear in the topic list, you can unlist it)… the poll markdown looks like this:

[poll name=example type=number results=always max=10 step=1]
# How likely are you to recommend us to a friend?

Then you’d configure the theme component settings using the ID of the topic (the number from the URL):

When someone clicks an option in the banner, the poll in the topic is updated. After voting they’ll no longer be shown the banner on their current device. You can also configure the banner to show after a set number of minutes (default 20), and can also stop it from showing at a point (default is 7 days).


For a more complete CSAT you could build something in the custom wizard plugin and then use the data explorer for reporting.

1 Like

Thanks @awesomerobot!

It’s not obvious to me from my searching: is there a way to add a ‘comments’ input to this?

Or am I being dense & this is about replying to the poll topic somehow?

1 Like

No, there’s no way to add a comments input to this… all this does is surface a poll from a topic and put it into a banner. So the banner really just draws attention to the poll and makes it easier for more people to participate… the topic containing the poll can accept replies as usual though, so maybe adding a link would suffice?


For the record this requires a “public” post, so an unlisted topic does not work (the banner simply doesn’t show up).

I also tried adding a link to the topic to solicit comments:

Which is simply stripped out of the banner:

1 Like

oh strange, links work for me…

Screen Shot 2022-02-22 at 4.02.01 PM

here’s how my test topic is formatted:

[poll name=example type=number results=always max=10 step=1]
# How likely are you to recommend us to a friend? [Comments? Questions?](

One thing that may have happened: if you created the poll, saw the banner, and then edited the topic to add the links later… the original banner without the links may be cached (this is so the banner doesn’t create large amounts of additional “pageviews”). You can remove the cache by right clicking the page, choosing inspect… and clearing local storage:

Making the topic unlisted works for me too… the topic does need to be public, but unlisted topics are public and just hidden from the topic list for normal users (so normal users can visit it, but only via a direct link)


Okay, yes this is working with an unlisted post.
And the missing link probably was a question of cache.

Thanks for the help & advice!


As a followup, we’ve tried this twice, and only gotten votes from TL4 users.

No idea what’s going on with this, but we’re going to see what other options there are.

1 Like

As a followup on this, we finally ran this successfully for 2 weeks in late March.

After some private conversations with Support, we finally understood that voting requires the ability to post in the category the underlying poll/topic is posted in. I had filed the poll topic in a private category, so the NPS popup was only presented to those with the ability to use that category.

With ~22k logged-in pageviews per week in March, we had 46 voters.
We’ve created groups for the Detractors and Neutrals. That will make it easy to send a message out to them, asking for more specific feedback.

Tangentially, it also allows us to easily view their recent activity in aggregate.


I’m trying the poll banner theme component suggested by @awesomerobot but I am not sure if it is working well. When we tested, it seems that the user needs to refresh the page to show the banner, even if the user has navigated through the pages for several minutes (more than the “show after” set).
Furthermore, after a day running it, just 1.5% the users that visited voted.
Does anyone else experienced the same?
I am also wondering how the view count for the post works in this case. Does it add a view everytime a user sees the banner?

1 Like

We got a dismal response rate the first time we did this. As I mentioned earlier, we had 46 voters over 2 weeks last time, including employees. For users it was 39. People, not percent.

We just turned this back on again on Friday and we’ve taken several steps to try to get a better response rate this time.

We tuned the ‘show after’ setting to 0. (We actually did this the first time.)

The user still may not see it when in their current session(?) but should see it the next time they return. We’re running this for 2 weeks at a time, so we’re sanguine on that point.

This time I’ve tweaked the CSS for more visibility (by default the poll shows up white-on-white):


Already we’re at 22 non-employee votes after just 4 days, so I’m feeling positive about this.

Also, I’ve realized I can use <br/> to add linebreaks in the question (just hitting Enter will break the display) so I was able to make the text a little nicer.

And finally, we’ve used the Data Explorer plugin to pull a list of TL1 & TL2 users who’ve logged in since the last poll, and we’ll send them a message soon using the BCC plugin, asking them to please be sure and vote. That message will include a direct link to the poll topic in case they’ve already dismissed the banner. Here’s the SQL to pull the list

SELECT username,last_posted_at,last_seen_at FROM users
WHERE trust_level != 4
AND trust_level > 0
AND last_seen_at::date > '2022-04-01'

Thank you for sharing!

For this, do they need to log off and log in again in the next session? Or does it work even if the person remains logged in?

I saw your other topic about it. It was a great idea, but the theme we are using doesn’t have the Edit CSS/Html option active.

1 Like

I couldn’t find it at first either:


1 Like

Thank you! It appears in the default theme, but I’m using the air theme, that doesn’t have this option.


You cannot modify an external theme.

Just create a new theme component (see Beginner's guide to using Discourse Themes and then Discourse Theme Interface → Create new themes and theme components) and add it to your theme.


As a followup, we had 217 votes in our latest NPS poll, most of them attributable, I think, to this:

1 Like

One more operational update. I’ve just staged the poll we’ll run starting Monday in a private category & set a topic timer to automatically move it to a public category on Monday.

I’ve turned on the Poll banner component now, but the banner won’t be shown to normal users until the underlying poll/post is viewable on Monday.

I’m starting to feel like I’m getting the hang of this stuff. :sunglasses:


I don’t suppose I could persuade you to write up one monster reply that lays it all out in a big how-to?

yes please


My list is currently long, but I’m not saying no.

You would expect it in this thread or in a new post?

1 Like

Anywhere would becawesome… :slight_smile:

1 Like