Page MenuHomePhabricator

Don't send email whilst online
Open, Needs TriagePublic

Description

Now that Aphlict uses WebSockets it is reasonably fast and reliable. As such, I usually receive Aphlict notifications a few seconds before receiving an email alerting me of the same event. It would be nice to disable emails if the user is actively online.

Event Timeline

joshuaspence raised the priority of this task from to Needs Triage.
joshuaspence updated the task description. (Show Details)
joshuaspence added projects: Mail, Notifications.
joshuaspence added a subscriber: joshuaspence.

I like the idea, but i think it's a tricky thing to get right. On most sites that do this i always had occasional problems not getting email notifications when opening/closing the site repeatedly during the day (which also is a common thing for me with tools like pahbricator).
I think notifying a user via email if he doesen't act on a web notification in a certain amount of time would be best. But that might make it way more tricky to implement.

This would have to be a setting, and generally not super fans of settings here. Mostly because if we're going to be automagical, would prefer the user opt into it.

Overall product direction for me personally and Phabricator is to reduce / remove the need for email at all. That is, I still want emails because I want an offline copy of the work, but it'd be relegated to being filtered on my email client into a folder. I want basically Phabricator to be the one tool you leave open all day while you work, then when you close it and go home, everything stops. Participating in work outside of work becomes a conscious destination instead of being pushed to you. Expanding the roles of Aphlict and Conpherence I think take us much closer.

I agree for the typical developer use-case. But currently people reporting bugs/suggesting features use maniphest as well and for them the email notification is crucial. So always sending them is probably best for now.

The goal is to remove the need, not to remove the actual email, just to clarify. If I can set up local filters to hide all Phabricator email except [Maniphest][Created] then I see that as the perfect environment for me. People can adjust local rules to suit their needs, and the ones that want to completely disconnect still get a rich experience.

Technically speaking:

  • Until T6868, we can't tell if users are online or not.
  • After T5791, it would be plausible to have a Herald rule like "if recipient is online, send notification instead".

I generally don't think this feature is likely to make sense even after T6868 and T5791. In particular, unless connection status is extremely precise, we'll sometimes think you're still online once after you shut everything down (so you'll miss mail) and probably think you're offline sometimes when you think you're online (so you'll get mail which seems random). We can't improve this unless we delay all your mail, which I think is very undesirable.

T5791 will provide more granular control over mail, too, which might remove the need for this.

Overall, I'm mildly opposed to ever building this, but we can wait for T6868 and see if it's technically possible, and wait for T5791 and see if it still makes sense. This definitely is way too magical to be a default behavior.

My thoughts on this. (Not that I'm so important, but I'll leave them here rather than T7702)
My suggestion in there was to only send an email if the notification was unread for a set period of time and to not mark notifications read just because an email was sent.

I guess this is all personal preference. To me, it allows for more signal and less noise. I love how Slack does notifications because if I'm sitting at my computer I can ignore things for a few minutes before things start lighting up and buzzing but I never "lose" a notification by ignoring it.

Other sites to compare are Trello and Github. Those will both dump a bunch of email on you if you want, but when you go into the site, you'll still see the notification icon lit up so you can scroll through all of the changes on the site itself instead of having to go back into your email and see everything that's happened in there.

Note that you always receive a notification. Going to Notifications will always show you everything.

We'll just mark the notification as read if we sent you an email about it. The idea is you only have to clear the "read" flag in one place, and you if you're AFK for a while you can go through your email first for the important stuff and then skim the in-app notifications for less-important stuff.

Sort of interesting use case, though I don't know we have the manpower of a Slack to pursue it (this year). I wonder if you could fake something with "work hours" where you want to receive notifications in both places.

Hmm yeah, that's a good point.

So I guess if I could totally customize everything, the delay isn't as important for Phabricator (but would be cool), but having Phabricator alert me in-app (and keeping as unread until actually read) if online and sending email when I'm offline would be the ideal configuration.

Also sounds and desktop notifications would make this even more useful (I'm already subscribed to those threads :) )