Product Information
Simple and effective way of sending anniversary alerts in Successfactors Employee central
Most of the customers have a common requirement to send alerts on employee’s service anniversary date. You could find various ways of achieving this using custom MDF, custom Jobs like Integration center, Custom Integration using HCI, etc.
In the below blog, I am going to demonstrate an approach which is not only simple and effective but does not need any custom MDF or custom process saving customer’s implementation time and cost. This approach makes use of standard EC objects and EC Jobs.
The blog makes use of following process
- EC Employment Details Standard Object
- Bizx Off Cycle Event Batch Job
- EC Alerts and Notifications Framework
Important Note: Please don’t create a support ticket in our queue, if you are modifying or changing the below best practice config. If you are modifying the rules, we cannot support your issues since this would be done by someone else and we are not sure what was the intention behind those changes
Without wasting much time, lets get started on the process
EC Employment Details Standard Object
In standard EC employment details add a new custom field named “ Number of Years” of type Long
Bizx Off Cycle Event Batch Job
Go to manage data and create new Off Cycle Event Batch as shown below
- Create a new Associated Rule to calculate number of years:
- Select Base object as Employment Details
- Off Cycle event batch user group: Create a new group if not already there. To create new go to admin center and search “Manage Off Cycle Event Batch Groups” .Sample Group is shown below
- Select filters as shown above for each anniversary year. Hire Date equal to offset 1 year, 2 years, 3 years and so on
- Set Frequency as Daily
This concludes creating off cycle batch
EC Alerts and Notifications Framework
Create an Alert Message for each year of anniversary. You can create one and use copy paste and mass import using MDF import and export. For simplicity case, I have created for two years of anniversary
Create an alert workflow to be sent to the employee
Create a new rule to send alerts and attach it to employment details
Testing
Neelesh Ben2 is an employee who was hired on 15th Sep 2018 and today is 15th Sep 2019. He has completed 1 year of service.
The sequence of jobs to be run in provisioning is very important. First, we need to run Bizx off cycle event processing Job and then EC alerts and notification Job. Make sure even if you are scheduling them daily, please schedule them in this order only.
First, run the Off cycle job
After this job, the employment details object is modified with the number of years
Now run the EC alerts and notification job on the same day (This would run automatically if scheduled )
You can now check the inbox and alerts would be created
As you can see from above, we are able to achieve this with a simple process by just using EC Objects. There is no additional complexity of Custom MDFs and custom Integration Jobs considering there is an initial limit on 25 MDF objects. This is also performance efficient since it picks up and updates only those employees who have their anniversary on that particular day instead of analyzing all the users.
I would request you to check the above and if you have any ideas to improve this blog further, please provide your valuable comments.
And also please do not forget to hit the Like button (only if you liked it ?)
Good one
Thanks Lopamudra
Hi Neelesh,
Great solution document, Thanks for sharing.
Please clarify my doubt here:
where we Associate Alert notification and workflow?
With Regards,
kaarthi
Hi Karthika,
Thanks for your feedback. The alert rule has to be attached in the Data Model/BCUI. The workflow and message are added in the alert rule itself. Please refer to screenshots in EC Alerts and Notifications Framework section
Regards
Neelesh
Thanks for reply Neelesh,
please correct me if my understanding is incorrect.
So when we give our own text in workflow need to be create notification and call that to in rule with workflow.
Or is there any alternate, assign notification to workflow then we call workflow in rule based conditions.
is it possible add different format and add greeting in notifications?
with Regards,
Karthika.
Yes, we create an alert message from manage data. Then we create a workflow with CC role (participants to whom alert is sent).
In the alert rule, we call both alert message and workflow.
Currently, there is no support of adding greeting images in the alert message.
Hope this clarifies your doubt
Regards
Neelesh
Thanks for clarification?
Hi Neelesh,
Very well-written blog !! Thanks for sharing the info.
Regards,
Rupsa
Thanks a lot Rupsa!
Hi Neelesh,
Thanks for posting. It works excellent if Offset Unit is Years but not for Months.
Do you have any suggestions?
Thanks,
Sridhar
Hi Shridar,
Thanks for the feedback. This is generally meant for service anniversaries where the period is 1,2,3 ... years and so on..Could you please elaborate on the requirement where you need this for months?
Thanks
Neelesh
Hi Neelesh,
Thanks for replying.
Sorry for the delay in my response.We have a requirement to trigger an alert and notification for specific Job Levels once Employee completes 6 Months, 1 year and 1.5 Years based on the Hire date.
So i was trying to use Off Cycle batch but it doesn't work if i keep Offset Unit as Months.
Regards,
Sridhar
Hi Sridhar,
I saw that there is a filter for months as well. I think if they support months as filter, then it should ideally work. I think you can report an incident to SAP portal.
As a workaround, you could try using days as filter. for ex: 6 months is 180 days. It might not be very accurate since FEB has 29 days once in 4 years and the number of days for 6 months can change. But nevertheless, it would work I believe
Regards
Neelesh
Hi Neelesh,
Unfortunately,days didn't work too. Thanks for your inputs.
I will raise an SAP ticket. I have something else as work around,let me know your thoughts on this.
Based on the completion of 6 Months, 1 year and 1.5 Years, the off cycle bath job updated a custom field in Employment Information portlet and then the alert triggers based on alert rules.To achieve this i cannot put a filter while creating Off Cycle Event Batch in manage data,this will check for all the users approximately the time taken to complete off cycle Job run is less than 5 minutes.
Kindly let me know, if i can use this as work around and schedule a job at mid night before alert job runs.
Thanks,
Sridhar
Hi Sridhar,
You mean to say, you will not have any filters in off-cycle event definition. This would then pick all users as you said. But in off cycle rule , you will check for these conditions if employee has completed today 6months, 1.5 years from hire date and update employment details for only those. Is this correct?
Although not an ideal solution without filters, but it should work if number of employees in company is less. If you have measured the performance which is less than 5 minutes and as long as client is fine, it should be OK I guess. (as long as your off-cycle rule only updates those employees who had completed 6 months etc today). This is a must as we do not want alerts job to pick up all employment details records.
But I would not recommend this solution for companies having say 400K users or beyond
Regards
Neelesh
Thanks Neelesh,
Please see my response below.
You mean to say, you will not have any filters in off-cycle event definition. This would then pick all users as you said. But in off cycle rule , you will check for these conditions if employee has completed today 6months, 1.5 years from hire date and update employment details for only those. Is this correct?
->Yes
They are just 3000+. I will use this solution for now and later change it.
Thanks,
Sridhar
Hi Shridhar
Just 3000 employees should not cause any issues.
Regards
Neelesh
Hello
Thanks a lot for this clear and simple procedure you have shared.
I have followed your steps but my goal is to trigger the alert based on the years of seniority date (standard field) instead of hire date.
The issue is that in Off cycle event batch>employment details I do not have the Seniority as a field filter.
Would you know how to cope with that?
Thanks again
Hi , I could see seniority start date in Employment Details in off cycle batch . Can you please check again?
Hello
Thanks so much for your quick reply.
You are right, the technical field for seniority is there.
What I am looking for there is the "originalStartDate". The client is already live and for some reason uses "originalStartDate" to capture Seniority date...
It feels like all Employment Details fields, even if standard, are not present in the batch and I wonder why and if there is a way to add it there.
Thanks a lot for your feedbacks
I have the exact same issue 🙂
I want to base it on "originalStartDate" as this might differ from the Hire Date of the records. However, this is not available in Off Cycle.
Did you find any solution, Amanda?
Hi Jonas,
I also have same requirement to trigger alert based on Original start date. Is there any solution?
Neelesh Kamath : Can you please help here.
Thanks.
We can only select filters that appear in off-cycle batch definition. If you need specific fields which are not appearing there, kindly reach out to customer community or Influence portal with product enhancement
Thanks Neelesh for quick reply.
Hi Neelesh,
Work Anniversary notifications are perfectly working on global basis.
Thanks,
Vishal Gupta
Thanks Vishal. Great to know that you were able to apply this concept in your org
Hi Neelesh,
Thank you for this helpful solution. How were you able to add paragraph breaks in the description of your Alert Messages?
Thanks,
Rachel
Hi Rachel
Thanks for the feedback. Regarding allowing multiple lines in the alert description, you can increase the length of the field in the object definition of "Alert Message" to 4000 from 255. It can then accommodate multiple lines and paragraphs.
Thanks
Neelesh
Hi Neelesh,
Thank you, this is a very useful blog.
Can you confirm if this is possible to adjust the rule so the workflow participant is notified 14 days before the anniversary?
im not sure if we can adjust the workflow effective date in the business rule to a date plus..14 days?
Many Thanks
susannah
Hi Susannah,
Thanks for the feedback..This blog is meant for sending alerts exactly on the anniversary date as this is the most common requirment. If you would like to customize it, please refer to different offsets that can be used for bizx off cycle batch in the implementation guide
"Using Batch Rules Processing with the Off Cycle Event Batch in SAP SuccessFactors"
Perhaps you can use the filter weeks (50 weeks from hire date), considering a year has 52 weeks.
Similarly you will also have to adopt the alert rule to 14 days or 50 weeks from previous hire anniversary . I have not implemented this solution myself. You will have to do a POC on the same
Thanks
Neelesh
Hello Neelesh,
I have followed the steps but did not get any alerts or emails.
Are there possible reasons for this not to work?
Thank you.
Hi,
Please follow the exact steps as described above. It should work as expected. It has worked for many.
Possible error causes
Hi Neelesh,
Is there any solution to exclude the period an employee had while outside of the company - if he has 2 employments with pause in between (terminated and rehired)
Thanks!
if it is new employment, there will be a new hire date. For new employment, the seniority will count from this new hire date. But You have another date called seniority start date in the employment details. You can store the actual seniority date here (Rehire date - no of active days in previous employment).
Then create an off-cycle batch group for a different set of employees who have been rehired. This off cycle batch would be run on seniority date rather than hire date. It will then send alerts based on anniversary of seniority start date
Make sure you Exclude such employees from the original off-cycle batch (meant for employees who are not rehired).
I guess the above might work. Please try it
Hi Neelesh,
This was one of the most effective way and thanks so much for writing this blog.
But there is tricky requirement for the customer that they want the alert 30 days before the 10th year anniversary. Could you please guide me through how we could write this particular type of scenario as a business rule? this would be really helpful for me.
Thanks
Hi Venkata,
Thanks for the feedback. Some one had a similar requirment. I have posted my idea above
"
If you would like to customize it, please refer to different offsets that can be used for bizx off cycle batch in the implementation guide
"Using Batch Rules Processing with the Off Cycle Event Batch in SAP SuccessFactors"
Perhaps you can use the filter weeks (50 weeks from hire date), considering a year has 52 weeks.
Similarly you will also have to adopt the alert rule to 14 days or 50 weeks from previous hire anniversary . I have not implemented this solution myself. You will have to do a POC on the same"
In your case too, you will have to work with weeks between hire date and 10 years (30 days before). every anniversary year has 52 weeks... So for 10 years number of weeks would be 520.. 30 days before is approx 4 weeks lesser..So it would be around 516 or 515 weeks..You can also try with other filters like days ...Thanks
can we do something similar with birthdays? i want to send by email a notification for team/department members about birthdays
Please refer to https://blogs.sap.com/2019/07/03/birthday-and-anniversary-alerts-to-the-employees-in-successfactors/ for birthdays
How do you exclude terminated employees from the off cycle event batch group
Terminated employees are inactive in the system and as long as their official email is inactive after termination, they won't receive any emails
Hi Neelesh Kamath , thanks for one more great post you made.
I got a doubt. Let's consider we want send this notification up to 5 years anniversary. In the rule you sent (Service_Anniversary_Alert), it create a date using Today's year as the year of date to be compared. I think the 5 years notification will be sent when the employee make 6, 7, 8 years and so on.
I'll try to empty the field after sent the alert in this same rule (Service_Anniversary_Alert). What do you thing about it?
thanks
Thanks for the feedback. If you just need it for 5 years, you can just maintain 5 years in off-cycle batch defintiion. It will not pick up and process remaining years
Nice document Neelesh. . however if we don't want to send alert and just create eligibility rule based upon no of years completed then reward amount should be provided. How should we proceed with this rule then? any clue
Thanks
Ritanshi
Hi Ritanshi,
The off-cycle batch which i am using updates employment details object on anniversary date. You could read this object in your eligibility rule
Thanks Neelesh. Nice blog
My requirement is to capture work anniversary and provide reward based upon no of years he completed. How should i capture this. any clue would help.
thanks
Ritanshi
Hi Neelesh,
The associated rule to calculate number of years, should be mapped where ? Directly on the field or under employment info and what should be the event Type ?
Regards,
Rahul
Hi Rahul
The associated rule is tagged to Off Cycle batch as specified in my screenshot..The off cycle batch will call this rule when filter conditions are met. You dont have to add this rule to BCUI or data model
Regards
Neelesh
Neelesh Kamath could you use this same logic and create a card on the new home page when the employee logs in to record time? Or on the time sheet when it's their b'day "Happy Bday" message pops up or "Happy Anniversary"??
Hi Neelesh,
Thanks for sharing this idea. It may be a solution that our organization can use for notifying individuals about their service anniversaries. I would suppose that the notification could be adjusted so that a notification of an employee's anniversary could be sent to the employee's manager and manager's manager?
Regards.
Danny
Hi Neelesh,
I really appreciate your blogs on these scenarios. They are very informative and helpful.
I'm confused. You mentioned two rules, but only one rule is assigned to the "trigger rules". Did you forget to add the first rule, or is it not necessary?"
Thank you
Venkat Pisati
Hi Venkat
Thanks for the feedback.
The first rule is attached to offcycle batch definition as mentioned in sreenshots
The second one is attached to onSave of Employment Details in BCUI
Hope this helps
Regards
Neelesh
Hello Neelesh,
thank you for this explanation but I have some problems with 2 client specific use cases:
CASE 1 "Reentry"
in your BR you reference to the hire date - but what if an employee leaves the company for some time and then reenters again and due to company policy we need the very first entry date of this employee. However the employment details object does not support effective dating. Does this mean the only way to solve this is to create a custom date field in job information or is there another way?
CASE 2 "Previous Employers"
For some clients there are policies which take work experience from previous employers into account. So either this anniversary date needs to be manipulated or there needs to be a more complex calculation of the years. What would be your solution proposal in that case.
Thank you so much
Kind Regards
Jan
Hi Jan,
For Case 1, I would suggest you to try with a custom field in employment details. You can also write Off Cylce batch filters with custom field now for employment details.
Case 2: Similar to 1, Store the actual date (backtrack from hire date in this company) in a custom field. And then use this custom field in offcylce batch to calculate the seniority and number of years
Best Regards
Neelesh