Maximo

Maximo

Come for answers, stay for best practices. All we're missing is you.

 View Only
Expand all | Collapse all

Dynamic Escalation Matrix Based on SLA Percentages

  • 1.  Dynamic Escalation Matrix Based on SLA Percentages

    Posted Wed January 29, 2025 07:25 AM

    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 Thu January 30, 2025 02:12 AM

    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 Thu January 30, 2025 03:30 AM

    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 Thu January 30, 2025 02:24 AM

    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 Thu January 30, 2025 03:36 AM

    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 Thu January 30, 2025 05:27 AM

    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 Sun February 02, 2025 07:33 AM

    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 Thu January 30, 2025 08:20 AM

    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 Sun February 02, 2025 07:41 AM

    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 Mon February 03, 2025 05:45 AM
    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 Mon February 03, 2025 07:48 AM

    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
    ------------------------------



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

    Posted Mon February 03, 2025 10:30 AM

    Hello Andrey,

    So, I tried your solution today after adjusting it to my case, and it worked fine! I used a condition to check if the current timestamp has passed 25% of the SLA to trigger a specific email notification.

    However, I've encountered a new challenge:

    • If I enable repeat on the escalation point, the email will be sent every time the escalation runs while the condition is met, which I don't want.
    • If I disable repeat, and the escalation runs before the work order reaches 25% of SLA time, it will never trigger again, meaning no email will be sent.

    Possible Solutions I'm Considering:

    1. Enable Repeat but Prevent Multiple Emails

      • Add a Set Value action in the escalation that updates a field (e.g., SLA_25_NOTIFIED = 1) when the email is sent.
      • Modify the escalation query condition to exclude work orders where SLA_25_NOTIFIED = 1.
    2. Check Communication Logs (commlog)

      • Modify the escalation query to check if there's already a communication log entry for "25% SLA Email Sent".
      • This way, it won't trigger again if the email was already logged.

    What Do You Think? Do You Have a Better Approach? 



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



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

    Posted Tue February 04, 2025 02:42 AM

    You don't need to enable repeat. Escalation will run and then will select all records regarding SQL query. 

    Then it will make an action or send an email and mark that for this record this escalation (escalation point) was applied by putting a new row in ESCREPEATTRACK table. And if next time this WORKORDER will be again selected by SQL where the cause, escalation will not sent email, because it was already done. 

    Then on the next run escalation will select a new set of records, that pass for SQL query and do the same.

    So, in your case, if escalation runs before the work order reaches 25% of SLA time, then this WO will be validated and selected on the next time escalation runs, based on the scheduler (for example, every 5 minutes). 

    Pay attention here about additional validations in SQL to check workorder status to avoid sending email for already solved workorders. 



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



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

    Posted Tue February 04, 2025 03:11 AM

    Hi Andrey,

    Thank you for your detailed explanation and insights! I truly appreciate it.

    I tried testing a work order scenario where there was an 8-minute difference between the report date and target completion date, and I set the escalation to run every 1 minute. However, it ran before the work order reached 25% of its SLA time, so no notification was sent, even after the entire duration had passed.

    From my observation, it seems that if an escalation runs but doesn't meet any of the escalation points, it gets marked as executed and won't run again when the escalation point is actually reached (in my case, 2 minutes later). But I will run this test again to confirm, even though I believe I already verified it.

    I also acknowledge the importance of adding extra validations in the SQL query to prevent emails from being sent for already resolved work orders.

    Thanks again for your help!

    Best regards,



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



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

    Posted Tue February 04, 2025 04:41 AM

    Hi Andrey,

    I tested the case once again, and this time it successfully worked as designed. I now have a work order with an 8-minute difference between the two dates, and since the escalation runs every 1 minute, it initially executed without sending anything. However, on the second run (at 2 minutes, which is 25%), it sent the notification successfully.

    I'm not sure what happened in my previous test that caused the notification not to be sent, which led me to think that if the escalation ran without hitting any points, it would neglect them in subsequent runs.

    As you mentioned, there's no need to enable repeat-escalation will execute, select all records that match the SQL query, take action, and log this execution in the ESCREPEATTRACK table. If the same work order is selected again in a future run, the escalation won't send another email since it has already been marked as processed.

    I now better understand how it works, and I'll also ensure the SQL includes additional validations to avoid sending notifications for already resolved work orders.

    Thanks again for your insights and support!

    Best regards,
    Mostafa Mosaad



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



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

    Posted Wed February 05, 2025 10:10 AM

    Dears,

    For my further knowledge what is the difference between the calendar and shift on the escalation itself and the calendar and shift on the escalation points ?

    Best Regards



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