Change notification level with a link


(Robert) #1

Hello guys,

  • we already have an integration for blog comments
  • we have the ability to draft links to send templated messages to groups or indviduals

Couldn’t we create a route and a dialog to let people switch their notification level to a suggested value for a given group, tag or category?

Like: Discourse Meta

Use Case

  1. Button on blog: Click here to subscribe to new topics and its comments.
  2. User clicks on link to change the notification level from what-ever to tracking with category = blog posts
  3. Discourse checks if user is logged in and may ask first to register
  4. Discourse asks user to confirm the change of its notification level for the given category/tag/group

I guess there are many other use cases, especially if an existing community changes to Discourse and the responsible admins wants to support everyone to not miss any notification.

The same dialogue could be used to mute notification emails. This is already been solved. Unfortunately, those links only allow to mute, not to un-mute or watch.


Hyperlink to actions
(Dave McClure) #2

I think the same thing for topics would be good too. That way, someone who is mentioned in a topic could opt into tracking or watching it, which they can’t do currently, as you point out:


(Leo McArdle) #3

I see two ways of doing this:

Approach 1

As a route under topics, categories, tags and groups.

So if I wanted to create a link to watch a category:

/c/feature/notify/watch

Or track a topic:

/t/change-notification-level-with-a-link/57784/notify/track

Or set a tag to normal:

/tags/pr-welcome/notify/normal

Or mute a group inbox:

/my/messages/group/admins/notify/mute

Approach 2

Like proposed in the original topic, one route to rule them all.

So if I wanted to watch a category, topic, tag and group inbox all at the same time:

/notify/watch?category=feature&topic=57784&tag=pr-welcome&group=admins

Or if I wanted to track multiple categories at the same time:

/notify/track?category[]=feature&category[]=dev&category[]=ux

Or if I wanted to mute a subcategory:

/notify/mute?category=plugin:broken-plugin

Common to both

Once the user visits the link, they’re asked to confirm they want to change the notification level on the categories/topics/tags/inboxes.

If they’re not logged in they’re prompted to do so, or sign up.


The second approach has its advantages in that you can change the notification level on multiple categories/topics/tags/inboxes at the same time, but I prefer the first approach as it’s more elegant and intuitive.

What are the @team’s thoughts on this?

This is something we want within Mozilla, and we’re willing to invest development resources (i.e. me) to make it happen.


(Jeff Atwood) #4

“With a link” is a non-starter, it has to be confirmed with an explicit user action like clicking or tapping on a button. Otherwise you could trick people with active cookies on that URL into setting whatever notification level you wanted in a variety of ways.


(Leo McArdle) #5

Oh definitely, I was focused on what routes to use, rather than the whole flow. Edited the post to clarify it’d require explicit action.


(Robert) #6

I totally agree with everything that has been said.

Any progress on this feature request? It would allow easy sign up to Discourse powered newsletters based on categories (watch first).


(Leo McArdle) #7

I haven’t done any further work on it, so don’t let me stop you from working on it.


(Robert) #8

Such a feature would be the only missing piece to use a category with default notification watch-first-post as an interactive newsletter that allows subscribers to quote easily and interact with other subscribers in the replies to that newsletter topic.

The only hurdle is the subscription process. Ideally, people would click a link, sign in/register with few clicks and confirm than the notification level change to x for cat/group/tag/topic y with x and y being specified in the link.

To draw even more attention to this feature, I will finish this post with a nice gif.


A curated weekly newsletter for your community
(Robert) #9

Workaround: Use an Discourse API call, e.g. powered by https://stdlib.com/ (free quota).