Press "Enter" to skip to content

How to configure Service Level Agreement(SLA) in Pega?

53

Introduction

  • Service Level Agreement main objective is to process any time bound requirements in the application.

Imagine, Timesheet application. If an employee fails to submit timesheet by end of month (April 30th), then he/she has to be sent with a reminder email. If he/she didn’t submit after 5th of next month, then we should send an email copy reporting Manager.

In Pega, we can have a separate case generated for those who didn’t submit Timesheet and we have have an SLA running for the case.

SLA can be configured to send an email to the employee.

We will discuss about it in detail later in this post.

What is a SLA?

SLA – Service Level Agreement.

  • SLA is supported by a Pega OOTB agent – ServiceLevelEvents under Pega-ProCom agent.

  • We can configure the SLA on an entire flow or for a particular assignment.
  • SLAs can update the urgencies as well as executing the Escalation activities (like sending Email).

How do we configure a SLA?

  • SLA rule comes under Process category.

Create a new SLA rule.

  • There is single main tab – General

General Tab

In this, we configure the urgency calculation as well as configure the escalation activities.

Start of Service Level

Initial Urgency – We can set a numeric value between 0-99.

What do you mean by urgency?

  • Urgency can be associated with assignment as well as work item.
  • Numeric value can be set from 0-99 range.
  • In most of the application, we use urgency to prioritize the unresolved cases.
  • So based on urgency, we can sort the worklist or workbasket and also we can use GetNextWork to pull the work item with highest urgency.
  • Normally for every assignment the urgency is default to 10.

Imagine, if you configure this SLA in an assignment shape with Initial urgency as 10. Then the total urgency will be Default urgency (10) + Initial Urgency (10) = 20

Assignment Ready – There are 3 values which you can configure for assignment ready.

Let’s first discuss, “Why do we need this field?”

Imagine in an Organization, a particular division – say call center division works from 9 p.m to 6 a.m

That means user can start working on their case only from 9 p.m. In such cases, we can start the SLA from the start time not the assignment creation time.

Assignments can be created and assigned to the user by mid-day, say 11 am. But no one is there to work and some business don’t want to start the SLA from the assignment creation time.

Hope you get it 🙂

Now, let’s get to the options available:

  1. Immediately – As soon as the assignment is created.
  2. Dynamically defined on a property – We can refer a property and set the time prior.
  3. Time delay – You can introduce a time delay (some constant values).

Service Level Definitions
Before checking the configuration, let’s know about the basics of the definitions.

There are 3 definitions available in a Service level:

  1. Goal
  2. Deadline
  3. Passed deadline

Imagine I got a postpaid connection and need to pay the bill by 25th of every month.
The service providers have some business policies like, on 25th they will send me an e-mail along with post mail.
If I didn’t pay my bill by 27th, then they will send a reminder again.
If I still didn’t pay the bill by 30th, then they will start sending a reminder mail in 3 days’ time interval by adding Rs.100 each day as a fine amount.

Let us solve this in Pega. Imagine, here we create a work item by 24th of every month for all the connections. The work item will get resolved after bill payment.

Calculate Service levels

We know Assignment ready field is the starting point for SLA calculation.

a) Interval from when assignment is ready

For the postpaid bill scenario, I set the goal date as 1 day next to work item creation.

Work item creation date – 24th,so goal date will be 25th. You can also restrict it to business days.

b) Set to the value of a property – You can set the date value to the property dynamically prior.

We can use some property like BillGoalDate with values as 25th of that month.

Goal Date – 25th

Escalation activity

As per our requirement, on 25th they need to send a reminder mail to the user (me).

So goal date, we can configure the SLA as Notify Party. You can also use custom Run activity to solve your business requirement.

You also have an option to increase the urgency of the case on goal date.

Now we have configured GOAL.

Deadline – 27th

Note: Deadline date time interval is calculated from assignment ready date. Not from goal date.

So work item creation date is 24th and deadline(second reminder) on 27th, so you can configure deadline as 3 days. Increase urgency value and execute notify party escalation activity.

Passed Deadline – 30th – It means 3 days after our deadline 27th.

Note: Passed deadline date time interval is calculated from deadline date. So it’s 3 days.

You have an option to repeat the same escalation process for n number of times.

Here, in our example it is for 20 times. So by 3rd , 6th,… of next month the same passed deadline escalation events  occur.

What are the types of SLA?

The was by which we use SLA, it is of two types:

  1. Assignment SLA
  2. Work item SLA

What is an Assignment level SLA?

  • We can specify time bound process for particular assignments.

Throughout the application, I will explain with a simple leave application.

Step 1: Create a SLA rule.

We set Initial urgency to 10 & Assignment ready – Immediately.

For testing purpose, I set the goal as 10 seconds and Urgency will be increased by 20.

Now, SLA is ready.

Step 2: Create a sample flow rule with an assignment shape.

Step 3: Configure the SLA in the assignment shape.

You will see a clock symbol in the assignment shape. Remember, whenever you see a clock symbol in the assignment shape, it means SLA is configured.

Remember to route the assignment to your Operator ID and configure my work to see your worklist.

Step 4: Run the flow rule. Flow rests on assignment shape, where it expects user input.

Assignment urgency is calculated using the Declare Expression,

pxUrgencyAssign = @min(100,@max(0, .pxUrgencyWork  + .pxUrgencySLA + .pxUrgencyAdjust)))

Min max is for restricting the value within 100. Cool 🙂

pxUrgencyWork – Work SLA (Default 10)

pxUrgencySLA – What we set from SLA

pxUrgencyAdjust – Manually, we can adjust SLA

We set SLA Initial urgency is 10.

So Urgency should be 20 at the time of work item creation.

Refresh the worklist in sometime, the SLA agent should run and set the Urgency to 40.

Yes, it is 🙂

Let us now trace and check what is happening behind the scene.

Step 5: Trace the flow run.

  • You can see ‘DefineSLATimes’ activity which sets the SLA value to Assign-Worklist class.

You can verify the assignment SLA values in PC_ASSIGN_WorkList table as well as in the clipboard newassignpage. You can find other values too. Like when is the goal date, deadline date, etc.,.

  • You can see Assign-.AddAssign activity getting called and declare expression getting fired.

AddAssign activity is responsible for queuing the Goal event to SLA Agent.

The standard SLA agent activity does the rest in Updating SLA, based on Goal/ Deadline and executing escalation activities.

What is a Work-item level SLA?

  • We can configure an SLA to run on the complete workitem life cycle.

Imagine, you are in a repair application. The business is like whatever repair request comes in, it should be solved in 5 days. Irrespective of how many people work, it is basically like tracking the entire life cycle. You can implement a work item SLA to send reminder mail/Advance flow/Auto approve.

We will try to use up the same Leave request flow as an example.

Step 1: Create a SLA – Use the same SLA.

Step 2: Create a Flow rule – Use the same flow 😀

Step 3: In the process tab of the flow rule, add the Service Level agreement.

Actually pySLAName is the property configured in the SLA rule form.

You can dynamically update the value ‘pySLAName in the pyDefault data transform too, at the time of work item creation.

Step 4: Run the flow rule and check the work item urgency.

pxUrgencyWork = @min(100,@max(0,.pxUrgencyWorkClass + .pyUrgencyWorkAdjust + .pxUrgencyWorkSLA + .pxUrgencyPartyTotal + .pxUrgencyWorkStageSLA +.pxUrgencyWorkStepSLA))

pxUrgencyWorkClass  – Default work SLA – 10

pyUrgencyWorkAdjust – You can manually adjust the SLA by setting the value here.

pxUrgencyWorkSLA  – Urgency configured in the work item SLA – 10

pxUrgencyPartyTotal  – Urgency included for each party with the application -0

Based on the flow type, pxUrgencyWorkStageSLA, pxUrgencyWorkStepSLA are assigned.

Since it is Internal process flow, pxUrgencyWorkStepSLA = 10

Let’s wait for goal time and check the case urgency and status.

The Urgency is increased.

Let us now trace and check, what is happening behind the scene.

Step 5: Trace the flow run.

SaveNew – > DefineSLATimes -> OverallSLA (Flow rule)

OverAllSLA Flow

It is nothing but a parallel flow to the workitem with single assignment shape.

If you see the assignment shape, then SLA is configured. Now it leads to the assignment SLA.

There is a router activity, which routes the assignment to workbasket default@org.com

You may get a question, “So what happens to this assignment? Who will process it?”

Yes, the OverallSLA flow will end, when the main process flow ends.

Tracer snippet after resolving the primary, leave request flow. Overall SLA flow ends with a ticket.

How to configure SLA in a Case?

From the case designer, you can open the case settings tab.

You can configure the goal and deadline time here.

On saving the form, a SLA rule name ‘pyCaseTypeDefault’ is created in that class.

In the case designer, you select parent case or top level case as start time.

Then the SLA rule assignment ready is configured dynamically with a property.

Finally we are at the end of SLA post 🙂

What do we need to remember while configuring SLA rule?

  • SLA processing depends on Standard Pega-ProCom agent – ProcessSLAEvents (Discussed in detail in ‘Requestor types‘ (http://myknowpega.com/2017/05/13/requestor-types/) post).
  • Remember SLA agent needs lock to update the workitem. If lock is acquired by any other user, then SLA processing will get delayed.
  • You can adjust the SLA times dynamically. Pega provides OOTB flowaction ‘pyAdjustSLA’, ‘pyAdjustSLATimes’. Check out these.
  • You can delegate the SLA rule to business users.
  1. Saleem Saleem

    Hi Prem, Nice article.

    Generally we use OOTB locations (pyAdjustSLA,pyAdjustSLATimes) on assignment to change or for doing any modifications on existing SLA on same Assignment.

    1.Can we change the SLA values by directly opening the Queue item which is created on Assignment in newAssignment Page?

    2. Is there any OOTBs to set SLA on Assignment via activities by knowing the Assignment key instead of directly setting on Assignment shape?

  2. Naresh Naresh

    It’s very important information about SLA …Thks for sharing

    • Premkumar G Premkumar G

      You are welcome, Naresh. Thank you so much for your appreciation. Please subscribe and stay tuned for more posts.

  3. Brahmesh Brahmesh

    What happens if assignment SLA his configured for more days than work level SLA. Let’s say..process should be completed in 5 days but one of the assignment (exceptional) is configured for 7 days. Will process be resolved on 6th day? Is there any mechanism that pega internally sync up both work level and Assignment SLA.

    • Premkumar G Premkumar G

      Hi Brahmesh,
      There will not be any problem. Assuming you configured the flow level SLA to end the flow by 5th day, then the flow will end, which mean all assignments will end.

  4. Kumar Kumar

    Hi Prem, Once we create an SLA, how does system/Agent(Pega-Procom) knows that the SLA is created. Is there any Access configuration that has to be done??

    • Premkumar G Premkumar G

      Hi Kumar, SLA should be tagged to either assignment or a flow.

      Let’s take assignments, you can set SLA rule in the assignment. Now when you flow reach the assignment shape, Pega OOTB queues an entry to standard agent to process the item. It all happens at the back end. Pega takes care of it well. 😊

  5. shaik shaik

    hi prem,

    i have a small question. can we call a when rule in decision table insted of if- else.

    • Premkumar G Premkumar G

      Hi Shaik, Yes you can. when rule returns either true or false. In the expression builder, you can use a function ‘Callwhen’ to evaluate a when rule.

  6. Saheli Saheli

    Hi,
    How to configure month in goal/ deadline/ passed deadline in SLA?

  7. Vikas Vikas

    Hi Prem,

    As per your explanation, we have 2 types of SLA – Assignment Level, Work Item Level SLA. Are Work Item Level SLA and CASE level SLA are same? what do you mean by default urgency, is that urgency included always while calculating work-item urgency?

    • Premkumar G Premkumar G

      Hi Vikas, Sorry for that confusion. the two types of SLA should be assignment level and flow level.
      After some severe modification of Case designer, we can call three types of SLA including Case level SLA.

      Default Urgency – Yes it is set default by OOTB data transform

  8. ramachandra ramachandra

    hi prem,
    what is the difference between flow level SLA and Work Object SLA. How to configure both.

    • Premkumar G Premkumar G

      Flow level SLA – applicable in the flow life cycle. Once the flow ends, the SLA ends.
      Work Object / Case level SLA. You can configure an SLA that runs in the Complete case life cycle. If the case is resolved, then the SLA ends

  9. Surendra Surendra

    Hi,
    do we have chance to update the SLA during run time ( I mean once we created the work item in between the process) can we update the SLA priority or Goal, Deadline, and Passed Deadline values ?

  10. Chhatrapal Chhatrapal

    Hi Prem,

    If I have Case level SLA defined and there is another SLA at 2nd stage level is also defined.

    Now i have to reset the urgency value set by Case level SLA when flow reaches to 2nd Stage. Is it possible? Please suggest.

  11. Garima Garima

    Hi,

    Can you please let me know the following
    Which property in Assignment class holds the name of the SLA.
    If we have both flow and assignment level SLA, which one executes when the assignment is reached.

  12. Krishna Krishna

    Hai Prem

    What is the diff b/w assignment SLA and Work item SLA?

  13. Hari Prasad Hari Prasad

    Hi Prem,

    In my project, we are using SLA to retry service calls. SLA starts whenever service call fails. There is no urgency mentioned and we are not considering that at all. We are just using the SLA to retry service call. Mentioned the Goal as 5mins, Deadline as 20 mins and Passed dead line as 1 for 10 intervals.

    My doubt is:
    After Goal, Deadline and Passed Deadline are reached, what exactly SLA agent do? Please confirm.

    • Premkumar G Premkumar G

      It does nothing 🙂 . It just execute the escalation activities on Goal, Deadline, Passed deadline. Once the time limits are crossed no queue entries for SLA agents. so it does nothing 🙂

  14. Daud Daud

    Great explanation….appreciated!! Thanks 🙂

    • Premkumar G Premkumar G

      Thank you so much, Daud. You are most welcome. 🙂

  15. Ravikiran Ravikiran

    Thanks Prem for your effort in explaining PRPC to the folks.

    • Premkumar G Premkumar G

      You are welcome, Ravikiran. 🙂

  16. Ankit Ankit

    Hi Prem,

    A great platform created by you to learn PEGA and surely within couple of years all PDN queries will be routed to you (if you continue this practice).

    I have a query regarding case level SLA and assignment level SLA.
    Let us assume that overall SLA of a case expire at the same time as the assignment level SLA for a case. Which escalation activity will be triggered first (Assignment level or the Case level).
    Please explain.

    Let me know if you need more info about the question.

    Thanks,
    Ankit

    • Premkumar G Premkumar G

      Hi Ankit,
      SLA escalation activities are triggered by SLA agent ( standard agent). The standard agent process the queue entries in the order they got queued once the current date has crossed the minimum date time for processing ( goal time, deadline or passed deadline) So whatever queued first will get processed first.

      In the above example, if you meant goal level escalation activity, then ideally case level goal escalation gets queued before any assignment SLA. So it will be processed first.

  17. Ankit Ankit

    Thanks Prem for the explanation.

    • Premkumar G Premkumar G

      You are welcome, Ankit. 🙂

  18. Ankit Ankit

    Hi Prem,

    Do we have different work baskets / queue for case level and assignment level SLA once they have been queued or all work objects reside in the same work basket?

    Thanks
    Ankit

    • Premkumar G Premkumar G

      Hi Ankit, I think you are bit confused. There is no workbasket concept in agent queues. The queue entries resides in Sys_queue_Defautentry ( or other sys_queue tables) table. they are just instances of sys-queue classes.

  19. Ankit Ankit

    Thanks Prem. It’s clear now.

    • Premkumar G Premkumar G

      You are welcome. 🙂

  20. Lakshmi S Lakshmi S

    Hey Prem,

    Nice Expalnation!!

    I have gone through almost all the posts, Its very helpful.

    • Premkumar G Premkumar G

      Hello Lakshmi,
      Thank you so much for your appreciation. 🙂

  21. Lakshmi S Lakshmi S

    Hi Prem,

    Could you please explain how to stop SLA.

  22. Jayant Jayant

    Hii ,
    My requirement is, If the Passed deadline Limit is 2 so it will get triggered 2 time , so here i want to send 2 different Emails to a initiator , i can able to send one direct using action Notify Party, but how i send different email for second event (i.e when second time passed deadline is got triggered)

    Thanks,
    Jayant

  23. Lakshmi Lakshmi

    HI Prem,

    Could you please let me know how to stop SLA?

  24. Satya Satya

    In my project we have assignment and work object SLA but as per customer requirement purpose l, customer want to organization level SLA( RESPONSE TIME SLA), where we are created this organization SLA? please help us

  25. narayana narayana

    Hi Prem, I take this opportunity to thank you first for helping so many pega professionals with your post, I am wondering if you can help me in understanding
    “Get The Most Urgency” concept

  26. Krishna Krishna

    Hi Prem,

    Thanks for the article.
    As you mentioned above, SLA processing gets delayed if the lock is acquired by user on any particular case. How long the delay would be or this SLA results in any error state after multiple tries?

  27. Amala Amala

    Hi Prem,

    Thanks for the detailed explanation.

    How to set passed deadline execution indefinitely until an assignment completed. We tried to leave a field blank and it is not working. We are using 7.1.7.

    Thanks
    Amala

  28. Naveen Naveen

    Great Explanation !! Thank you Prem.

  29. Seshu Seshu

    Hi Prem,
    Thanks for the user friendly explanations for many topics.
    Requesting a brief conclusion on
    1.Assignment level SLA,
    2. Flow level SLA,
    3. Work Object level SLA and
    4. Case level SLA
    as i’m little bit confused with the terminology.
    Don’t mind if my question is not understandable.

  30. Mukkram Mukkram

    How to trace an SLA, please explain step wise.
    Difference between SLA and Agent tracing

  31. Sunil Sunil

    Hi Prem,

    I have a doubt if i set dead line time as today 4pm and goal time as 2morow 4pm which once will trigger first?

  32. pradeep pradeep

    Hi Prem,

    Nice article.
    i have one escalating activity which executes at deadlinetime and passed deadlinetime.
    But requirement is different at deadlinetime and passed deadline time . Is there any condition check to know it has reached deadline time/passed deadline time.

  33. Veera Reddy Kesari Veera Reddy Kesari

    Nice Expalnation Prem.

    • Premkumar G Premkumar G

      Thank you, Veera. 🙂

  34. Suman Suman

    Hi Prem,

    Nice Explanation !!
    It is very helpful 🙂

    Can you please post how to configure Correspondence rule. it would be helpful for me.

    Thanks in Advance.

    • Premkumar G Premkumar G

      Hello Suman,

      Thank you so much !! Glad to hear that you found it useful.
      Yeah I’ll post about it soon. Stay tuned ! 🙂

  35. Krishna Krishna

    Hi Prem,

    On assignment I have configured the SLA. For some of the cases pyassignmentstatus changing to Error:Agent Work Security.

    I suspect Service Level Event agent(pega procom) is not able to process because of agent security settings.Need your suggestions..

  36. venkatesh venkatesh

    Hi Prem it was really nice explanation i have one dought if SLA we configure if it works are not working how to know were we trace SLA

  37. Raveendra Raveendra

    Hi
    Cant we use queue for agent method for advanced agent.
    And what is the relation ship b/w standard agent and queue for agent method.
    And also is it possible to have a standard agent without using the queue for agent method.

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!