TLDR: Feb 2024 Google is changing their acceptable spam ratio to 0.3%. I want to reduce outbound email volume to avoid getting flagged. (3 spam flags/1000 emails will get your domain blacklisted). I need to procedurally change ‘watching first post’ for certain groups.
My nonprofit is a physical organization that uses discourse to facilitate member/community engagement. In particular, we opt new members into mandatory notifications regarding our organization (meeting agendas, votes, and critical updates. We’re legally allowed and obligated to send these emails).
Currently: Our member portal adds new discourse users via API, and assigns them to ‘current_members’ group so long as they are in good standing.
Current members’ group is set to Categories: Watching First Post: Official Announcements.
So far so good.
When they quit/expire, we (api) move them to ‘former_members’ for a variety of permissions. When members expire/quit/etc, we keep their account active as a ‘public non member’ permission level so they can still engage with the community.
Goal: Remove the watch-first-post elective on group-add.
Moving to a group seems only to be additive. Is there a way to designate ‘remove’ tracking based on group add?
Is there a way to remove track settings that were added by group membership? (ie on group leave, undo whatever was added).
Alternatively, we could use @ tagging, but it would super easy to accidentally abuse. Having the groups manage the notification level would be easiest.
I think that’s what to do. Remove those watched categories when they leave. You can Reverse engineer the Discourse API to find the API call to change their watched categories.
The trouble is I have hundreds of users in this boat. Setting it up for future is bonus but having an explicit null empty list would be a great feature.
Then a rails command that removed watches for the users from the expired group might be a solution. I can’t remember if changing the setting for the group will offer to apply it to all members. You might give that a go (make the expired group watch the category and then remove that watch?)
I’ll give that a shot. I know the addition of a watch will offer recursive. I couldn’t find a way to remove a watch that wasn’t there. You’re right it might be a matter of adding and removing.
This is the magic. Adding to a group that lacks the flag doesn’t assert removal of the flag - that would be a nightmare to maintain…but retroactively applying the flag and then removing the flag to the group works as a decent workaround if I only have to do it annually-ish.
#feature-request - ability to assert a ‘nullify’ category or tag on group add would be sweet.