Automatically set Topics to Watching after posting

(cpradio) #1

We’ve had this come up multiple times now, several of our users want topics they post/interact with to be automatically set to Watching. You can get it automatically set to Tracking, but the only way to get Watching is by Watching a category (and that puts topics you didn’t interact with in that state too, so it isn’t a plausible solution).

Is there a reason this functionality doesn’t exist? Or does it exist and we have no idea how to set it up?

Preference: Automatically Watch Topic when I am @mentioned, quoted, or invited
Improving the user experience for email-only users
(Sam Saffron) #2

Its basically a feature request, do not remember if it popped up before, but I can understand that some people on massive forums may want it.

(Jeff Atwood) #3

If you want to create a PR to add it, I suggest something like this:


When I post in a topic, set that topic to [ Watched | Tracked | Regular ]

default is Tracked.

(cpradio) #4

The wording for “Automatically track topics you enter” would likely need changed to reflect the selected value too, right? Just trying to outline the specifications in case someone with better knowledge of this area has time to work on it.

(Jeff Atwood) #5

No, this would only affect “I just posted in the topic” behavior, not “I entered the topic and read it” behavior.

(cpradio) #6

Ah, good point. Thanks.

(Ryan Reese) #7

Bump - any progress on this?

(cpradio) #8

I unfortunately, still do not have time to make this happen myself (plus my lack of ember/ruby would be difficult to overcome – especially since I’m stuck even in the ReplyGIF plugin).

We do have several users who are looking for this feature to exist. They desperately want to be able to have topics switch to Watching when the participate in them.


I’d also very much like to see this enhancement. I am very certain it would raise the activity levels of the forums using Discourse too. Most of the other forum software like XenForo and IPB have this as standard for notifications too.

It was mentioned by Jeff above, that a PR should be started on Github. If we aren’t direct contributors to the software, is there another way to get this pushed forward? Like starting an issue on Github?


(Jeff Atwood) #10

The spec is in this post above and yes that is good to work on whenever, by whoever wants to work on it…


Does that mean this enhancement is now on a roadmap or plan to be accomplished?



I’d like to see the same control (or a separate control) apply when a post is liked in a topic.
Edit: And Ideally, the admin can set this control as a system default , overridable by the user.

(cpradio) #13

Took over a year to find time, but I just submitted a PR to allow users to set Watching or Tracking as their default when replying. It defaults to Tracking


User preference page

Admin user preference setting

Is any possibility to automatically make the topic's notification level as «Watching» instead of «Tracking» for a user who have posted a reply to this topic?
(Sam Saffron) #14

I think this needs expanding per @cpradio’s PR. The wording is fine but the behavior need clarification.

  • when default track
    • If I am watching a topic and post to it, does it become tracked (my call is no)
    • If I muted a topic and post to it, does it become tracked (my call is no)
    • If I explicitly set a topic to “normal” by changing it to “normal”, does ie become tracked (my call no)

Similar questions can be posed for “auto watch”.

Also, the 3 options may need a bit of refinement… the best options in my opinion are: (copy can be better)

“When I post in a topic, set topic to tracking”
“When I post in a topic, set topic to watching”
“When I post in a topic, leave notification state as is”

Also, perhaps this should be, when I first post in a topic, so it only applies to first post in a topic, but that can get expensive so I am not 100% sure.

(cpradio) #15

@sam, this somehow seems handled already… I’m not sure how though.

Here are the tests I ran with my branch active

With User Preference as Watching

  1. Set a Topic to Muted, Reply to it, state of Topic doesn’t change
  2. Set a Topic to Tracking, Reply to it, state of Topic doesn’t change
  3. Reply to a Topic where I haven’t read/seen, it changed to the state to Watching

With User Preference as Tracking

  1. Set a Topic to Muted, Reply to it, state of Topic doesn’t change
  2. Set a Topic to Tracking, Reply to it, state of Topic doesn’t change
  3. Reply to a Topic where I haven’t read/seen, it changed to the state to Tracking

So something is handling this. When I get back, I’ll see if I can find exactly where it is being done.

(cpradio) #16

Okay, so it was right in front of my face the whole time.

auto_notification (which was renamed from auto_track – as I wanted it to be more generic) is what is called when someone posts in a topic that isn’t a staged user. The first thing it does is verify that the user didn’t already set a notification level for that topic. Specifically

if TopicUser.where(user_id: user_id, topic_id: topic_id, notifications_reason_id: nil).exists?

If a user sets a notification level on a topic, notifications_reason_id won’t be nil. Therefore, the auto tracking/watching won’t be processed for those scenarios. It will only apply if the user didn’t force a specific state for the given topic.

(Sam Saffron) #17

There is one edge case though, if you auto track when entering a topic it will not watch after posting

(cpradio) #18

I’m not sure that is true.

By Auto Tracking are we talking about

If so, here is what it did for me using Immediate and Watching (for when I reply).

It seems auto-track might not be setting a notifications_reason_id (if we’re talking about the same setting)

(cpradio) #19

This is now in Core and on Meta.

(Daniela) #20