IIQ Workitem Remainders and Escalations

I’m testing workitem remainders use case with below mention scenarios

Day 1 Assgn workitem to approval owner
Day 3,5,7,9 send Remainders to approver
if approver not take any action above cases workitem escalate to approvers manager
Day 11 Escalation nofification approvers manager
day 13,15 send remainders to manager if not take any action above cases
day 17 Approval Expiration and cancellation notification sent.

I’m trying this without is this possible to do without script…
I’m trying this below

<Approval name="ManagerForm" owner="ref:manager" return="managerComments" send="requester,phoneType,jobType,requesterComments">
      <Arg name="workItemDescription" value="Approval cell phone: $(requester)"/>
      <Arg name="workItemRequester" value="ref:requester"/>
      <Arg name="workItemNotificationTemplate" value="TRNG-CellPhoneManagerApproval"/>
      <Arg name="workItemType" value="Form"/>
      <Arg name="requesterName" value="ref:requester"/>
      <Arg name="launcher" value="ref:launcher"/>
      <Arg name="workItemReminderTemplate" value="Work Item Reminder"/>
      <Arg name="workItemEscalationTemplate" value="Work Item Escalation"/>
      <Arg name="workItemHoursTillEscalation" value="48"/>
      <Arg name="workItemHoursBetweenReminders" value="48"/>
      <Arg name="workItemMaxReminders" value="4"/>
      <Arg name="workItemEscalationRule" value="Work Item Escalate to Active Manager Rule"/>
      <Arg name="workItemEscalationHours" value="48"/>
      <Arg name="workItemEscalationReminderInterval" value="48"/>
      <Arg name="workItemEscalationMaxReminders" value="2"/>
      <Arg name="workItemExpirationHours" value="144"/>
      <Arg name="workItemExpirationTemplate" value="Work Item Assignment Removal"/>
      <Arg name="workItemPriority" value="Normal"/>
      <Arg name="workItemPriority" value="Normal"/>
      <Form name="ManagerForm">
        <Attributes>
          <Map>
            <entry key="pageTitle" value="ManagerForm"/>
          </Map>
        </Attributes>
        <Section label="Instructions" name="userInstructions" type="text">
          <Field name="instructions" value="The following employee has requested a cell phone."/>
          <Field displayName="Employee Name:" name="requester"/>
          <Field displayName="Phone Type:" name="phoneType"/>
          <Field displayName="Job Function:" name="jobType"/>
          <Field displayName="Comments:" name="requesterComments"/>
        </Section>
        <Section label="Comments">
          <Field displayName="Comments" displayType="textarea" name="managerComments"/>
        </Section>
        <Button action="next" label="Approve Request"/>
        <Button action="back" label="Reject Request"/>
      </Form>
</Approval>
From [email protected] Mon Oct 28 10:17:29 2024
Date: Mon, 28 Oct 2024 10:17:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_18_2051747248.1730128649195"
X-Mailer: smptsend

------=_Part_18_2051747248.1730128649195
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your first reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 10:08:50 AM CDT, was due on 11/9/24 9:08:51 AM CST.

This work item will escalate after 3 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_18_2051747248.1730128649195--

From [email protected] Mon Oct 28 10:18:29 2024
Date: Mon, 28 Oct 2024 10:18:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work item assigned: Approval cell phone: Carl.Foster
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_20_862686440.1730128709324"
X-Mailer: smptsend

------=_Part_20_862686440.1730128709324
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

 Carl.Foster  has assigned the following work item to you: Approval cell phone: Carl.Foster.
    
------=_Part_20_862686440.1730128709324--

From [email protected] Mon Oct 28 10:18:29 2024
Date: Mon, 28 Oct 2024 10:18:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_22_1901934981.1730128709345"
X-Mailer: smptsend

------=_Part_22_1901934981.1730128709345
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your third reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 7:44:51 AM CDT, was due on 11/10/24 6:44:51 AM CST.

This work item will escalate after 3 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_22_1901934981.1730128709345--

From [email protected] Mon Oct 28 10:18:29 2024
Date: Mon, 28 Oct 2024 10:18:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_24_2038901620.1730128709362"
X-Mailer: smptsend

------=_Part_24_2038901620.1730128709362
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your second reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 10:08:50 AM CDT, was due on 11/11/24 9:08:51 AM CST.

This work item will escalate after 2 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_24_2038901620.1730128709362--

From [email protected] Mon Oct 28 10:19:29 2024
Date: Mon, 28 Oct 2024 10:19:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work item assigned: Approval cell phone: Carl.Foster
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_26_374001572.1730128769469"
X-Mailer: smptsend

------=_Part_26_374001572.1730128769469
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

 Carl.Foster  has assigned the following work item to you: Approval cell phone: Carl.Foster.
    
------=_Part_26_374001572.1730128769469--

From [email protected] Mon Oct 28 10:19:29 2024
Date: Mon, 28 Oct 2024 10:19:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_28_1542393404.1730128769615"
X-Mailer: smptsend

------=_Part_28_1542393404.1730128769615
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your fourth reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 7:44:51 AM CDT, was due on 11/12/24 6:44:51 AM CST.

This work item will escalate after 2 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_28_1542393404.1730128769615--

From [email protected] Mon Oct 28 10:19:29 2024
Date: Mon, 28 Oct 2024 10:19:29 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_30_1652751176.1730128769647"
X-Mailer: smptsend

------=_Part_30_1652751176.1730128769647
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your third reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 10:08:50 AM CDT, was due on 11/13/24 9:08:51 AM CST.

This work item will escalate after 1 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_30_1652751176.1730128769647--

From [email protected] Mon Oct 28 10:20:19 2024
Date: Mon, 28 Oct 2024 10:20:19 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work item assigned: Approval cell phone: Carl.Foster
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_32_1637340070.1730128819764"
X-Mailer: smptsend

------=_Part_32_1637340070.1730128819764
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

 Carl.Foster  has assigned the following work item to you: Approval cell phone: Carl.Foster.
    
------=_Part_32_1637340070.1730128819764--

From [email protected] Mon Oct 28 10:20:19 2024
Date: Mon, 28 Oct 2024 10:20:19 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_34_363380150.1730128819799"
X-Mailer: smptsend

------=_Part_34_363380150.1730128819799
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your fifth reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 7:44:51 AM CDT, was due on 11/14/24 6:44:51 AM CST.

This work item will escalate after 1 more reminder(s).

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_34_363380150.1730128819799--

From [email protected] Mon Oct 28 10:20:19 2024
Date: Mon, 28 Oct 2024 10:20:19 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_36_1762917855.1730128819825"
X-Mailer: smptsend

------=_Part_36_1762917855.1730128819825
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your fourth reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 10:08:50 AM CDT, was due on 11/15/24 9:08:51 AM CST.

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_36_1762917855.1730128819825--

From [email protected] Mon Oct 28 10:21:10 2024
Date: Mon, 28 Oct 2024 10:21:10 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work item assigned: Approval cell phone: Carl.Foster
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_38_72356259.1730128870017"
X-Mailer: smptsend

------=_Part_38_72356259.1730128870017
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

 Carl.Foster  has assigned the following work item to you: Approval cell phone: Carl.Foster.
    
------=_Part_38_72356259.1730128870017--

From [email protected] Mon Oct 28 10:21:10 2024
Date: Mon, 28 Oct 2024 10:21:10 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Work Item Reminder
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_40_2129242836.1730128870049"
X-Mailer: smptsend

------=_Part_40_2129242836.1730128870049
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is your sixth reminder that the work item Approval cell phone: Carl.Foster requested by $requester.displayableName, and created on 10/28/24 7:44:51 AM CDT, was due on 11/16/24 6:44:51 AM CST.

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_40_2129242836.1730128870049--

From [email protected] Mon Oct 28 10:21:10 2024
Date: Mon, 28 Oct 2024 10:21:10 -0500 (CDT)
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Escalated Work Item
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_42_1272776335.1730128870087"
X-Mailer: smptsend

------=_Part_42_1272776335.1730128870087
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The work item "Approval cell phone: Carl.Foster" escalated.  It previously belonged to Debra.Wood and was due on 11/17/24 9:08:51 AM CST.

It has now been assigned to you, and its due date has been extended to 11/19/24 9:08:51 AM CST.

Please login to IdentityIQ and view your work item inbox to resolve this at your earliest convenience.
    
------=_Part_42_1272776335.1730128870087--

Hi @laxman6,

You have to specify the hours between reminders, escalation and expiration. Please try with this.

<Approval name="ManagerForm" owner="ref:manager" return="managerComments" send="requester,phoneType,jobType,requesterComments">
    <Arg name="workItemDescription" value="Approval cell phone: $(requester)"/>
    <Arg name="workItemRequester" value="ref:requester"/>
    <Arg name="workItemNotificationTemplate" value="TRNG-CellPhoneManagerApproval"/>
    <Arg name="workItemType" value="Form"/>
    <Arg name="requesterName" value="ref:requester"/>
    <Arg name="launcher" value="ref:launcher"/>
    
    <!-- Reminder settings -->
    <Arg name="workItemReminderTemplate" value="Work Item Reminder"/>
    <Arg name="workItemHoursBetweenReminders" value="48"/> <!-- Reminders sent every 2 days -->
    <Arg name="workItemMaxReminders" value="4"/> <!-- Total of 4 reminders -->
    
    <!-- Escalation settings -->
    <Arg name="workItemEscalationTemplate" value="Work Item Escalation"/>
    <Arg name="workItemEscalationRule" value="Work Item Escalate to Active Manager Rule"/>
    <Arg name="workItemHoursTillEscalation" value="216"/> <!-- Escalate after 9 days (216 hours) -->
    <Arg name="workItemEscalationHours" value="48"/> <!-- Escalation reminder interval -->
    <Arg name="workItemEscalationMaxReminders" value="2"/> <!-- 2 reminders to the manager -->
    
    <!-- Expiration settings -->
    <Arg name="workItemExpirationHours" value="408"/> <!-- Expiration after 17 days (408 hours) -->
    <Arg name="workItemExpirationTemplate" value="Work Item Assignment Removal"/>
    
    <!-- Priority settings -->
    <Arg name="workItemPriority" value="Normal"/>
</Approval>

@Arun-Kumar Thank for your response

I’m encountering an issue where the Check Expire Workitem task is repeatedly sending email reminders and escalations every time it runs, creating a loop of duplicate emails. It appears as though the system isn’t recognizing previously sent notifications and is triggering them again on each task execution.

@laxman6
Please check your work item xml once it should have the count of email reminders being sent and also check your workflow case associated to check the actual configurations.

@iamksatish
My Question is when:

  • I’m setting below variable values workItemHoursTillEscalation in workitem wakeup time showing workItemHoursTillEscalation this variable date. attached below

  • I’m setting workItemMaxReminders is 4 but in workitem xml showing escalationMaxReminders=“4”

  <Variable initializer="Work Item Escalation Description Testing $(launcher)" input="true" name="workItemDescription">
    <Description>String "template" that will be used as the workitem description.</Description>
  </Variable>
  <Variable initializer="Work Item Escalation" input="true" name="workItemEscalationTemplate">
    <Description>The email template that should be used when sending out reminders.</Description>
  </Variable>
  <Variable initializer="48" input="true" name="workItemHoursBetweenReminders">
    <Description>The number of hours to wait between sending reminders to approvers.</Description>
  </Variable>
  <Variable initializer="264" input="true" name="workItemHoursTillEscalation">
    <Description>The number of hours to wait until an approval should be escalated.</Description>
  </Variable>
  <Variable initializer="Normal" input="true" name="workItemPriority">
    <Description>
      The String version of a WorkItem.Priority. This variable is
      used to set the priority on all of the workitems generated
      as part of this workflow and also set on the IdentityRequest
      object.
    </Description>
  </Variable>
  <Variable initializer="Work Item Reminder" input="true" name="workItemReminderTemplate">
    <Description>The email template that should be used when sending out reminders.</Description>
  </Variable>
  <Variable initializer="Work Item Escalate to Active Manager Rule" input="true" name="workItemEscalationRule">
    <Description>The rule used to assign a new ownder during escalation.</Description>
  </Variable>
  <Variable initializer="4" input="true" name="workItemMaxReminders">
    <Description>The maximum number of reminder emails that will be sent before we begin the escalation process.</Description>
  </Variable>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE WorkItem PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<WorkItem created="1730376087167" expiration="1731844887166" handler="sailpoint.api.Workflower" id="c0a8ca0192c3180a8192e273b67f214a" identityRequestId="0000001050" level="Normal" modified="1730376087291" name="0000004248" renderer="lcmWorkItemRenderer.xhtml" targetClass="sailpoint.object.Identity" targetId="c0a800c18e9e16b6818ea7e9865043af" targetName="Adam Kennedy" type="Approval" wakeUpDate="1731326487275">
  <Attributes>
    <Map>
      <entry key="approvalMode" value="parallel"/>
      <entry key="approvalScheme" value="owner"/>
      <entry key="approvalSet">
        <value>
          <ApprovalSet>
            <ApprovalItem application="Active Directory Application" assignmentId="d23e1859bf7344efb259bd9cb01f8347" displayValue="ESHIAM\Administrators" id="dcc7491919304a76982c1169df16ac28" name="memberOf" nativeIdentity="CN=Adam Kennedynew,OU=People,OU=Demo,DC=Eshiam,DC=com" operation="Add" value="CN=Administrators,CN=Builtin,DC=Eshiam,DC=com">
              <Attributes>
                <Map>
                  <entry key="attachmentConfigList"/>
                  <entry key="attachments"/>
                  <entry key="flow" value="AccessRequest"/>
                  <entry key="id" value="c0a8011191cd1cba8191d61adb760729"/>
                  <entry key="interface" value="LCM"/>
                  <entry key="operation" value="EntitlementAdd"/>
                </Map>
              </Attributes>
            </ApprovalItem>
          </ApprovalSet>
        </value>
      </entry>
      <entry key="approvalSplitPoint"/>
      <entry key="clearApprovalDecisions">
        <value>
          <Boolean></Boolean>
        </value>
      </entry>
      <entry key="flow" value="AccessRequest"/>
      <entry key="identityDisplayName" value="Adam Kennedy"/>
      <entry key="identityName" value="Adam Kennedy"/>
      <entry key="identityRequestId" value="0000001050"/>
      <entry key="launcher" value="Adam Kennedy"/>
      <entry key="policyViolations"/>
      <entry key="workItemDescription" value="Work Item Escalation Description Testing"/>
      <entry key="workItemEscalationFrequency"/>
      <entry key="workItemEscalationRule" value="Work Item Escalate to Active Manager Rule"/>
      <entry key="workItemPriority">
        <value>
          <WorkItemLevel>Normal</WorkItemLevel>
        </value>
      </entry>
    </Map>
  </Attributes>
  <Description>Work Item Escalation Description Testing</Description>
  <NotifConfig>
    <NotificationConfig endDate="1731844887166" escalationEnabled="true" escalationMaxReminders="4" initialReminderMillisAfterStart="950400000" reminderFrequency="172800000" remindersEnabled="true" startDate="1730376087275">
      <EscalationEmailTemplate>
        <Reference class="sailpoint.object.EmailTemplate" id="c0a81d398c5718db818c57991d290155" name="Work Item Escalation"/>
      </EscalationEmailTemplate>
      <EscalationRule>
        <Reference class="sailpoint.object.Rule" id="c0a8ca0192c3180a8192dc4207b31bfe" name="Work Item Escalate to Active Manager Rule"/>
      </EscalationRule>
      <ReminderEmailTemplate>
        <Reference class="sailpoint.object.EmailTemplate" id="c0a81d398c5718db818c57991d1f0154" name="Work Item Reminder"/>
      </ReminderEmailTemplate>
    </NotificationConfig>
  </NotifConfig>
  <Owner>
    <Reference class="sailpoint.object.Identity" id="c0a81d398c581b0e818c58ae93610112" name="Alice Ford"/>
  </Owner>
  <Requester>
    <Reference class="sailpoint.object.Identity" id="c0a800c18e9e16b6818ea7e9865043af" name="Adam Kennedy"/>
  </Requester>
  <WorkflowCaseRef>
    <Reference class="sailpoint.object.WorkflowCase" id="c0a8ca0192c3180a8192e273b4cd2147" name="Update Identity Adam Kennedy AccessRequest - 2"/>
  </WorkflowCaseRef>
</WorkItem>

Below is my requirement…

  • Day 1: Approval assignment email
  • Day 3,5,7,9: First, Second, Third, Final reminder to approver (reminder template)
  • Day 11: Escalation notification to approver’s manager (escalation template)
  • Day 13, 15: First, Second reminder to approver’s manager (escalation and reminder template)
  • Day 17: Approval Expiration; Cancellation notification sent (Expiration Template)