Daily digest email is a topic which comes up sometimes during the discussion. It can be a tricky topic when it comes to task specific emails and has multiple facets to it which I have covered in the article.
Requirement: Workforce participates in multiple business processes which assigns tasks to them and in the process sends out an task assignment or reminder notifications. It is desired that instead of receiving multiple notification, user should receive a digest email notification towards end of the day which has all the task emails collated into one single email.
Things to consider: Let me start by saying that digest email can be implemented in AgilePoint as it provides a very extensible and flexible platform to extend platform features as per your organization needs. Everything in AgilePoint engine is event driven and for every engine action an event is raised which can be subscribed by extension points and override the default engine behavior. However before I get into how it can be achieved, I would like to point out certain practical issues I see in general with concept of digest emails.
Digest email is a great concept and works specially well for social media kind of notifications where you certainly do not want a separate email to be sent to user for every message posted on Facebook, Yammer, Salesforce Chatter, Microsoft Teams etc. and just want a daily summary which user can read at one single go. This is possible as these messages are not time sensitive.
Task based emails on other hand are a special case where they are time sensitive and you most likely do not want people to be notified and start working on the task few hrs after it was assigned to them. This can cause drop of productivity in an organization. Also task can be shared between a group and if you queue these messages up and deliver at a later time, someone else might have already taken that task and completed it and user would get stale emails of work which is no longer pending.
Hence due to time sensitive and collaborative nature of task based email, usually they are not a good candidate for a digest email. You would want workforce to start performing the work as soon as it lands in their queue and be notified about it. One can always think that in that case should I do digest email for manager position and above but same challenge over there as they will be notified of something which might already been completed if we queue up emails as digest. Digest email topic has come up in past as well but every time these constraints are discussed with clients due to unique nature of task based email, they usually drop this idea so I want to make sure you keep these practical factors in mind.
Approach: Now with above mentioned practical issues with digest email, if you have a scenario where you can live with delayed notifications, I have tried to explain how it can be implemented in AgilePoint NX. I have tried to explain multiple options and you can see which one works best for you.
Option 1 – Send digest email using custom AgileConnector: As explained earlier in the email, AgilePoint is a platform and not just a tool with OOTB features. You can extend the platform whichever way you like without hitting brick wall. Everything in AgilePoint engine is event driven and for every engine action an event is raised which can be subscribed by extension points and override the default engine behavior. So in your case, I would have written a custom AgileConnector and listen to an event called DELIVER_NOTIFICATION and for every email received, drop it in a queue with columns like recipient, subject, body and cancel original email from going out. If same person received multiple emails, you would have appended a horizontal line between 2 messages and then appended subject and body and so on. Now on another thread, at a predefined interval for e.g. twice a day or end of day, it would have read these digest messages for recipient and used AgilePoint SendMail API to send it to the recipient. Platform allows you to do these kind of extensions which are specific to an orgs needs and incorporate custom business rules. Our services team would be able to help work with your team to gather requirements and even help create such service for you as a one-time development if you wish to take their help. You could make it even rule based i.e. create digest emails for emails from certain apps only, specify your own delivery intervals etc. These would be your custom rules but team can help implement it just the way you like it as far as business logic is concerned.
Option 2 – Summary Email: In this option, you would still have an AgileConnector which runs and prepares summary for the user with details such as # of high, medium and low priority tasks, overdue task etc. based on your requirement and send it to the user instead of sending mails from process. This will show them real picture of what is pending at the time email is sent instead of showing them stale data. You can ofcourse filter it down to certain apps only if you want as per your custom business rules so that mission critical processes still send emails instantaneously from process and low priority ones send summary email at the end using connector. The #’s displayed in summary email would be clickable and can take you to task list to show more details.
If however users say they want more than just summary displayed in email, you can add bit more information like the one shown below
Personally I like keeping summary emails to a minimum though.
Option 3: Mailbox Rules + Summary Email: This option might sound unusual at beginning but might be practical. In this approach, let the emails come in as they do today but your SMTP admin can setup rule to route it to specified folders in mailbox so that they are not begging for attention. This way people who are available and don’t have task can check it instantaneously else when they get a chance. This can further be improved as shown in option #2 where it is coupled with a connector which sends summary email at end of day but atleast it will show what is really pending and not out of date stats. By the way I keep using email as example but summary could have been sent using other channels like SMS, Teams, Skype for Business etc. as well.
Summary: AgilePoint engine architecture itself allows digest email concept to be designed with your custom business rules and can be done as explained above. However it would be upto your team to pick which approach works better for your organization keeping in mind the practical challenges I highlighted in the email earlier but those challenges are with digest email concept itself. AgilePoint itself does not add any constraints for such implementation and can be done within the platform architecture.