Skip to Content
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

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


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 ?)


You must be Logged on to comment or reply to a post.
    • 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



      • 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,



        • 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



    • 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?



  • 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.




    • 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



  • 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.









    • 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



  • 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?


    They are just 3000+. I will use this solution for now and later change it.




  • 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

    • /
      • 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?