Feature #8241

Advanced notification: per user, per project configurable schedule, event filter and notification format

Added by Terence Mill over 6 years ago. Updated 10 days ago.

Status:NewStart date:2011-04-28
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Email notifications
Target version:-
Resolution:

Description

The notification function in redmine is a very important for our users, but indeed at the moment it created to mucg spam and is less configurable for individeual user requirements.
Redmine lacks a notification engine which let user configure what he will be informed on a project based level, on which changes, on which item types, how often and how fine grained the notification will be.

The email notification is only necesarry and useful when user can set on which events and how often he shall get notified, so inbox wil only popup valuable messages.

E.g on news changes every week with all changes of the week, or on new bugs every day at 7 o'clock right with the stand up meeting with a summary of all new bugs and on changes of tickets i am owner or watcher immidiately.

It would need a extension on the user account menue with an extensiable list where you can choose "event type" and "notification schedule" and "notification format" for ur notications. These complete view shall be shortcut accessiable from the items overview sites, e.g issue list of thread list.

An Notification entry consists of 3 parts: Event type, Notification schedule and Notification Format

1. Event type: is new or change on any item, eg. news, issue, thread, file

1.1 New: Just a new entry in any project i am involved and have view rights

1.2 Change: changes on Item in project i am involved, have view rights and the filter is met. If no filter is set any change will be notified.
Optional filter settings for this kind of event: oOne ore more fields (or relation) for which the the change event shall fired can be choosen, so only if the fields are changed or set to a certain value use gets notified. In view that would mean you could addfilter items to a list where every list item consists of "Event type" (e.g issue) field and filter value (e.g certain value or "any change"). For an easy first step all tems can be concatenated logical with "and".
This way a filter can set be defined too, that only notifies for changes i am author or watcher and on special projects.

2. Notification schedule

- immidiately (means one item per notification)
- hourly (all changes in this hour)
- daily (all changes this day and optional set time when to fire notification)
- weekly (all changes this week and optional set day time when to fire notification)

- on every login (for pop windows only)

3. Notification format

- Email
- browser window popup

- short summary (means item topic and link)
- average summary (topic and info on changed fields and author of change and link)
- full summary ( complete meta data of item and link)

There are some plugins which tried to extend redmine standard notification features, but none of them eanbles the user this way.
Of course users can update with rss and activity page ( i only use this and love it) but the email notification is still the defactor standard "non it" users prefer and will use.

Improvment on this side will also open paths towards other information drop palces e.g mobile or web services like twitter notification, because the model only needs another notification format, e.g SMS or twitter to be added


Related issues

Related to Redmine - Feature #11894: Configurable emission email address New
Related to Redmine - Feature #11619: Ability To Have Redmine Issue Update Notifications Send F... New
Related to Redmine - Defect #8406: Missing notification "Only for things I watch or I'm assi... New 2011-05-19
Related to Redmine - Feature #8675: Notify author only onclosed/resolved issue New 2011-06-23
Related to Redmine - Feature #415: Daily Digest option for Mail Notifications New
Related to Redmine - Feature #8409: single email for bulk updates New 2011-05-20
Related to Redmine - Feature #7349: Per-project email notification settings New 2011-01-17
Related to Redmine - Feature #2549: Enable the watching of news Closed 2009-01-20
Related to Redmine - Feature #8382: Notify on issue completion only New 2011-05-17
Related to Redmine - Feature #8374: Email Notifications on Spent Time New 2011-05-14
Related to Redmine - Feature #3069: Relative schedules, roles -> users New 2009-03-28
Related to Redmine - Feature #23565: As a project admin I need to be able to set notification ... New
Duplicated by Redmine - Feature #8331: Email notifications settings for persons per project Closed 2011-05-10
Duplicated by Redmine - Feature #11996: Module based Email Notification settings Closed
Duplicated by Redmine - Defect #8268: Receiving mail notification per specific status Closed 2011-05-03
Duplicated by Redmine - Feature #3857: Advanced E-mail Notifications Closed 2009-09-13

History

#1 Updated by johann sebatian over 6 years ago

  • Assignee set to johann sebatian

#2 Updated by Terence Mill over 6 years ago

  • Assignee deleted (johann sebatian)

If our interested i would make a wire frame of my gui guess.
Tx for ur work in adavance.

#3 Updated by Deon Joubert over 6 years ago

Well said Terence!

#4 Updated by Luiz Carlos Junior over 6 years ago

This kind of ticket is very useful because it sums up all separated ideas related to this topic giving it an clear course.

However, I'm also afraid because even the smaller tickets related to this one weren't implemented yet. I prefer to be wrong, but how one can think that a bigger and more complex ticket will be implemented soon? There are tickets dated from more than 2 years ago.

#5 Updated by Jens Martsch over 6 years ago

+5 for this feature

#6 Updated by Laurent DELAGE over 6 years ago

+1 !

#7 Updated by Drew Keller over 6 years ago

I created a plugin that sends an email digest of project activity. It's not very configurable (yet), but at least it's a start: http://www.redmine.org/plugins/digest.

I'm new to Ruby coding, so improvement patches are welcome.

#8 Updated by Ernesto Baschny over 5 years ago

+1!

#9 Updated by Terence Mill over 5 years ago

Dupes

Related

Needful code snipets

  • "extend the watcher functionality to send email notifications for issues" /boards/1/topics/22313?r=22390#message-22390
  • "Email reminders sent for closed issues" #8108

Plugins doing some of the stuff

Exmample for New pluggable Notification format, see Notifo

#10 Updated by William Roush over 5 years ago

Has there been any work done on this? I'll probably look into tackling the idea of a notification digest system for the e-mails that we typically receive.

#11 Updated by Drew Keller over 5 years ago

A plugin I authored does most of the things noted in the original post, with some caveats. For my small team where most of the "users" have never even logged into Redmine, it works fine for me.

See http://www.redmine.org/plugins/digest or https://github.com/drewkeller/redmine_digest (there are some screenshots in the file list).

  • The event types are determined in code (basically everything).
  • The notification schedule is determined by the project administrator.
  • The notification format is determined by the Redmine administrator setting for email format.

So the only option the user has whether to receive the digest. A number of people have requested providing more settings for the user, but I haven't got around to doing it (not to mention that I'm not really a Ruby programmer). Improvements are welcome (github makes it easy).

#12 Updated by Terence Mill over 5 years ago

Digest plugin can only be configured by admin and user can accept or skip this config.
There are more levels needed.
  • Global (admin) level sets default for all users
  • project level sets defaults for project members (receive notification right for role)
  • user level can control all: unregister for defaults from upper level and configure new own rules

user can't configure notification detailed
Major thing missing is that user himself can't influence how often, when and in which fotmat he shall be notified. Thats exatcly what this feature request is about.
At the moment the digest is send global by admin config (user can't configure poeriods himself) and the digest is send for every project instead of one digest e.g. per day/week for all of them. For most users this feels like spam, so they skip the digest.
The digest only and reports on all isses in a project. Users can't filter on issues, so can't perosnalize their notification conten in any way. Furthemore there is only notification for ressource type issue, but none for threads, changesets, files, documents, news... - all event types seen in activity pane.
see https://github.com/drewkeller/redmine_digest/issues/19

project manager can configure notification templates for his project
This feature is comarable to shared issue filter's in redmine
User can select this template

configure reciepient filter "role"
Role based there shall be a right to be ablele to configure project specific notification:
Like sending digest dependent on user base it's also feature missing to send notification based on roles per project.
https://github.com/drewkeller/redmine_digest/issues/11

#13 Updated by William Roush over 5 years ago

Being as I'm looking on trying to hammer this out, I want to get a clear picture of what would be best for Redmine (not just where I work), so input is valuable to me...

project manager can configure notification templates for his project
This feature is comarable to shared issue filter's in redmine
User can select this template

Can you give an example of this? Would this be all e-mails that go out? Digests are on a per-system basis (at least in my mind), so I'm kind of confused on how project level templates would work. Otherwise I'd have to send one e-mail per project (ick).

The plugin is a good place to start, but yeah.

  1. A message digest system / notification overhaul should be part of the Redmine core.
  2. Also requires backwards compatibility, basically unallowed to touch current notification tests.
  3. Digest rule sets can be applied at the system level (lowest priority) project level (mid priority) or user level (highest priority).
  4. Digests should be driven by a task that can be cronjobed.
  5. Notifications should pretty much operate as they do now, with the ability to basically disable them on the user level and rely on digests.

As for the requested feature sets:

  • Event type: is new or change on any item, eg. news, issue, thread, file
    • This can be accomplished by checking the object passed during a notification method against notification rules.
    • Make it easily expandable to other plug-in objects, also allows us to tag things like version updates (so some way at runtime to find
      all objects tagged with this property easily).
    • Need a "for all other notification events" base type, to catch not implemented event types (plug-in notifications and such).
  • New: Just a new entry in any project i am involved and have view rights
  • Change: changes on Item in project i am involved, have view rights and the filter is met. If no filter is set any change will be notified.
    • This may be a bit difficult to work out, I believe notifications are fired after save, so I can't just pick up the new record flag if I'm not mistaken...
  • Notification schedule
    • Immediate: easy, no digest engine settings needed, use old observation (IIRC) system plus the additional tweaks above for filtering on rule sets.
    • Historical based digests: Task and a cronjob pulling historical changes depending on rule sets.
  • Format
    • E-mail: Well that's what we get now, we'd have to have new templates for the digest though.
    • Popups: Would require digest results to be saved after completion for easy access.
      • If the popup hooks and whatnot aren't included in the first implementation, at least include this functionality so that it'll be easy to add later.
      • Can we delete this cache after viewing it?
  • Improvment on this side will also open paths towards other information drop palces e.g mobile or web services like twitter notification, because the model only needs another notification format, e.g SMS or twitter to be added.
    • So delivery method should probably be abstracted so it can be easily extended.

The ability for short/medium/long formats aligns with my need on issue #11619, and I'm tempted to dump the time into this instead (the company I work for has expressed a lot of interest in a digest system, and changes to the notification system).

So basically create a rule that contains these:
  • Object types (Issue, Project, Wiki, Forum, Etc.)
    • Change type (New/Change).
    • Include object fields (maybe a 2nd phase feature).
  • Notification times (Immediate, Hourly, Daily, Weekly)
  • Projects this rule applies to.
  • Rule trigger delivery method.

Am I missing anything?

Maybe this weekend I'll look into posting some UI mocks.

#14 Updated by Stéphane Gourichon over 5 years ago

Hi William,

Thank you for your interest and goodwill. You're right, better make clear what to do, and since you ask for feedback, here is some.

Notifications of activity and notification of reminders

Redmine content represents things to be done, some with deadlines.
Notifying of activity is good but insufficient. E.g. some issues without activity are abnormal and should be notified, too.

So we need two types of notifications:

  • Notification of activity is what we had first in mind. It's needed to make users aware of changes.
  • Notification of state, a.k.a. reminders is also needed in some contexts to remind users of some need still unmet.

Does it make sense to handle both in what you're offering ?

The latter may actually be easier to code than the former (just look at objects state, no need to look for transitions/events). What's your opinion ?

Reminders: current status

Current approach for reminders in Redmine has little flexibility, that would be greatly enhanced by what you sketched here. What you wrote above, if applied on reminders, will benefit right away.

Since you care for well-targeted generality, I think there's a need for more than just "send reminder emails about issues due in the next days.". That is a particular query. Here are a few examples:
  • to be notified more often about some other projects
  • some specific issues (by importance, deadline, etc) should be sent on a separate list
  • be notified about unassigned issues
  • be notified about issues with close deadline and no activity for a moment (that one would be more difficult I guess, so we can leave it out for now).

A simple solution to implement these needs and more, plus intuitive for the user, would be for the user to just create whatever query he likes in the "issues" tab (or pick one query made available by the administrator) and have an option that the result is sent to him following some schedule (by the way, it's done that way in Jira).

The examples above would translate (no one-to-one mapping between list above and list below) into :
  • query 1 : projects foo and bar, what is due by me in following week, send every week
  • query 2 : projects x and y, what is due by my team in following month, send every week
  • query 3 : all projects, what is due in following week and marked high importance
  • query 4 : all projects, what is unassigned and due in following week, send every day

The last example shows that not only "assigned to me" is a relevant example of notification, so (1) creating a query then (2) asking to ne notified about it, is relevant.

Shared thought about this might enrich the approach for notification of activity, too, but let's stay focused.

Both notifications seen as fundamentally the same

  • Notification of state (reminder) is basically a query in an "issue table".
  • Notification of activity (or activity tab in Redmine) is basically a query in a "change events table".

The "change events table" is what provides data to the activity tab and, in issue view, the issue history.

A notification engine properly design might then just focus on what it's designed to do : run queries on a schedule and send the result. Separately, the ability for redmine to query on issue stats and on change events may be viewed a separate task.

I'm not sure what is the most valuable approach (that is, provide what users need with lowest UI and development cost). What do you think ?

#15 Updated by Matthew Houston almost 5 years ago

@Stéphane - Your description of a new reminder framework above is exactly what I am looking for. To put it simple, the user is able to configure a filter (or the administrator) which can then be enabled as a 'Reminder' type filter which can be set on a schedule.

Out specific requirement is for a bi-weekly reminder email the contains all due and overdue issues for certain configurable projects and trackers.

Half of this is covered by the existing reminder script, but the management here wont use it as, in their mind, it may lead to a false belief that nothing needs to be done if it doesn't show up in the reminder.

#16 Updated by Daniel Felix almost 4 years ago

#18 Updated by Toshi MARUYAMA almost 4 years ago

  • Related to Feature #8382: Notify on issue completion only added

#19 Updated by Toshi MARUYAMA almost 4 years ago

  • Duplicated by Defect #8268: Receiving mail notification per specific status added

#20 Updated by Toshi MARUYAMA almost 4 years ago

  • Related to Feature #8374: Email Notifications on Spent Time added

#21 Updated by Toshi MARUYAMA almost 4 years ago

  • Related to Feature #3069: Relative schedules, roles -> users added

#22 Updated by Toshi MARUYAMA almost 4 years ago

  • Duplicated by Feature #3857: Advanced E-mail Notifications added

#23 Updated by Y Z over 3 years ago

+1

#24 Updated by Roberto Viola over 3 years ago

+1

#25 Updated by [ Desperados ] almost 3 years ago

+1
it could be very useful

#26 Updated by Henry Auffahrt over 2 years ago

+1

#27 Updated by Eduard Gan over 2 years ago

+1

Our organization need the function like "If status of an issue equals XXX then send email goes to user YYY"
I need a function by using which every assignee can switch special custom status on the issue and "The Big Boss" will be reminded by email.

Or better idea - to make available customizable "email" action in special email place(where aggregated all email admin functional) in redmine, that would be triggered on issue status or update, оr comment, or custom field state, or expiration.

Simply there should be the way to operatively inform someone by email while you in the process of resolving issue.

#28 Updated by Fabrício Noda over 1 year ago

+1

#29 Updated by Alfredo Bonilla over 1 year ago

+1

#30 Updated by Fabrizio Sebastiani over 1 year ago

+1

#32 Updated by Gokul NK over 1 year ago

+1

#33 Updated by Denny Weinberg over 1 year ago

+1

#34 Updated by Eduard Schmidt over 1 year ago

+1
a function where different roles get notification when status didnt change after a period of hours

#35 Updated by Toshi MARUYAMA over 1 year ago

  • Related to Feature #23565: As a project admin I need to be able to set notification rules at the project level based on a role. added

#36 Updated by Konstantin Agranom 8 months ago

+1

#37 Updated by Yar n 6 months ago

+1

#38 Updated by Moritz Scholz 10 days ago

+1 Would be unbelievable helpful and increase productivity.

Also available in: Atom PDF