SLA and Task Escalation

Hi All, I have to develop a microflow in which one of the step is a task to be performed by the user, I want to add an SLA time to the task and when it exceeds that time automatically this task should be escalated to the manager and an alert must be sent to the concerned persons. Please suggest me how to achieve this in mendix.
3 answers

That's a difficult question. At it's simplest you can set a trigger time in a microflow when you create the task (such as add 8 hours to the current date/time. Use an escalation to trigger notifications when that time is reached (have the escalation set an enumeration or boolean field on the task record, then have before commit microflows on your task entity to detect this change and send out notifications using an email module or other mechanisms. You can hard code who to send the notifications to, etc.

However, it can be a lot more complcated than that, depending on your requirements. For example, does the target time vary depending on the type of task? Do you need to take account of working hours and holidays at that location to set the correct target? Do the people to notify change depending on the task type? Does the urgency or criticality of the task affect the target or who to notify. Do you need to send out multiple notifications at different stages in the lifecycle of the task? If you have complex requirements like these, you probably do not want to try to hard-code these rules, but make them data-driven so that they can be managed as staff or requirements change, etc. This can produce quite a complicated module.

As an example of the type of structure you might have to set up, here is a screen capture of part of my SLA module - there is also a second linked module where working hours, timezones and holidays are defined for each location. In this image, the fields in the SLAFields entity are those that are added to the task or other entity (perhaps through inheritance).


The workflow in this module creates entries in the EscalationsPending entity, linked to the actual task or other entity, and my escalation runs against this table, rather than multiple escalations running against several different ticket entities. The Escalations entity defines basic targets (repond in 4 hours, complete in six hours etc.), but the Event entity defines other events that can trigger notifications, and the ActorsToNotify entity controls who to notify (by role, such as task owner, assignee, requester etc.).

How complex this needs to be depends entirely on your requirements, but I hope this gives you some insight to some of the areas that might need to be addressed.


For simplicity's sake I'm going to assume that you've already managed adding a createdBy date to your task, as well as linking it to an SLA object that has a particular duration.

That leaves the count-down feature as your major hurdle. The easiest way to manage this is with a scheduled event. Simply trigger a microflow every night (or every hour, depending on how precise you want to be) that retrieves all your tasks and checks whether or not their SLA duration has expired.

Notifying the relevant parties is then simply a matter of creating a new set of messages or e-mails, depending on the preferred method of notification.


Hi Sudarsan,

In mendix, we are having Scheduled Task, using this we can do an escalation. The other way is, In app store, mendix provided email module, using this I think you can get your job done.