<h2>Lifecycle Event Best Practices and Performance Expectations</h2><br/><div style="overflow-x:auto"><p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;">This document shares best practices to optimize performance and avoid runtime issues when creating a lifecycle event, based on our own testing and experience working with customers. It’s not meant to cover every consideration and should not be treated as a sole source of implementation guidance.</p> <h1 style="margin: 12pt 0in 0in; break-after: avoid; font-size: 16pt; font-family: 'Calibri Light', sans-serif; color: #2f5496; font-weight: normal;">General Best Practices for Lifecycle Events</h1> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Do NOT modify a lifecycle event in production if there are ongoing cases without thorough testing.</strong> The changes to the configuration could cause unexpected consequences to the ongoing cases depending on where they are in their workflow. If the changes are needed in production and there are ongoing cases, we recommend: <ol style="list-style-type: lower-alpha; margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Cloning prod and test the existing LE cases to see if they have any issues.</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Cloning the lifecycle event and creating new cases with the new lifecycle event. <strong>Note</strong>: this approach will have more overhead/maintenance (e.g., customers might need to update or create a new HR service to point to the new LE type). Also, this will not satisfy the customer use case if the customer wants the new config changes to be applied to the existing/ongoing cases.</li></ol> </li></ol> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Do not modify the subject person on a lifecycle event case once it is already triggered</strong> or create a lifecycle event case without a subject person. This is likely to cause issues in the workflow.</li></ol> <p style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong> </strong></p> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;" start="2"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Use caution if trying to modify the evaluation interval to trigger activity sets more immediately</strong> – we recommend using a <a style="color: #0563c1; text-decoration: underline;" href="https://www.servicenow.com/docs/bundle/xanadu-employee-service-management/page/product/human-resources/task/le-eval-interval-business-rule.html" target="_blank" rel="noopener noreferrer">Conditional Business Rule</a> to more immediately trigger an activity set. If this should happen the Resume Case button can help to re-execute the processing so the cancelled activities can be reprocessed. Here is a table of calculations based on the Max Activity Count that gives an idea of when a customer can expect the parallel processing threads to be consumed. <img style="display: block; margin-left: auto; margin-right: auto;" src="/sys_attachment.do?sys_id=ad575fa187fdd29057288519dabb35d0" alt="" width="360" height="122" /></li></ol> <p style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;"> </p> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;" start="3"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>When to use rescind vs. cancel</strong>? Rescind should be used when you need to retract an already started process. For instance, if you have a new hire who has already begun their onboarding process but then decides not to join the organization, you can rescind their lifecycle event case. This will trigger the roll back process that you have configured for the lifecycle event to ensure the right activities are triggered (or not triggered) as a result. You can cancel a case when you do not need any counter processes to trigger.</li></ol> <p style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;"> </p> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;" start="4"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>When to use resume:</strong> There are 2 uses for ‘Resuming’ a case: <ol style="list-style-type: lower-alpha; margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">When an LE activity set is errored out or cancelled. You will need to fix the error and then you can resume the case. <ol style="list-style-type: lower-roman; margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 12px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>You should not manually error out an activity set to apply changes and resume the workflow</strong>. This will cause dangling workflow context where the old context is still in active state using computational resources. </li><li style="margin: 0in 0in 0in 12px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Important: You can also reference the work notes in the case to see why a case may have errored. </strong></li></ol> </li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">When you suspend a case and are ready to ‘resume’ it. For more information on when to use suspend/resume feature, please reference <a style="color: #0563c1; text-decoration: underline;" href="https://docs.servicenow.com/csh?topicname=t_SuspendAndResumeAnHRCase.html&version=latest">this doc.</a></li></ol> </li></ol> <p style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;"> </p> <ol style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;" start="5"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Use caution when specifying the Lifecycle Event type on the HR Service being used to trigger the Lifecycle Event.</strong> The type should not contain the same Lifecycle Event type being called by an activity in the same Lifecycle Event. This will cause an endless loop. The Lifecycle Event type is used to trigger the selected lifecycle event. If you are trying to create an HR case from a Lifecycle Event, you should use a normal HR service.</li></ol> <p style="text-align: center; margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><img src="/sys_attachment.do?sys_id=a9575fa187fdd29057288519dabb35d7" width="353" height="168" border="0" /></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 16.0pt; font-family: 'Calibri Light', sans-serif; color: #2f5496;"> </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 16.0pt; font-family: 'Calibri Light', sans-serif; color: #2f5496;">Best Practices for Performance in Lifecycle Events</span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>See </strong><a style="color: #0563c1; text-decoration: underline;" href="/kb?id=kb_article_view&sysparm_article=KB1117350"><strong>troubleshooting best practice FAQ here</strong></a></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>TLDR: The more complex the underlying workflow, the slower the load times of activities for employees and managers in the Lifecycle Event Request page (hrm_ticket_page). </strong> </p> <ul style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Note: This document does not pertain to the new Journey Designer UI, only the Request page (hrm_ticket_page). The Journey page will have better performance. If you are interested in learning more about Journey designer</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">For more information on how you can migrate your Lifecycle Events employee experience to leverage the new Journey designer, reference this <a style="color: #0563c1; text-decoration: underline;" href="https://www.servicenow.com/community/hrsd-blog/migrating-from-lifecycle-events-to-journey-designer/ba-p/2354912">Community post</a> and referenced migration guide.</li></ul> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong> </strong></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>What is the max number of activities that should be included in an activity set?</strong></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;">There is no one answer as performance will be a function of number of activities and complexity of activities. We would recommend 10 activities or less triggering at one time, whether part of an activity set or an activity container. The more you have triggering at one time, the worse the performance. If the activities are not complex, you can exceed this. The following factors can have further performance implications:</p> <ul style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">An employee is completing a task that will trigger an HR service (catalog request, etc.), the more complex the request, the slower the performance.</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Triggering multiple activity sets at one time (the more background calls, the slower the performance)</li></ul> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong> </strong></p> <p style="margin: 0in 0in 0in 0.25in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Customer Example: </strong></p> <p style="margin: 0in 0in 0in 0.25in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Customer 1: </strong>Customer has 42 activities across 5 activity sets</p> <ul style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 24px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Case creation: </strong>90-120 seconds</li><li style="margin: 0in 0in 0in 24px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Activity load time for employee:</strong> 7-10 seconds from completing one activity to reloading the next</li></ul> <h1 style="margin: 12pt 0in 0in; break-after: avoid; font-size: 16pt; font-family: 'Calibri Light', sans-serif; color: #2f5496; font-weight: normal;">Performance Metrics</h1> <h4 style="margin: 2pt 0in 0in; break-after: avoid; font-size: 12pt; font-family: 'Calibri Light', sans-serif; color: #2f5496; font-weight: normal; font-style: italic;">This document covers the following UI:</h4> <ul style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong>Request page</strong> (specifically for lifecycle events)</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Note: The Requests UI has slower performance than the new Journey page available with Journey designer (Tokyo+).</li></ul> <p style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;"> </p> <h2 style="margin: 2pt 0in 0in; break-after: avoid; font-size: 13pt; font-family: 'Calibri Light', sans-serif; color: #2f5496; font-weight: normal;">Performance Metrics for a Lifecycle case on Requests Page:</h2> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;">Below are performance expectations related to Lifecycle events. We have made improvements in and delivered the updates in the following releases:</p> <ul style="margin-bottom: 0in; margin-top: 0px; list-style-position: inside;"><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Employee Center Core 27.1.1 store release</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Utah family: performance improvements from reducing complexity of record watchers on the Request page in desktop and mobile</li><li style="margin: 0in 0in 0in 0px; font-size: 12pt; font-family: 'Times New Roman', serif;">Vancouver family: We will continue to make performance improvements based on further investigation.</li></ul> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;">Note: These updates will improve the performance on the Request page.</p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"> </p> <h2 style="margin: 2pt 0in 0in; break-after: avoid; font-size: 13pt; font-family: 'Calibri Light', sans-serif; color: #2f5496; font-weight: normal;">Performance Metrics for a Lifecycle case on Requests Page:</h2> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;">We ran performance metrics to understand the time it takes when one activity is completed to load the next activity. </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;"> </span></p> <h3 style="margin: 2pt 0in 0in; break-after: avoid; font-size: 12pt; font-family: 'Calibri Light', sans-serif; color: #1f3763; font-weight: normal;">Observations:</h3> <ul style="margin-top: 0in; margin-bottom: 0in; list-style-position: inside;" type="disc"><li style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;">Activities of type ‘e-signature’, ‘mark as complete’, and learning will take 4-10 seconds to load the next activities.</li><li style="font-size: 11pt; font-family: Calibri, sans-serif;">Activities that are submitting subsequent cases or requests will take longer, 10-15 seconds. <ul style="margin-top: 0in; margin-bottom: 0in; list-style-position: inside;" type="circle"><li style="font-size: 11pt; font-family: Calibri, sans-serif;">Examples: Submitting IT requests, order guides, submitting record producers (complete profile information will submit a record producer, create a case and close it out)</li></ul> </li><li style="font-size: 11pt; font-family: Calibri, sans-serif;">When the last activity in an activity set is complete, it will start to load the next activity and thus have slower load times (see data below)</li></ul> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;"> </span></strong></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-family: 'Calibri Light', sans-serif; color: #1f3763;">Performance Data – Demo Data</span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;">These results are using are New Hire Onboarding Demo Data. </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;">Note: Time to complete is in seconds. </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt; font-family: Calibri, sans-serif; color: black;"> </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 13.0pt; font-family: 'Calibri Light', sans-serif; color: #2f5496;"><img src="/sys_attachment.do?sys_id=f5579fa187fdd29057288519dabb3573" width="361" height="251" border="0" /></span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 13.0pt; font-family: 'Calibri Light', sans-serif; color: #2f5496;"> </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-family: 'Calibri Light', sans-serif; color: #1f3763;">Performance Data – 50 activities in an activity set</span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;">These results are using ‘mark as complete’ and ‘watch video’ type activities </span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><a id="_anchor_1" style="color: #0563c1; text-decoration: underline;" href="#_msocom_1" name="_msoanchor_1">[NH1]</a> </span></span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><a id="_anchor_2" style="color: #0563c1; text-decoration: underline;" href="#_msocom_2" name="_msoanchor_2">[NH2]</a> </span></span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><a id="_anchor_3" style="color: #0563c1; text-decoration: underline;" href="#_msocom_3" name="_msoanchor_3">[LC3]</a> </span></span><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;">to show that less complex task types (even when in larger volume) will have lower load times.</span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-family: 'Calibri Light', sans-serif; color: #1f3763;"><img src="/sys_attachment.do?sys_id=a5575fa187fdd29057288519dabb35d4" alt="" width="235" height="418" /></span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;"> </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;"> </span></p> <p style="margin: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: Calibri, sans-serif; color: black;"> </span></p> <div> <div> <div id="_com_1" class="msocomtxt"></div> </div> </div></div>