SF Time Off – Compensatory Off – Complete Automated Process using MDF and Integration Center

Hello All,


Most of the organizations are allowing their employees to request and use Compensatory Off if employee is working on Public Holiday or Non Working day. You will find lot of articles on this to configure this inside SuccessFactors. The business case I am presenting here needs a complete automated process which will work without any manual innervation.

Here is my business requirement

  • Employee has worked on Public holiday/ Non Working day in past
  • Employee should be able to request for Compensatory Off through ESS portal inside SuccessFactors
  • Post approval from Manager Number of days should be automatically credited to employee’s account
  • Management should be able to report on Number of Comp Off’s requested by employees in future to do analysis of Weekend work load
  • For Each Country / Division / Department / Business Unit or depending on any other criteria Comp’s Off’s Validity will change.

To achieve this requirement we can follow below steps.

Step 1 – Create “Time Type Account” called as “Compensatory Off” as below


Create Time Account Type with mentioned settings as above. Comp Off will be credited in number of days based on requirement.



Period End Processing should be automated at the end of booking period as we are going to set validity for each Comp Off Account and this will allow to close accounts automatically on the end of validity


Step 2 – Create “Time Type” called as “Compensatory Off” and assign above created “Time Account Type”


Create Time Type with above mentioned settings. Half day bookings are allowed as employee might work for half day on PH / Non Working Day. Workflow simply goes to Line Manager for Leave approval


Assign Time Account Type to the newly created Time Type. As there are no validations required as per business requirement, I have not added any take rules. But if required you can always add your own validations.


Step 3 – Assign newly created “Time Type” to “Time Profile”


Assignment of Time Type to Time Profile


Step 4 – Now we need “ESS” Portal where employees can request for Comp Off against Public Holiday / Non Working Day. For that we need to create custom object

Step 4.1 – Create Parent MDF object “Comp Off Request”.


Use “Configure Object Definition” to create Parent Object. Important points to note are “Effective Dating” has to be “Basic” and “API Visibility” has to be “Editable” as we are using Integration to read this data. Also “Pending Data” has to be “Yes” as this is used in “Integration” as filter. External code needs be selected as “User” as we are allowing employee to use this from “People Profile”



Object needs to made secure so permissions can be controlled using RBP

Step 4.2 – Create Child MDF object “Comp Off Request Details”


Create child objects with above fields. Below refer points to see what and how fields are configured

  • Effective Dating – From Parent
  • API Visibility – Editable
  • External Code – “Auto Number” data type. Rename as “Comp Off Request Number”. Mandatory field
  • External Name – Hide this field
  • cust_NonWorkingDay – “Date” as data type. Rename field as “Select the Public Holiday / Non-Working Day on which you have worked” and make it mandatory
  • cust_NonWorkingDayQuantity – “Picklist” as data type. Rename field as ” How much time you have worked on Public Holiday / Non-Working Day?” . Refer to below picklist. Make this field Mandatory


Picklist to be used


  • cust_CompOffValidityStartDate – “Date” as data type. Rename this field as “Comp Off Validity Start Date” and make this “Read Only”
  • cust_CompOffValidityEndDate – “Date” as data type. Rename this field as “Comp Off Validity End Date” and make this “Read Only”


Make this object Permission secured so that fields can be controlled using RBP

Step 4.3 – Associate Child Object to Parent Object


Add Association on Parent Object as mentioned. This will allow users to create multiple request

Step 4.4 – Create UI for the Object


Use Manage Configuration UI tool to create custom UI for the object

Step 4.5 – Assign UI to Employee’s Profile using “Configure People Profile” page


Use “Configure People Profile” Page to assign this newly created UI on Employee’s profile. You can decide to put this section anywhere as per your requirement. But as per my business requirement I have added it to “Time” Section to keep everything in one place


Step 4.6 – Workflow for Custom ESS Portal


Create Workflow as above. In my case Comp Off request needs to be approved by Manager as well as HR. In your case workflow might be different based on requirement

Step 4.7 – Create Business Rule as below and add Workflow Configuration in “Then” Statement

We are raising Workflow when Comp Off Validity Start Date is not blank. Base object should be used as Parent Object “Request for Comp Off”


Assign this business rule on Parent Object under Save Rules


Step 4.8 – Assign Correct Permissions to custom MDF Object For Employee / Manager and Employee HR

  • Employee View Permission is common for Employee / Manager / Employee HR

  • Object Level Permissions for Employee needs to have edit access while for Manager and Employee HR view only permissions are also sufficient.
  • Below settings are given for Employees. You can remove Edit access and use these settings again for Manager / Employee HR

  • Granting can be as below for Employee / Manager and HR Role

Step 5 – Now its time to put some validation and auto population rules on custom ESS portal

  • This rule will allow employees to select only days in past against which they are requesting Comp Off. It will not allow to select a day in future.


As per business requirement this can be altered. Some companies might allow employees to request for Comp Off against the day which is in future. In that case this validation is not necessary. Attach this rule to the Field “Select the Public Holiday / Non-Working Day on which you have worked” as “On Change” rule


  • Another rule is to set Comp Off Validity dates. This is quiet important rule and we can adjust this rule according to our needs.
  • Below are my conditions
  • If Employee in India is requesting Comp Off against Public holiday which was falling in Month of Sep, Oct, Nov then it should be valid till 31st March of next year
  • If employee in India is requesting Comp Off against Public holiday which was falling in any month other than Sep, Oct, Nov then it should be valid till 60 days from Comp Off Validity Start Date
  • In any case Comp Off Validity should start from the Public holiday itself


Condition which sets validity of Comp Off till 31st Mar of next year as Public Holiday / Non-Working day was falling in Month of Sep, Oct, Nov



Condition which sets validity of Comp Off till 60 days from Comp Off Start Date as Public Holiday / Non-Working day was falling in Month other than Sep, Oct, Nov

  • Attach this rule to the Field “Select the Public Holiday / Non-Working Day on which you have worked” as “On Change” rule


Step 6 – Now we need to create Integration to automatically create “Time Accounts” when “Comp Off Request” is approved by Line Manager and Employee HR

Step 6.1 – Create Integration in “Integration Center”


Use More Integration Type to create New Integration

  • Use below settings to create Integration


  • Choose Starting Entity as “Comp Off Request Details” as we will read data from here and then create “Time Accounts”

  • Go to Configure Field section
  • Select “Switch to Field Mapping View”
  • By Default both on Left and right side you will see “Comp off Request Details” Entity
  • Select the entity on the right side and use delete button to delete the entity
  • Then click on Plus sign to Add new Entity and then select option “Time Account”
  • By doing these steps we are asking system to copy the data from “Comp Off Request Details” data to “Time Account”
  • It should look like below screenshots


  • Mapping of field is very easy. If Field is present on Left side then you can drag it to right side. If Field is not present on Left side then it either needs to be calculated or it needs to have default value. Below mappings can be used
Comp Off Request Details Time Account Type of Mapping
Request Number External Code Direct Mapping
N/A Closed Default Value – “false”
N/A Time Account Type

Default Value – “IND_COMP_OFF”.

This can be also done using calculated function where for each Legal Entity you can set different values. Also you can decide to add this field on custom object and then do Direct mapping as well

Comp Off Validity End Date Booking Possible Until Direct Mapping
Comp Off Validity Start Date Booking Possible From Direct Mapping
Comp Off Validity Start Date Account Valid Until

Direct Mapping

(This is very Important to keep validity as Start Date considering there will be multiple request in same month and there cannot be overlapping accounts in same validity period with same Time Account Type)

Comp Off Validity Start Date Account Valid From Direct Mapping
Comp Off Request_Employee User Direct Mapping


Comp Off Request Details Time Account Details Type of Mapping
Request Number Time Account_External Code Direct Mapping
Request Number External Code Direct Mapping
How much time you worked on Public Holiday / Non-Working Day? Amount Posted

Calculated Field

Here you can use Calculation as below

If Field Value = HD (Half Day) then 0.5 Else 1

Last Modified Date Posting Date Direct Mapping
N/A Posting Type Default Value – “MANUAL_ADJUSTMENT”
N/A Posting Unit

Default Value – “DAYS”

In my case I have selected Days. If it is hours you can select “HOURS”

N/A Comments

Calculated Field

Here I have used below Logic but you can use anything of your own. You can also skip this if not required

Field Value = Posting Created against <Request Number> raised by <Employee> on <Created On> and approved by <Line Manager> and <Employee HR> on <Last Modified Date>

<> is used to showcase token which can be taken from custom object using navigation

  • You have to add Time Based Filter to Integration to ignore all the requests which are already processed before last modified date


  • You can schedule this Integration to run at least every 2 hours. You can reduce frequency by copying this Integration multiple times and adjusting frequency

Step 7 – Time to complete Testing

Step 7.1 – Assign Correct Time Profile to Employee to see if correct leaves are being assigned


Correct Time Profile is Assigned for year 2023


Correct Time Types are assigned to Employee. 0 Days of Compensatory Off should be visible

Step 7.2 – Proxy as Employee and request for “Comp Off” using custom ESS portal


As per expectation if Employee has worked in Sep, Oct, Nov Validity should be 31st Mar of next year


If Employee has worked in any other months then validity should be 60 days from Comp Off Start Date

  • We will continue with Example Number 1 where employee has worked on 23rd Sep 2023 for half day. Once clicked on Save, Workflow will get triggered. First it will go to Manager and then to Employee HR

Step 7.3 – When it appears on Approver’s Home Page they can either approve directly or they can decide to click on “Review and Approve” to see more details. They can then click on details of the actual request to see more details as below


Record on Employees Profile after complete approval. Only the completely approved requests will be considered by Integration

  • Once both people have approved the request we need to wait for Integration to run which is in my case is 2 hours. For testing we will run it manually. When we go inside Integration we should see data for this request


Payload which will be created based on request made by employee as above.

  • Once Integration ran successfully you can check the time account which got created in “Manage Data”. You can search with “Time Account Type” or “Employee ID” or “Request Number”


Time Account got created automatically after Integration run was successful


Time Account Details with Amount Posted and Custom comment

  • Comp Off Balance will become visible after Posting date on Employee’s Screen. As Posting date is today it is already visible


  • Employee’s Profile shows more information on Time Account which got created



Account Posting shows more information on Posting details


As we saw in above Post this complete Process can be automated with some plus points

  1. We can set Validity period based on different criteria
  2. As PEP is already automated in system, once “Booking Possible Until” date reaches PEP will be executed and accounts will get closed with lapse of balance if not used.
  3. There is no manual Intervention required here
  4. Workflows can be auto approved as well if required after certain days
  5. As requests are created using MDF object it is very easy to create Canvas report for this
  6. No need to have separate UI or Portal to raise Comp Off request
  7. As this whole process works on MDF platform we can have unlimited number of validations and customizations based on our requirement


Hope this will help you to achieve the solution you are looking for

Scroll to Top