Maximo

 View Only
Expand all | Collapse all

Dynamic Escalation Matrix Based on SLA Percentages

  • 1.  Dynamic Escalation Matrix Based on SLA Percentages

    Posted 5 days ago

    Hi Everyone,

    I have a case where I manage a large number of SLAs, and I need to create an escalation matrix based on the SLA progress. Specifically, I want to trigger communications at 25%, 50%, 75%, and 100% of the SLA time. Each threshold would send a dedicated communication template to a specific role.

    My initial thought was to use a script to calculate these time difference dynamically by subtracting the Target Finish from the Reported Date and then setting up conditions that send the appropriate communication template based on the remaining time. However, I'm wondering:

    • Is there an out-of-the-box feature in IBM Maximo (or another IBM solution) that supports this kind of escalation workflow?
    • Has anyone implemented a similar escalation mechanism dynamically without using a script?
    • Would escalation records and conditions be sufficient for this, or is there a better approach?

    I'd appreciate any insights or alternative ideas you may have!

    Thanks a lot!



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------


  • 2.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 4 days ago

    Hello!

    We don't use SLAs yet in our company, but what I see, there is Escalation tab under each SLA. So I would configure it there, so I have better mapping between SLA and relevant Escalation.

    From what You have written, there is no need for script, as that calculation can be done in condition. 

    Yes, You will need to set escalation and its points (for each percentage) at each SLA, but that could be prepared in excel, and then loaded with mxloader. Yes, some tinkering will be needed to prepare it. Some custom object structure will be needed also.

    That would be my approach. I for shure don't know whole situation what You have.



    ------------------------------
    Juris Flugins
    Information systems engineer
    AS Augstsprieguma tīkls
    Rīga
    ------------------------------



  • 3.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 4 days ago

    Dear Juris ,

    Thank you for sharing your thoughts and insights on this. I appreciate your detailed response.

    I understand that some customization and preparation will be needed, but your suggestions provide a solid starting point. I'll review this further and see how we can align it with our requirements.

    Thanks again for your valuable input!

    Best regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------



  • 4.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 4 days ago

    Hi Mostafa,

    I would stick with the out of the box functionality in Service Level Agreements application that supports an Escalation. Each SLA has one Escalation and four Escalation Points.

    Don't attempt a percentage, but use hours or days. If your SLA has a calendar, then hours or days will take this into account. Percentage would only work on 24x365 and not if you have periods, like weekends, where the SLA is not counting.

    Finally, start with when the Target Date has been reached, then work out what you do if the Actual Date remains empty. If you are not getting complaints that you are sending too many emails, or it is obvious that the emails are not being ignored because actual dates are being added, then and only then, add another escalation point, but do it slowly, you don't want to have to take them out again.

    Regards Andrew



    ------------------------------
    Andrew Jeffery
    Maximo SME
    ZNAPZ b.v
    Barnstaple
    +44 (0)777 1847873
    ------------------------------



  • 5.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 4 days ago

    Dear Andrew,

    Thank you for your detailed response and valuable insights. I appreciate your perspective on using the out-of-the-box functionality and the importance of considering working periods when configuring escalations.

    You're absolutely right-if the script doesn't account for working hours, non-working days, and holidays, it could lead to incorrect calculations. Fortunately, my script will consider handling the working period, but your point is valid, and it's something I'll keep in mind to ensure accuracy.

    If I understand correctly, you're suggesting that for each of the 300 SLAs, I (manually/using excel sheet) configure four escalation points, each triggering an email based on predefined percentage-based thresholds that I calculate manually. While this approach does seem more reliable and manageable compared to scripting, I'm trying to explore a more dynamic way to automate this rather than configuring each SLA individually.

    Would you have any recommendations on making this process more scalable, or do you think the manual setup is ultimately the best approach for long-term reliability?

    Thanks again for your time and guidance!

    Best regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------



  • 6.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 4 days ago

    Hi Mostafa, 

    In the distant past, I was also a developer. I can't remember when in the 28 years of Maximo I moved to the opinion that you should use as much standard functionality as possible, before customising, but customisation should be considered last resort.

     I've had a couple of clients over the years who have said, why have you created a monster of a system that is difficult to support, answer being your team wouldn't bend their requirements and wanted everything gold plated.

    I'm travelling, so can't test this, but I would create one SLA with Escalations and test it works. Then use duplicate, and work out what needs to be amended, then determine which bits you change manually and which bits you do change through data loading. And test migration manager works as you need it.

    Unless your SLA commitments are long, ie weeks, having four escalation points per SLA is excessive, you are in danger of your audience ignoring them.

    You didn't say what Maximo and add-ons you were using, but Service Provider is different, and there are additional features in Maximo IT which uses SP, eg SLA Hold.

    Regards Andrew



    ------------------------------
    Andrew Jeffery
    Maximo SME
    ZNAPZ b.v
    Barnstaple
    +44 (0)777 1847873
    ------------------------------



  • 7.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted yesterday

    Dear Andrew,

    I sincerely appreciate your valuable response and insights regarding the escalation setup. Your recommendation worked perfectly-I implemented one escalation per Service Level Agreement (SLA) with four escalation points at 25%, 50%, 75%, and 100% of the SLA time, each triggering a separate email. The setup fully respects the client's calendar and shifts, ensuring proper escalation timing.

    However, I currently have around 250 SLAs, which means that at any given time, I would have 250 escalations running each hour, and since each escalation has four escalation points, this results in a large number of concurrent escalations. Wouldn't this create a significant performance overhead, considering that all 250 escalations could be running at the same time, each executing hourly? Additionally, each escalation has four separate triggers, further increasing the execution load, and the system would need to process a high volume of escalations continuously.

    Given the above, I was thinking of a more optimized and dynamic way to handle escalations that would reduce the operational and performance impact. Do you have any recommendations on alternative approaches to handle a large number of escalations more efficiently? Perhaps a batch processing method or a way to consolidate multiple SLAs under fewer escalations?

    Looking forward to your thoughts on this!

    Best regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------



  • 8.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 3 days ago

    If the question is only about email, you can use a standard T-SQL query in escalation, which will calculate how much time past in percentage. 

    You will create 1 or 3 escalations, where using the "where query" you will determinate requeried object and sent email.

    For example (I put it that way to show how you can calculate. You can use CAST or just multiply by 100, depends on what accuracy you need)

    ticketuid in 
    (SELECT
    	ticketuid
    FROM
    	(
    	SELECT
    		ticketuid,
    		currentMin * 100 / targetMin * 100 / 100 prc1,
    		CAST (currentMin AS decimal(10,
    		2)) / CAST (targetMin AS decimal(10,
    		2)) * 100 prc2
    	FROM
    		(
    		SELECT
    			ticketuid,
    			TIMESTAMPDIFF(4, TARGETFINISH - REPORTDATE) targetMin,
    			TIMESTAMPDIFF(4, CURRENT_TIMESTAMP - REPORTDATE) currentMin
    		FROM
    			SR
    		ORDER BY
    			TICKETUID DESC) a) WHERE prc2 > 25)

    Using CONTEMPLATE and roles you can dynamically select email recipients also. Just build the correct where clause for the relationship to select a specified preson or email. 

    SLA application and SlAys as well SLAs themself exist for target dates calculations based on different conditions (SITE, Commodity, Service and etc). 

    Escalations to second-line support, or email notifications in Maximo can be merged in one instance of Escalation object. This is "automation" stands for :-) 



    ------------------------------
    Andrey Ilinskiy
    Handz.on
    https://www.on.de/
    München
    ------------------------------



  • 9.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted yesterday

    Dear Andrey,

    Thank you for sharing your approach to handling escalations dynamically using a T-SQL query. I wanted to clarify since this method relies on calculating elapsed time in percentage, does it fully align with how SLA target dates are handled in Maximo, particularly when dealing with non-working hours or shift-based schedules?

    Looking forward to your thoughts.

    Best regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------



  • 10.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 2 hours ago
    1. Working/not working time is considered when SLA is applied. So, after SLA is applied you have calculated target dates.
    2. Only one thing you should remember, is that SLAHOLD can adjust these target dates after a ticket is back to work. So, maybe you need to add some filtering of status or any other regarding business processes. But this will happen if escalation points are created from the SLA application. So, doesn't matter. Or if you will give a real example, it will be easier for me to answer )



    ------------------------------
    Andrey Ilinskiy
    Handz.on
    https://www.on.de/
    München
    ------------------------------



  • 11.  RE: Dynamic Escalation Matrix Based on SLA Percentages

    Posted 15 minutes ago

    Thanks, Andrey! I understand your point about working vs. non-working time affecting SLA calculations and how SLAHOLD can adjust target dates when a ticket resumes work. However, in my case:

    • SLAs apply to Work Orders, not Service Requests.
    • The system only sets a Target Finish date based on the SLA.
    • SLAHOLD is not available on this MAS 8.11 instance, so SLA time runs continuously without pausing.

    To track SLA progression, I'm setting up one escalation that runs on all open Work Orders, with four escalation points to check when a WO has passed 25%, 50%, 75%, and 100% of its SLA time. Each escalation point sends a separate email notification.

    Here's the query condition I'm using for each escalation point:

    25% of SLA Time Passed:

    sql
    WHERE (TIMESTAMPDIFF(MINUTE, reportdate, NOW()) * 100.0) / (TIMESTAMPDIFF(MINUTE, reportdate, targetfinish)) > 25

    50%, 75%, and 100% follow the same logic with adjusted percentages.

    Since SLAHOLD is not in use, I don't need to account for pauses, but I am filtering only active Work Orders (WAPPR, APPR, INPRG) to avoid unnecessary escalations.

    Would love to hear your thoughts-does this approach look solid based on what you've seen? 



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------