• Free Trial
  • Products
    • LMSThe world’s easiest-to-use learning management system.
    • Training ContentA robust library of off-the-shelf learning content.
  • Solutions
    • By Use Case
      • Employee Training
      • Sales Training
      • Customer Training
      • Partner Training
      • Compliance Training
      • View all
    • By Industry
      • Technology
      • Nonprofit
      • Retail
      • Hospitality
      • Healthcare
      • View all
  • Customers
    • Learn more about Litmos customer success stories.
      • Case Studies
      • Video Testimonials
      • I Love Litmos
      • Lenny Awards
    • Featured Customer
      • Sabre, a global travel technology provider, increases revenue by using Litmos to train their sales and technical teams.
  • Pricing
  • Resources
    • Ebooks & Infographics
    • Webinars & Podcasts
    • Events
    • Integrations
    • Blog
  • About
    • Company
    • Partners
    • Awards
    • Careers
    • Sustainability
  • Free Trial
Litmos
Log in
Contact us
Support
Search
  • Free Trial
  • Products
    • LMSThe world’s easiest-to-use learning management system.
    • Training ContentA robust library of off-the-shelf learning content.
  • Solutions
    • By Use Case
      • Employee Training
      • Sales Training
      • Customer Training
      • Partner Training
      • Compliance Training
      • View all
    • By Industry
      • Technology
      • Nonprofit
      • Retail
      • Hospitality
      • Healthcare
      • View all
  • Customers
    • Learn more about Litmos customer success stories.
      • Case Studies
      • Video Testimonials
      • I Love Litmos
      • Lenny Awards
    • Featured Customer
      • Sabre, a global travel technology provider, increases revenue by using Litmos to train their sales and technical teams.
  • Pricing
  • Resources
    • Ebooks & Infographics
    • Webinars & Podcasts
    • Events
    • Integrations
    • Blog
  • About
    • Company
    • Partners
    • Awards
    • Careers
    • Sustainability
  • Free Trial

Litmos Documentation

Integrations

Home › Litmos Documentation › SAP Successfactors Employee Central Integration With Litmos

SAP Successfactors Employee Central Integration With Litmos

SAP SuccessFactors Employee Central is a flexible, global core HR solution that supports core HR processes and employee self-services for your total workforce. This integration allows you to use Employee Central as a central source of learner profile information and customize your sync and field mapping to allow you to create, edit, and deactivate user profiles in Litmos.

This integration requires the use of SAP Identity Provisioning Services. SAP IPS will take advantage of our SCIM 2.0 endpoints which covers user and Team (Group) management in Litmos. This integration requires that your license of SAP IPS has access to the generic SCIM connector option which generally excludes bundled IPS licenses. If you do not have that option please contact your SAP representative for more information on obtaining the appropriate license. 

The instructions below highlight how to configure Employee Central as the Source System and Litmos as our Target System for User management.

SAP IPS passes data between systems using JSON transformations. Theses transformations take individual systems field values and maps them to a generic format which can then be used by potentially any SCIM compatible system through a target system transformation.  These transformations also support expressions, functions and variables that can help you to build more complex logic into your sync.

Once your IPS tenant has been obtained, you will need access to an Account Owner profile in Litmos as well as an SAP SuccessFactors API user with the following permissions granted:

  • Manage User > Employee Export
  • Manage User > User Account OData API Entity
  • Manage Integration Tools > Allow Admin to Access OData API

For more information on setting up this integration user, please refer to “Setting Up an API User for Sync Jobs in SAP SuccessFactors”.

 

Setup Employee Central as a Source System

You will need to start by configuring your Employee Central source system. To do so, click into the Source Systems option from the IPS menu. You will then use the Add button at the bottom to create your source. The details tab will open, where you can select “SAP SuccessFactors” as your type and set a system name for your reference.

Upon saving, you will find that the transformation and properties page are both prefilled with some basic configuration selections. To ensure Employee Central is properly connected, you will need to also add the following minimum values to the “Properties” tab:

Property Name Property Type Value
Type Standard HTTP
URL Standard Specify the URL to your SAP SuccessFactors API.

For example: https://apitest.successfactors.com/odata/v2

ProxyType Standard Internet
Authentication Standard BasicAuthentication
User Standard Enter the userID of your SAP SuccessFactors technical user in the following format: <user_ID>@<company_ID>
Password Credential Technical User Password
ips.delta.read Standard enabled

There are a number of additional supported properties that can also be optionally configured as part of this integration. Please review the SAP IPS help documentation to learn more about these properties.

From there, you can move to the “Transformations” tab to review the default Source System transformation for SAP SuccessFactors. There, you will find a default transformation provided for SAP SuccessFactors Employee Central, which includes some basic profile fields and can be further modified. Please refer to the SuccessFactors OData API documentation and endpoints for more information on this.

Setup Litmos as a Target System

*Please note that the steps requiring you pick a generic SCIM system. A branded connector will be available at a future date. At this time, all functions are supported except PATCH which means that you cannot update usernames.

In SAP Identity provisioning Services, we can now move to the “Target Systems” tab to setup Litmos as a target. Using the same button as the source, we can add a new application selecting “SCIM System” as the Type. Set a name for your reference and select Employee Central as your source system. If you do not select a source, IPS will read from every available source system.

From here we will need to complete the same steps, to include adding all appropriate attributes and updating the transformation to include all available Litmos fields.

On the properties tab, we will add the following required properties:

Property Name   Property Type  Value 
URL Standard https://api.litmos.com/v2/SCIM – replace this with the correct region if you are on our AU or EU datacenters.
Type Standard HTTP
scim.content.type Standard application/scim+json
User Standard Account Owner Username
ips.http.header.domain Standard Your Litmos subdomain or whole custom domain (Ex:  customer.litmos.com would use just customer as the value)
Password Credential Account Owner Password
ProxyType Standard Internet
Authentication Standard BasicAuthentication

Additionally, we recommend these properties for the purposes of error handling and logging:

Property Name  Property Type  Value 
ips.trace.failed.entity.content Standard True
ips.failed.request.retry.attempts.interval Standard True

Transformations

Next, we can proceed with our transformations. Below we will provide a transformation that maps to all available fields with a generic mapping. Please note the following important point:

UserName can only be inserted upon user creation, so please use the “scope”: “createEntity” value to ensure that your user updates do not fail

Please remove the entire transformation from the tab and replace it with the json below. This is a starting place and can be modified to fit your needs based on source values.

{
  "user": {
    "mappings": [
      {
        "constant": "urn:ietf:params:scim:schemas:core:2.0:User",
        "targetPath": "$.schemas[0]"
      },
      {
        "sourceVariable": "entityIdTargetSystem",
        "targetPath": "$.id"
      },
      {
        "sourceVariable": "entityIdTargetSystem",
        "targetPath": "$.id",
        "scope": "deleteEntity"
      },
      {
        "sourcePath": "$.userName",
        "targetPath": "$.userName",
        "scope": "createEntity"
      },
      {
        "sourcePath": "$.active",
        "targetPath": "$.active",
        "defaultValue": true
      },
      {
        "sourcePath": "$.name.givenName",
        "targetPath": "$.name.givenName"
      },
      {
        "sourcePath": "$.name.familyName",
        "targetPath": "$.name.familyName"
      },
      {
        "sourcePath": "$.emails",
        "preserveArrayWithSingleElement": true,
        "optional": true,
        "targetPath": "$.emails"
      },
      {
        "condition": "$.emails.length() > 0",
        "constant": "work",
        "optional": true,
        "targetPath": "$.emails[0].type"
      },
      {
        "sourcePath": "$.title",
        "optional": true,
        "targetPath": "$.title"
      },
      {
        "sourcePath": "$.addresses",
        "preserveArrayWithSingleElement": true,
        "optional": true,
        "targetPath": "$.addresses",
        "functions": [
          {
            "function": "putIfAbsent",
            "key": "type",
            "defaultValue": "work"
          },
          {
            "condition": "(@.type NIN ['work', 'home'])",
            "function": "putIfPresent",
            "key": "type",
            "defaultValue": "work"
          }
        ],
        "defaultValue": []
      },
      {
        "sourcePath": "$.phoneNumbers",
        "preserveArrayWithSingleElement": true,
        "optional": true,
        "targetPath": "$.phoneNumbers"
      },
      {
        "condition": "$.phoneNumbers.length() > 0",
        "constant": "work",
        "optional": true,
        "targetPath": "$.phoneNumbers[0].type"
      },
      {
        "condition": "$.phoneNumbers.length() > 0",
        "constant": "mobile",
        "optional": true,
        "targetPath": "$.phoneNumbers[1].type"
      },
      {
        "ignore": true,
        "sourcePath": "$.timeZone",
        "optional": true,
        "targetPath": "$.timezone"
      },
      {
        "ignore": true,
        "targetPath": "$.timeZone",
        "type": "valueMapping",
        "sourcePaths": [
          "timeZone"
        ],
        "defaultValue": "(UTC) Coordinated Universal Time",
        "valueMappings": [
          {
            "key": [
              "America/Los_Angeles"
            ],
            "mappedValue": "(UTC-08:00) Pacific Time (US & Canada)"
          }
        ]
      },
      {
        "ignore": true,
        "targetPath": "$.preferredLanguage",
        "type": "valueMapping",
        "sourcePaths": [
          "$.locale"
        ],
        "defaultValue": "en-US",
        "valueMappings": [
          {
            "key": [
              "EN"
            ],
            "mappedValue": "en-US"
          }
        ]
      },
      {
        "constant": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
        "targetPath": "$.schemas[1]"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['employeeNumber']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['employeeNumber']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['organization']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['organization']"
      },
      {
        "ignore": false,
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['manager']['value']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['manager']['value']",
        "functions": [
          {
            "type": "resolveEntityIds"
          }
        ]
      },
      {
        "constant": "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User",
        "targetPath": "$.schemas[2]"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute1']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField1']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute2']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField2']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']'CustomAttribute3']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField3']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute4']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField4']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute5']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField5']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute6']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField6']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute7']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField7']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute8']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField8']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute9']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField9']"
      },
      {
        "sourcePath": "$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['CustomAttribute10']",
        "optional": true,
        "targetPath": "$['urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:CustomField:User']['CustomField10']"
      }
    ]
  },
  "group": {
    "ignore": false,
    "mappings": [
      {
        "constant": "urn:ietf:params:scim:schemas:core:2.0:Group",
        "targetPath": "$.schemas[0]"
      },
      {
        "sourceVariable": "entityIdTargetSystem",
        "targetPath": "$.id"
      },
      {
        "sourceVariable": "entityIdTargetSystem",
        "targetPath": "$.id",
        "scope": "deleteEntity"
      },
      {
        "sourcePath": "$.displayName",
        "optional": false,
        "targetPath": "$.displayName"
      },
      {
        "sourcePath": "$.members",
        "preserveArrayWithSingleElement": true,
        "optional": true,
        "targetPath": "$.members",
        "functions": [
          {
            "type": "resolveEntityIds"
          }
        ]
      }
    ]
  }
}

Schedule a Provisioning Job in Identity Provisioning 

Important Note: This step should only be initiated once a test provisioning job has been successfully run with no errors. Please be sure to test the provisioning job to a Litmos sandbox tenant before proceeding to configure and schedule a provisioning job to your Litmos production tenant.

Once the source and target system have been selected, configured and customized the tenant administrator will proceed to schedule the provisioning job cycle. The tenant administrator will click on “Source Systems” –> select the source system (in this case Employee Central) –> click “Jobs” –> click “Schedule” –> enter a time value for minutes. This will determine how often the provisioning job is initiated.

Once the job has been initiated, the tenant administrator can click on “Job Logs” to review the job execution logs for any provisioning configurations in the IPS tenant.

To view any errors associated with an execution job click on the row in the table to open the job logs. The error message(s), statistics and failed entries can be reviewed.

Resources

   IAS  IPS 
Documentation  Identity Authentication Service  SAP SuccessFactors Employee Central 
Care taker  IT Admin  IT Admin 

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of Litmos.

The information contained herein may be changed without prior notice. Some software products marketed by Litmos and its distributors contain proprietary software components of other software vendors. National product specifications may vary.

These materials are provided by Litmos for informational purposes only, without representation or warranty of any kind, and Litmos or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for Litmos company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

In particular Litmos or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation, and Litmos or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by Litmos or its affiliated companies at any time for any reason without notice.

The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions.

© 2022 Litmos or a Litmos affiliate company. All rights reserved.

Litmos and other Litmos products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Litmos (or a Litmos affiliate company) in the United States and other countries. All other product and service names mentioned are the trademarks of their respective companies.

Match keywords.

Useful Links

  • Release Notes
  • Customer Portal

In this article

Related articles

  1. SAP Identity Provisioning Service Ips Setup Litmos As A Target System
  2. Setup SCIM For Microsoft Azure Active Directory
  3. SAP Commerce Cloud V2 Integration

Also of Interest

  • Mobile Learning System
  • Educate Online Learning Environment
  • Online Leadership Training Courses
  • Corporate LMS
  • Enterprise Learning Management System
  • LMS Platform
  • eLearning Platform
  • What is a learning management system?
  • See Additional Resources

Solutions by Use Case

  • Employee Training
  • Customer Training
  • Compliance Training
  • Sales Training
  • Operations Training
  • Gig Worker Training
  • Contractor Training
  • Supplier Training

Solutions by Industry

  • Technology
  • Nonprofit
  • Retail
  • Hospitality
  • Healthcare

Contact Us

Contact
UK: +44 20 4551 1606
USA: +1 925 490 0401
AUS: +61 3 7066 4851
Email
Support
Address
Contact Us
Litmos Reviews Litmos Reviews
Litmos Careers Careers

© 2023 Litmos US, L.P. and affiliates. All rights reserved.

  • Privacy Statement
  • Terms & Conditions
  • Website Terms