Human Capital Management Blogs by Members
Gain valuable knowledge and tips on SAP SuccessFactors HCM suite and human capital management market from member blog posts. Share your insights with a post of your own.
cancel
Showing results for 
Search instead for 
Did you mean: 
EduMartins
Contributor

Introduction


I recently spoke with a customer who is exploring options to manage their Employee Referral Program in SuccessFactors. However, the current Employee Referral functionality available in Recruiting only allows you to track and report the potential Amount employees can receive if the candidate referred by them is hired, and the candidate status in the process.

The problem is customers need a solution that allows the tracking of Candidate Referrals, but that also integrates with Employee Central to capture the payment dates and details of the Referral Bonuses for their employees. So currently customers (if using the tool to track Employee Referral) must generate reports and manually manage and control these payments.

In addition to the requirement above, customers also need the flexibility in how these Referral Payments are recorded in Employee Central. For example, it is very common that a Referral Bonus will only be paid to an employee 6 months after the hire date of the referred candidate and only if both are still employed and active in the organization.

Solution Details


In this blog post I’ll share a solution I created to handle the Employee Referral process end-to-end in SuccessFactors, from the Referral in Recruiting all the way to the Referral Bonus payment in Employee Central.

Terminology used in this blog post:
RCM = SuccessFactors Recruiting Management
EC = SuccessFactors Employee Central
ONB = SuccessFactors Onboarding
ECP = Employee Central Payroll

The overall solution design is represented in the picture below:


Overall Recruit-To-Hire process (solution steps in yellow)


This solution has 3 major steps:

  1. Employee Referral recording and tracking in RCM or 3rd Party software

  2. Referral Bonus Details and Payment Schedule in EC

  3. Payment Recording in One-Time Payments section in EC


I’m not covering Payroll processing in this blog post, but after we have these payments recorded in EC they can be processed and paid via the standard employee data integrations with ECP or SAP HCM on-premise, or extracted via APIs or reports to integrate with 3rd party payroll systems.

1 – Employee Referral recording and tracking in RCM or 3rd Party software


For this solution I'm using the Employee Referral functionality in RCM, however this part can also be performed using a 3rd party solution and integrated directly with the object described in the next step.

In RCM the employee referral tracking uses one standard field in the Job Requisition to capture the Referral Amount, this field is required if you want to use the Referral Tracking dashboard under the Careers tab for internal employees. I’ll not cover this configuration in here but details can be found in the RCM implementation guide and in the KBA - 2081998 - Employee Referral - Recruiting Management.


ERP Amount - standard Requisition field


In addition to the field above I created a custom field with a picklist to indicate what is the payment schedule and conditions (number of payments and dates).


Picklist and fields can be adjust as per customers requirements


With this, after the above requisition is approved and posted, an internal employee can add a referral using the “Refer Friend to Job” in the Job Search page.


Refer Candidate via Job Search


Or using the “Add Referral” option in the Referral Tracking page.


Add a Referral


And the Referral Tracking becomes visible using the Amount provided in the Requisition and reflecting the Application status of the referred candidate.


Referral Tracking in RCM - ERP Amount and Application Status



2 – Referral Bonus Details and Payment Schedule in EC


The next step is to integrate the Referral Bonus payment details from RCM into EC so we can manage and schedule the payments amounts, dates and also check the required conditions before processing as pay components in the One-Time Payments section.

I created a custom MDF object to store the Referral and Candidate data from Recruiting, the New Hire information from Onboarding and EC and payment schedule (dates and amounts). Using a MDF object gives us the advantage of making this solution easy to integrate with other sources for the Referral and Candidate information, for example if you are using a 3rd party ATS you can integrate the required data into this MDF object using API and/or file uploads.


MDF Object - Employee Referrals Tracking


Object Definition (Parent):


Parent Object Configuration - Extension Center


Object Definition (Child):


Child Object Configuration - to capture each Referral Details


To integrate the data from RCM into the Employee Referrals Tracking MDF object I’m using Integration Center, where a scheduled job runs daily (it can be more frequent if needed), creates the record and populate some fields.


Integration Center – EE Referral – Create Items


This Integration Center job only insert the new referral information if the referred candidate has Application Status equal to “Hired”


Integration Center Job – Filter only Hired Candidates


The Integration Center job populates the MDF object with data from the CandidateEmployeeReferral API, and the key IDs (e.g. Candidate Id and Requisition Id) so we can match the candidate information with the employee information using business rules.


Fields mapped from RCM to EE Referral MDF object


Other fields are populated via Business Rules, the new hire ONB information is populated via a look-up on the Process Trigger and Process objects created for all candidates when their ONB process is initiated and maintained.


Business Rule – Lookup Employee ONB data (Save Rule Trigger)


Fields populated by the above rule:


To make this solution possible to integrate with other ATS or Employee Referral systems, I added the Source of Record field, so the rules to populate/update fields based on SF ONB objects only trigger if Source of Record is equal to “ONB”. This way if you want to populate this object from another system via API or even manually or via file import, you just need to select a different Source of Record and bypass these rules (picklist options can be expanded).


Source of Record field and Picklist


And lastly another Business Rule takes care of updating the Payment Amounts and Dates, based on the selected Pay Schedule on the Requisition or directly in the object. In this example I’m using the candidate Hire Date as the reference for the payment dates, however the rule can be easily adjusted to reflect the customer business requirement.


Business Rule to populate Payment Details (Save and Change Rule Triggers)


Fields populated by the above rule, in this example 2 payments, first with 50% of the amount on the candidate’s Hire Date and another after 6 months for the other 50%:



3 – Payment Recording in One-Time Payments section in EC


The final step is to publish the One-Time Payment in EC when the scheduled payment date becomes effective, having the payment recorded as a Pay Component in EC means that the payment can be sent (via integration or reports) and processed in payroll.

Pre-requisites in EC:

  • A non-recurring Pay Component must exist in the system (example below)


  • Assign the Pay Component to all countries, if you are restricting via association with the Country/Region object

  • Grant permission in RBP to view/edit the above pay component


The publishing process happens via Integration Center, this integration runs daily (or more frequently if needed) and creates the corresponding One-Time Payments based on the Payment dates in the MDF object.


Integration Center - Mapping MDF to One-Time Payments


However, we also need to confirm the payment is still valid according to the Employee Referral Program company rules. In my business example here I’m considering that both Employee and Referred Candidate (now also an employee), must still be active in the Organization on the effective date of payments.


Both Employee and Referred Candidate must be Active on the Effective date of payment


After the Integration runs, we can see the pay component published in the One-Time Payment section of the Employee and ready to be processed by payroll.


And in 6 months, if the above conditions are still true, then the second payment will also be published accordingly.

Additional Options/Information


If you want to make the Employee Referral custom MDF object visible on the People Profile, so employees and/or managers can see it. This is easily achievable by creating a screen UI for the object and assigning it to a sub-section in the People Profile configuration.


Then on the Profile Page:


Data can be viewed and maintained directly via People Profile


Also, like any other MDF object, this data can also be used in Reports and Dashboards. This way Managers, HR and Payroll can see what Referral Bonus payments are planned.

Conclusion


The above described solution represents an easy way to integrate Employee Referral from RCM to EC, still allowing the flexibility to integrate with 3rd party ATS systems, or even manual data entering.

Automation via Integration Center allows for systematic data validation before payments are recorded in EC, ensuring compliance with the company policies.

And the MDF object/rules configuration also gives the flexibility to adjust and meet the different business requirements, to accommodate additional payment options as schedules as needed.

Hope you enjoyed this blog post and feel free to reach out to me if you have any questions.
30 Comments
former_member18168
Product and Topic Expert
Product and Topic Expert
Congrats Eduardo, very detailed and nicely explained solution.
EduMartins
Contributor
0 Kudos
Thanks Guilherme!
SyambabuAllu
Contributor
Hi Eduardo,

Nice blog..with detailed information.

Thank you,

Syam
EduMartins
Contributor
0 Kudos
Thanks Syam!
RinkyKarthik
Product and Topic Expert
Product and Topic Expert
Hi Eduardo,

 

Nice use case, explanation of configuration and very helpful feature. Thanks for sharing.

 

Rinky
EduMartins
Contributor
0 Kudos
Thanks Rinky, I'm glad you enjoyed it 🙂
former_member90116
Discoverer
Hi Eduardo,

Very detailed and useful business case. Hope you are doing well.

 

Regards

Gaurav
EduMartins
Contributor
0 Kudos
Thanks Gaurav, it's all good here hope you're doing well too.
EH_SF
Product and Topic Expert
Product and Topic Expert
Hi Eduardo,
Great blog post!

Everything is very well explained, and the approach is very clever. Given that I mostly work with RCM, that was something that I always wondered, to transfer this information. It always felt somehow disconnected from the Referrer or Referee when on EC.

Thanks for sharing!
EduMartins
Contributor
0 Kudos
Thanks Eduardo!
Karthikk_P
Explorer
Thank you for sharing this Eduardo. It's very detailed and well explained.

 

 
EduMartins
Contributor
0 Kudos
Thanks Karthikk!
kalyanib
Active Participant
Thank you so much Eduardo. I was looking for this for a long time!
EduMartins
Contributor
0 Kudos
That's great Kalyani! Thank you!
eddsouza
Discoverer
Thank you Eduardo.  Very  detailed explanation.  I am currently working on this and this is very helpful.

Thanks,

Edociana
EduMartins
Contributor
0 Kudos
Awesome! Thanks Edociana!
former_member34552
Discoverer
Thank you Eduardo, this is very detailed and so helpful, awsome post!

But i have a question:

You are mapping Issue date of One time payment with Pay Date 1 of custom MDF in the integration, in the case we have two pay date, why the system can understand and create One time payment record base the information of Pay date 2 (Issue Date and Amount)?

Can you help me explaining more details in this case?

Thank you so much,

Duy Tran
Hi x-emartins ,

 

Thank you so much, It's very helpful.

 

Please i have 2 questions, First to map "Employee Referral Tracking_Effective Date" field i map it to "Created Date" in the CandidateEmployeeReferral , but i face an issue with the date type, I change from test view  the date type to be date instead of date time but still have an error when i run preview record, Is the mapping field correct ?

The second question the Source of Record field , what is the field of mapping , how it behave ?

 

Kind Regards,

Mostafa Keshtari
EduMartins
Contributor
0 Kudos
Hi Mostafa,

In my mapping I'm using the Last Modified Date form the CandidateEmployeeReferral, that is a datetime data type.


The Source of Record field is a custom field I created to control if you want to populate other fields in the custom mdf object using business rules or manually input, in my example basically if you want it to populate with data from ONB objects.

Thanks,

Eduardo

 
0 Kudos
Hi Eduardo,

I appreciate your assist, Kindly how i can change the Field type to be Date, Because on my screenshot it showing Date and time.


Thank you for your support,

Mostafa
ThangNguyen
Newcomer
0 Kudos
Hi Diego,

Please help me to show the mapping between Application Status from custom MDF and Application Status from Employee Referral? I tried many mappings but cannot find the correct mapping.

Thank you so much,

Duy
former_member732244
Discoverer
0 Kudos
Hi Eduardo,

I cannot sync the correct Application Status acording your screenshot, can you share more details how can you sync the correct Application Status for each candidate?

Thank you so much,

Duy
Foram_Gandhi
Explorer
0 Kudos
Hi Eduardo Martins,

Thank you for detailed blog.

I am working on this solution and facing issues while save EE Referral and Employee Referral Tracking Objects in Configure Object definition.

Can you please provide full screenshots of both the objects including association?

While adding EE referral child object in association with Parent Object Employee Referral Tracking, its giving me below error if Association Type is Composite:

Error: Object definition cust_EE_Referrals_Tracking has a composite association cust_EE_Referrals with destination object cust_EE_Referrals. An object used as destination object must have effective dating property as From Parent.

Below is the Association I am using:

 


I did try to change effective dating as From Parent in Child Object but then I am getting another error in saving child object which is EE Referral:

Error: Invalid subject user field externalCode of object definition cust_EE_Referrals was found. The subject user field should come from an object definition that is not of from parent type.

 

Can you please help me resolving this issue?

Thanks,

Foram Gandhi

 

 
Foram_Gandhi
Explorer
0 Kudos
Hi Eduardo Martins,

Can you please respond to my query stated above?

Thanks,

Foram Gandhi
PBhandari1
Explorer
0 Kudos
Hi x-emartins,

Thanks for the detailed blog.

We have 3 payment dates and amounts in custom MDF object, You are mapping Issue date of One time payment with Pay Date 1 of custom MDF and Amount of One time payment with Payment1 of custom MDF in the integration, now how to pass payment 2 and payment 3 on Pay date 2 and Pay date 3 in one time Payment?

Thanks,

Poushali Bhandari
fgarayevaz
Participant
0 Kudos
Hello Eduardo,

Thanks a lot for your blog and it is very informative.

My question is:

You update your custom child object source of record field via business rule. What parameters are you using for it ? Could you pls share your rule for filling source of record field ?

Thanks in advance!

Fuad
0 Kudos
Hi Mates,

 

Hope you doing well,

 

Kindly did anyone implement this in the instance?, I need an assist please.

 

Regards,

Mostafa
JE523
Explorer
0 Kudos

Hi Everyone,



I hope you are doing well, does this solution apply only for onboarding 2.0 or also for the previous version of onboarding 1.0? Since I started to configure the functionality but there are several parts that do not quite fit starting with the extension center and when making the rules, even so I already have all the administrator permissions.


I hope you can help me,


Regards
Daniel

Berg
Participant
0 Kudos
Thank for sharing it, it is a great blog.
AngelaD
Discoverer
0 Kudos
Hi,

I am configuring this integration but my IC does not filter well for the candidates referenced in Hired status. It also does not correctly extract the data in the Request Status field. Could you show the tree of the "Application Status Label" filter and the "Application Status" field? Right now it shows the Hired status but it is not the status found in the job requisition that was referenced. And I also see records where the candidate was never hired.

 

Best Regards,

Ángela.
Labels in this area