mail icon indicating copy to clipboard operation
mail copied to clipboard

Follow-up reminder (nudges)

Open jospoortvliet opened this issue 5 years ago • 12 comments

Feature Request

As a Nextcloud Mail user I want to be reminded that I did not receive a response to my outgoing emails.

Original

Our friends at google now bring up an email to the top of the list after 5 days or so and ask, if you got no response, if you want to follow up. Excellent idea.

Implementation

  1. For all outgoing emails, determine if there should be a reply.
  2. Monitor outgoing emails with expected reply for any responses, show a reminder otherwise.

Original

Not sure exactly what the heuristic is there, it probably uses some machine learning on the content to know if I would expect a reply or not...

Maybe just length of the mail, a simple "Ok, done" or "thanks" won't warrant a reply, but a mail just sent separately, not a reply to anything, with some longer text - that is likely a request for something.

Alternatively, or in addition, when writing a mail users could have the option to enable getting reminded if there is no reply for a week. I'd absolutely love that feature ;-)

Work packages

  • [x] Implementation
  • [ ] Admin docs if applicable
  • [ ] User docs

jospoortvliet avatar Nov 04 '20 16:11 jospoortvliet

heuristic

Number of ? in the email :wink:

ChristophWurst avatar Nov 04 '20 16:11 ChristophWurst

Mind linking to some announcements?

ChristophWurst avatar Nov 04 '20 16:11 ChristophWurst

This feature is available in Gmail and Outlook, and in Apple Mail and Thunderbird using add ons, so it's pretty popular.

Gmail calls it a "Nudge" and it would remind you of when you forgot to reply to an email, as well as to follow up when you haven't received a reply. It can be enabled or disabled in the settings. image image

cc @jancborchardt @karlitschek

nimishavijay avatar Aug 13 '21 10:08 nimishavijay

good idea 👍

karlitschek avatar Aug 13 '21 10:08 karlitschek

As a prerequisite for this, we need to be able to analyze the message content and figure out whether the message needs a reply. This is true both for follow-up and reply reminders. Otherwise, this will result in many unwanted reminders. Is this something we can do? cc @ChristophWurst @AndyScherzinger @marcelklehr

marcoambrosini avatar Aug 25 '23 05:08 marcoambrosini

Here are a couple of wireframes. I think it would be good to use headings for these emails so that whenever the conditions are met, the message goes back to the top of the messages under the proper heading. From there I can choose whether to dismiss all reminders or handle them on a per-message basis. Screenshot 2023-08-30 at 15 50 00

On the message side, we could add a header too that states when I've received (for reply reminders) or sent (for follow-up reminders) the message, and a big call to action button.

Screenshot 2023-08-30 at 15 55 38

What do you think @nextcloud/designers ?

marcoambrosini avatar Aug 30 '23 06:08 marcoambrosini

As a prerequisite for this, we need to be able to analyze the message content and figure out whether the message needs a reply. This is true both for follow-up and reply reminders. Otherwise, this will result in many unwanted reminders. Is this something we can do?

@marcelklehr can probably tell best if the available, non-fully-ethical AIs can do this already, the ethical, self-hosted ones I doubt are able to do this already with a high probability of being correct.

AndyScherzinger avatar Aug 30 '23 07:08 AndyScherzinger

This should be possible with a good LLM. The way to pull this off is to give it the boilerplate code for a function that does what you want (ie. returns a boolean indicating whether the passed text expects a reply) full with docblock, description and return type, and you ask it to call the function on text XYZ and only output the result, e.g. as JSON. My long term plan would be to have a generic version of this available as a text processing provider.

Example prompt:

Consider the following TypeScript function prototype:
---
/**
 * This function takes in an email text and returns a boolean indicating whether the email author expects a response.
 *
 * @param emailText - string with the email text
 * @returns boolean true if the email expects a reply, false if not
 */
declare function doesEmailExpectReply(emailText: string): Promise<boolean>;
---
Tell me what the function outputs for the following parameters.

emailText: "......"
The JSON output should be in the form: {"expectsReply": true}
Never return null or undefined.

marcelklehr avatar Aug 30 '23 08:08 marcelklehr

design review comments:

  • limit list size and add the ability to expand
  • show only in priority inbox?

marcoambrosini avatar Sep 19 '23 08:09 marcoambrosini

@ChristophWurst @marcelklehr do you need further design input or updated mockups, or are the mockups & specs good as is and should we wait on further developments from your side? :)

jancborchardt avatar Oct 03 '23 10:10 jancborchardt

Seems fine to me. This feature is not planned. We can look into the details when this gets picked up for the roadmap.

ChristophWurst avatar Oct 03 '23 11:10 ChristophWurst

cough documentation cough

ChristophWurst avatar Jun 26 '24 07:06 ChristophWurst