codidact / qpixel

Q&A-based community knowledge-sharing software
https://codidact.com
GNU Affero General Public License v3.0
397 stars 68 forks source link

Two-way mod messages #584

Open cellio opened 3 years ago

cellio commented 3 years ago

Currently, a moderator can send a one-way message to a user, but the user cannot respond on-site. Sometimes mods really want the user to be able to respond, however. Currently they have to provide some out-of-band contact info, like an email address. That's not ideal, either for the mod (who has to expose personal info) or the network (important info about a user interaction is not available to other mods/admins). We would much rather have the user be able to respond on-site, and for all mods to be able to see the exchange.

This change request was initially bigger; I've split part of it off into https://github.com/codidact/qpixel/issues/757.

manassehkatz commented 3 years ago

There are actually some other possibilities. Being able to communicate via email can have significant benefits in some situations. Two possibilities that come to mind are specialized email addresses (e.g., moderator-1234@codidact.com) and specialized Subject lines (e.g., "Ref:Case-12345". The first is a little cleaner for the User, as it will work both if they use a mailto: compatible email system (traditional email on "main" computer) or not (e.g., shared computer, webmail, etc.) because they can right-click copy the email address. The second has the easier implementation - Codidact software only needs to monitor one address and redirect everything based on the Case # instead of being set up to monitor multiple addresses, which can get tricky.

Of course, this solution would require the User to expose their email address to the Moderator, but they would be warned in advance and they would know Codidact has their email somewhere. Moderator doesn't have to expose their email - the moderators would be far more comfortable with whatever web tools we provide, but average users (especially if they are not geeks) may find it easier to respond by email.

cellio commented 3 years ago

I thought about doing it through the email system, which could work for our instance and anybody else running an instance would have to roll their own. If we can bake it into the platform (and, bonus, not expose anybody's email address to anybody else), I'd prefer that. I don't know how hard it is, though.

cellio commented 2 years ago

Another issue with an email-based approach is that history becomes harder to find over time. Interactions need to be logged where moderators can easily review them. Whether a mod-messaging system also sends email is a separate question, but I want everything that's said in the discussion to be in the database and available to mods/admins.

Trilarion commented 2 years ago

How about something like a comment thread that is not attached to any question and it's private (only accessible for a user and moderators). That would fulfill all the requirements in the first post here.

cellio commented 2 years ago

That sounds like a good approach to me; we already have all the threading/linking in place, unlike if we wanted to use posts (which we'd need to chain together). Comments support enough markdown to be workable for the kinds of things mods need to communicate with users about, I think -- images won't be rendered but they can be uploaded and linked.

We'll need to see where comment threads are hooked in today and confirm that we can have a "headless" one. We'll need that thread to be accessible (by mods) from the user's profile. We'll get notifications for free, so that's good. We'll need to restrict access to the thread, for anybody who has or guesses the URL, to mods + the user. I forget if users with Curate have any abilities on threads (like archiving or deleting); that shouldn't be allowed in this case. We probably also should not allow anybody to edit comments until there's a visible audit trail for edits.