> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SAP SuccessFactors HRIS Integration

> SAP SuccessFactors connector for Kombo's HRIS API

The SAP SuccessFactors HRIS integration allows you to sync HRIS data between SAP SuccessFactors and your application through Kombo's unified API. The tool slug for this connector is `successfactors`.

## Guides and Resources

<CardGroup cols={2}>
  <Card title="Connection Setup Guide" icon="link" href="https://help.kombo.dev/hc/en-us/articles/16225034050961-How-do-I-link-my-SAP-SuccessFactors-account-">
    Step-by-step instructions to connect your SAP SuccessFactors account to Kombo.
  </Card>
</CardGroup>

## Supported Features & Coverage

<Tabs>
  <Tab title="Models">
    <Accordion title="Legal Entities">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Work Locations">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | address             |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employees">
      <Note>
        Only one home address is mapped. If preferred address type is set in integration settings, we use that type; otherwise the first address is used. For employees with multiple managers, we only expose the first one. We only support employment\_status ACTIVE and INACTIVE because other values can be complicated to find out (due to multiple employments etc.).
      </Note>

      | Field                 | Notes |
      | --------------------- | ----- |
      | id                    |       |
      | remote\_id            |       |
      | changed\_at           |       |
      | remote\_deleted\_at   |       |
      | employee\_number      |       |
      | first\_name           |       |
      | last\_name            |       |
      | display\_full\_name   |       |
      | job\_title            |       |
      | work\_email           |       |
      | personal\_email       |       |
      | mobile\_phone\_number |       |
      | ssn                   |       |
      | gender                |       |
      | ethnicity             |       |
      | marital\_status       |       |
      | employment\_status    |       |
      | employment\_type      |       |
      | weekly\_hours         |       |
      | work\_location\_id    |       |
      | legal\_entity\_id     |       |
      | manager\_id           |       |
      | home\_address         |       |
      | bank\_accounts        |       |
      | date\_of\_birth       |       |
      | start\_date           |       |
      | termination\_date     |       |
      | remote\_created\_at   |       |
      | custom\_fields        |       |
      | integration\_fields   |       |
      | remote\_data          |       |
    </Accordion>

    <Accordion title="Absence Types">
      | Field                   | Notes |
      | ----------------------- | ----- |
      | id                      |       |
      | remote\_id              |       |
      | changed\_at             |       |
      | remote\_deleted\_at     |       |
      | name                    |       |
      | unit                    |       |
      | exact\_times\_supported |       |
      | remote\_data            |       |
    </Accordion>

    <Accordion title="Absences">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | start\_date         |       |
      | end\_date           |       |
      | start\_time         |       |
      | end\_time           |       |
      | amount              |       |
      | unit                |       |
      | status              |       |
      | employee\_note      |       |
      | type\_id            |       |
      | remote\_created\_at |       |
      | remote\_updated\_at |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employments">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | job\_title          |       |
      | pay\_rate           |       |
      | pay\_period         |       |
      | employment\_type    |       |
      | pay\_currency       |       |
      | effective\_date     |       |
      | remote\_data        |       |
      | custom\_fields      |       |
      | integration\_fields |       |
    </Accordion>

    <Accordion title="Groups">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | type                |       |
      | parent\_id          |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Time Off Balances">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | type\_id            |       |
      | balance             |       |
      | balance\_unit       |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Timesheets">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | started\_at         |       |
      | ended\_at           |       |
      | timezone            |       |
      | payable\_hours      |       |
      | approval\_status    |       |
      | comment             |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Performance Reviews">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | review\_cycle\_id   |       |
      | reviewee\_id        |       |
      | reviewer\_id        |       |
      | type                |       |
      | summary\_comment    |       |
      | summary\_rating     |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Performance Review Cycles">
      <Note>
        The we treat the form template as a performance review cycle.
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employee <> Group">
      | Field               | Notes |
      | ------------------- | ----- |
      | employee\_id        |       |
      | team\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>
  </Tab>

  <Tab title="Actions">
    <Accordion title="Create absence">
      <Note>
        Setting the approvalStatus might not be working consistently
      </Note>

      | Input Field       | Notes |
      | ----------------- | ----- |
      | employee\_id      |       |
      | absence\_type\_id |       |
      | status            |       |
      | start\_date       |       |
      | end\_date         |       |
      | start\_time       |       |
      | end\_time         |       |
    </Accordion>

    <Accordion title="Delete absence">
      | Input Field | Notes |
      | ----------- | ----- |
      | absence\_id |       |
    </Accordion>

    <Accordion title="Create employee">
      <Note>
        SuccessFactors requires a native preferred language. We strive to find the best match, although it may not always be accurate. We will map the nationality into the country of birth.
      </Note>

      | Input Field           | Notes |
      | --------------------- | ----- |
      | first\_name           |       |
      | last\_name            |       |
      | work\_email           |       |
      | gender                |       |
      | date\_of\_birth       |       |
      | mobile\_phone\_number |       |
      | nationality           |       |
      | start\_date           |       |
    </Accordion>

    <Accordion title="Create employee (v2)">
      <Info>For detailed information about [creating employees with form](/hris/implementation-guide/create-employee), please see the [**Create Employee with Form** tab](#create-employee-with-form) above.</Info>

      | Input Field          | Notes |
      | -------------------- | ----- |
      | staffing\_entity\_id |       |
      | properties           |       |
    </Accordion>
  </Tab>

  <Tab title="Features">
    | Feature               | Notes |
    | --------------------- | ----- |
    | Connection Guide      |       |
    | Prerequisites         |       |
    | Create credentials    |       |
    | API Passthrough       |       |
    | Additional Scopes     |       |
    | Scope Testing         |       |
    | Delta Syncs           |       |
    | Group Types           |       |
    | DEPARTMENT            |       |
    | COST\_CENTER          |       |
    | Custom Field Explorer |       |
    | Employees             |       |
  </Tab>

  <Tab title="Create Employee with Form">
    <Note>
      It's possible when creating an employee, that it's a partial success, meaning some data might not be created or updated correctly. If this happens, you can use the Person ID to update the employee later with the form.
    </Note>

    <Info>
      Some **optional** form fields are referencing the following data models:

      * Employees

      Consider enabling these in your [scope configuration](/hris/features/scopes).
    </Info>

    <ResponseField name="personId" type="text">**Person ID**<br />
    This is the ID of the person in SuccessFactors. Only provide this when updating an existing employee. Leave blank to create a new employee.</ResponseField>

    <ResponseField name="user" type="object" required>
      **User**

      <Expandable title="properties">
        <ResponseField name="firstName" type="text" required>**First Name**<br />
        The first name of the employee<br />
        Unified field: `first_name`</ResponseField>
        <ResponseField name="lastName" type="text" required>**Last Name**<br />
        The last name of the employee<br />
        Unified field: `last_name`</ResponseField>
        <ResponseField name="email" type="text">**Work Email**<br />
        The work email address of the employee<br />
        Unified field: `work_email`</ResponseField>
        <ResponseField name="cellPhone" type="text">**Mobile Phone Number**<br />
        The mobile phone number of the employee<br />
        Unified field: `mobile_phone_number`</ResponseField>
        <ResponseField name="manager" type="single_select">**Manager**<br />
        The manager of the employee<br />
        References `/v1/hris/employees?remote_model=employee`</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="person" type="object">
      **Person**<br />
      This entity contains the non-effective-dated biographical information such as date of birth, country of birth. It is commonly used as the main entity when doing employee master extracts.

      <Expandable title="properties">
        <ResponseField name="countryOfBirth" type="single_select">**Country Of Birth**</ResponseField>
        <ResponseField name="customDate7" type="date">**Special Date**</ResponseField>
        <ResponseField name="customString1" type="text">**Nick Name**</ResponseField>
        <ResponseField name="dateOfBirth" type="date">**Date Of Birth**<br />
        Unified field: `date_of_birth`</ResponseField>
        <ResponseField name="regionOfBirth" type="text">**Region Of Birth**</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="employment" type="object">
      **Employment**<br />
      Contains all the employment related information for an employee.

      <Expandable title="properties">
        <ResponseField name="benefitsEligibilityStartDate" type="date">**Benefits Eligibility Start Date**</ResponseField>
        <ResponseField name="customString1" type="text">**Change Reason**</ResponseField>
        <ResponseField name="customString15" type="text">**Test Custon Field**</ResponseField>
        <ResponseField name="eligibleForStock" type="checkbox">**Eligible for Stock**</ResponseField>
        <ResponseField name="employeeFirstEmployment" type="checkbox">**Employee's First Employment**</ResponseField>
        <ResponseField name="firstDateWorked" type="date" required>**First Date Worked**</ResponseField>
        <ResponseField name="initialOptionGrant" type="number">**Initial Option Grant**</ResponseField>
        <ResponseField name="initialStockGrant" type="number">**Initial Stock Grant**</ResponseField>
        <ResponseField name="isContingentWorker" type="checkbox">**Contingent Worker**</ResponseField>
        <ResponseField name="originalStartDate" type="date">**Original Start Date**</ResponseField>
        <ResponseField name="prevEmployeeId" type="text">**Previous Employment ID**</ResponseField>
        <ResponseField name="professionalServiceDate" type="date">**Professional Service Date**</ResponseField>
        <ResponseField name="seniorityDate" type="date">**Seniority Start Date**</ResponseField>
        <ResponseField name="serviceDate" type="date">**Service Date**</ResponseField>
        <ResponseField name="startDate" type="date" required>**Hire Date**<br />
        Unified field: `start_date`</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="personalInfo" type="object">
      **Personal Information**<br />
      Contains personal information for an employee.

      <Expandable title="properties">
        <ResponseField name="customDate7" type="date">**Special Date**</ResponseField>
        <ResponseField name="customString1" type="text">**Nick Name**</ResponseField>
        <ResponseField name="endDate" type="date">**End Date**</ResponseField>
        <ResponseField name="firstName" type="text" required>**First Name**<br />
        Unified field: `first_name`</ResponseField>
        <ResponseField name="firstNameAlt1" type="text">**Alt1 First Name**</ResponseField>
        <ResponseField name="gender" type="single_select">**Gender**<br />
        Unified field: `gender`</ResponseField>
        <ResponseField name="lastName" type="text" required>**Last Name**<br />
        Unified field: `last_name`</ResponseField>
        <ResponseField name="lastNameAlt1" type="text">**Alt1 Last Name**</ResponseField>
        <ResponseField name="maritalStatus" type="single_select">**Marital Status**</ResponseField>
        <ResponseField name="middleName" type="text">**Middle Name**</ResponseField>
        <ResponseField name="middleNameAlt1" type="text">**Alt1 Middle Name**</ResponseField>
        <ResponseField name="nationality" type="single_select" required>**Nationality**<br />
        Unified field: `nationality`</ResponseField>
        <ResponseField name="nativePreferredLang" type="single_select" required>**Preferred Language**</ResponseField>
        <ResponseField name="preferredName" type="text">**Preferred Name**</ResponseField>
        <ResponseField name="salutation" type="single_select">**Salutation**</ResponseField>
        <ResponseField name="startDate" type="date" required>**Event Date**<br />
        Unified field: `start_date`</ResponseField>
        <ResponseField name="suffix" type="single_select">**Suffix**</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="perEmail" type="object">
      **Email**<br />
      Contains employee's email address.

      <Expandable title="properties">
        <ResponseField name="emailAddress" type="text" required>**Email Address**<br />
        Unified field: `private_email`</ResponseField>
        <ResponseField name="emailType" type="single_select" required>**Email Type**</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="perPhone" type="object">
      **Phone**<br />
      Contains information about an employee's phone numbers.

      <Expandable title="properties">
        <ResponseField name="areaCode" type="text">**Area Code**</ResponseField>
        <ResponseField name="countryCode" type="text">**Country Code**</ResponseField>
        <ResponseField name="extension" type="text">**Extension**</ResponseField>
        <ResponseField name="phoneNumber" type="text" required>**Phone Number**</ResponseField>
        <ResponseField name="phoneType" type="single_select" required>**Phone Type**</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="perEmergencyContacts" type="object">
      **Emergency Contacts**<br />
      Contains emergency contact information for an employee.

      <Expandable title="properties">
        <ResponseField name="email" type="text">**eMail**</ResponseField>
        <ResponseField name="name" type="text" required>**Name**</ResponseField>
        <ResponseField name="phone" type="text" required>**Phone**</ResponseField>

        <ResponseField name="primaryFlag" type="single_select" />

        <ResponseField name="relationship" type="single_select" required>**Relationship**</ResponseField>
        <ResponseField name="secondPhone" type="text">**Alt Phone**</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="perAddressDEFLT" type="object">
      **Address**<br />
      Contains information about address.

      <Expandable title="properties">
        <ResponseField name="address1" type="text" />

        <ResponseField name="address10" type="text">**Apartment**</ResponseField>
        <ResponseField name="address11" type="text">**Bed Number**</ResponseField>
        <ResponseField name="address12" type="single_select">**City**</ResponseField>
        <ResponseField name="address13" type="text">**Street Number**</ResponseField>

        <ResponseField name="address2" type="text" />

        <ResponseField name="address20" type="text">**Care Of**</ResponseField>
        <ResponseField name="address3" type="single_select">**Municipality**</ResponseField>
        <ResponseField name="address5" type="text">**Second Address Line**</ResponseField>
        <ResponseField name="address8" type="single_select">**Camp**</ResponseField>
        <ResponseField name="address9" type="text">**Building**</ResponseField>
        <ResponseField name="addressType" type="single_select" required>**Address Type**</ResponseField>
        <ResponseField name="city" type="single_select">**District**<br />
        Unified field: `home_address.city`</ResponseField>
        <ResponseField name="country" type="single_select" required>Unified field: `home_address.country`</ResponseField>
        <ResponseField name="county" type="single_select">**County**</ResponseField>
        <ResponseField name="endDate" type="date">**End Date**</ResponseField>

        <ResponseField name="notes" type="text" />

        <ResponseField name="province" type="single_select">**Province**</ResponseField>
        <ResponseField name="startDate" type="date" required>**Event Date**<br />
        Unified field: `start_date`</ResponseField>
        <ResponseField name="state" type="single_select">**State**<br />
        Unified field: `home_address.state`</ResponseField>
        <ResponseField name="zipCode" type="text">Unified field: `home_address.zip_code`</ResponseField>
      </Expandable>
    </ResponseField>
  </Tab>
</Tabs>

## Integration Variants

**Current connector:** SAP SuccessFactors

For **SAP SuccessFactors**, we also offer the following other connector variants:

<CardGroup cols={2}>
  <Card title="SAP SuccessFactors ATS" icon="https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg" href="/ats/connectors/successfactors">
    SAP SuccessFactors for the ATS category
  </Card>

  <Card title="SAP SuccessFactors Assessment" icon="https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg" href="/assessment/connectors/successfactors">
    SAP SuccessFactors for the Assessment category
  </Card>

  <Card title="SAP SuccessFactors LMS" icon="https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg" href="/lms/connectors/successfactors">
    SAP SuccessFactors for the LMS category
  </Card>
</CardGroup>
