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 ?
Original Message:
Sent: Tue February 04, 2025 04:40 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Tue February 04, 2025 03:11 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Tue February 04, 2025 02:41 AM
From: Andrey Ilinskiy
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Mon February 03, 2025 10:30 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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:
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
.
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
Original Message:
Sent: Mon February 03, 2025 05:44 AM
From: Andrey Ilinskiy
Subject: Dynamic Escalation Matrix Based on SLA Percentages
- Working/not working time is considered when SLA is applied. So, after SLA is applied you have calculated target dates.
- 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
Original Message:
Sent: Sun February 02, 2025 07:41 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Thu January 30, 2025 08:20 AM
From: Andrey Ilinskiy
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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 ticketuidFROM ( 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
Original Message:
Sent: Thu January 30, 2025 03:35 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Thu January 30, 2025 02:24 AM
From: Andrew Jeffery
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
Original Message:
Sent: Wed January 29, 2025 07:24 AM
From: Mostafa Mosaad
Subject: Dynamic Escalation Matrix Based on SLA Percentages
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
------------------------------