- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello Everyone,
I am working on lifecycle event onboarding for new hire. I have created lifecycle event names onboarding and add activity set to it names Prepare, Day 1, Week 1 and so on. Prepare activity set triggers immediately when the HR case is created and Day 1 activity set triggers when it matches the employee start date mention in HR profile form. I have to send an email notification to manager 5 business days before day 1 activity set is triggered in the lifecycle event.
Please help me the ways to set "when to send" condition while creating a notification so that emails triggers on correct time.
Note: Table used while creating notification is sn_hr_le_case
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @chetanasand
ServiceNow notifications don’t have a native “X business days before” condition, but you can achieve this in a few ways:
To send email by ServiceNow, you need configure an event and link in your notification
After that use a Scheduled Job to trigger this days
- Create a Scheduled Job that runs daily (e.g., at midnight).
- In the script, query sn_hr_le_case records for onboarding lifecycle events:
- Check the Employee Start Date (u_start_date or profile reference field).
- Compare with today + 5 business days (you can use GlideDateTime.addBusinessDaysLocalTime(-5) if you’re on a recent release).
- If match found, trigger your email notification by:
- Calling gs.eventQueue("your.custom.event", caseGR, managerSysId, "");
- Configure a notification listening to that event.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @chetanasand
ServiceNow notifications don’t have a native “X business days before” condition, but you can achieve this in a few ways:
To send email by ServiceNow, you need configure an event and link in your notification
After that use a Scheduled Job to trigger this days
- Create a Scheduled Job that runs daily (e.g., at midnight).
- In the script, query sn_hr_le_case records for onboarding lifecycle events:
- Check the Employee Start Date (u_start_date or profile reference field).
- Compare with today + 5 business days (you can use GlideDateTime.addBusinessDaysLocalTime(-5) if you’re on a recent release).
- If match found, trigger your email notification by:
- Calling gs.eventQueue("your.custom.event", caseGR, managerSysId, "");
- Configure a notification listening to that event.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @chetanasand,
for scheduled triggering, you will need to change the notification to be sent when an event is fired or via flow
/* If my response wasn’t a total disaster ↙️ ⭐ drop a Kudos or Accept as Solution ✅ ↘️ Cheers! */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @chetanasand
You need to use either a Scheduled Job or a Scheduled Flow to trigger notifications 5 business days before Day 1. Run the job daily and iterate over the records. If a record meets the condition, trigger the notification event. Try using the script below
function isTodayFiveBusinessDaysBefore(dueDateStr) {
var dueDate = new GlideDateTime(dueDateStr);
var today = new GlideDateTime();
var tempDate = new GlideDateTime(dueDateStr);
var businessDaysCount = 0;
while (businessDaysCount < 5) {
tempDate.addDaysLocalTime(-1); // subtract 1 day
var dayOfWeek = parseInt(tempDate.getDayOfWeekLocalTime(), 10); // 1 = Monday, 7 = Sunday
if (dayOfWeek >= 1 && dayOfWeek <= 5) {
businessDaysCount++;
}
}
// Compare the calculated date with today's date
return tempDate.getDate().getValue() == today.getDate().getValue();
}
var dueDate = '2025-08-25 00:00:00';
var isMatch = isTodayFiveBusinessDaysBefore(dueDate);
gs.info("Is today 5 business days before due date? " + isMatch);
Regards,
Siva