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

# SAP BTP Connector

The SAP SuccessFactors via BTP Data Source Connector is an API-based integration
that extracts HR data from SAP SuccessFactors through the SAP Integration Suite.
TechWolf calls the iFlow over HTTPS; the iFlow calls SuccessFactors on the
customer's behalf and stages the results in TechWolf-managed storage for
ingestion into the SkillEngine API.

## Prerequisites

* An active TechWolf contract.
* A working **SAP SuccessFactors** tenant.
* A working **SAP BTP** tenant with **SAP Integration Suite** provisioned,
  including the *Build Integration Scenarios* capability.

The full prerequisites and the BTP-side roles required are listed on the
[Installation](/integrations/datasource-integrations/connectors/sap-btp/installation)
page.

## Key benefits

* **Customer-owned infrastructure**: every call to SuccessFactors is performed
  in the customer's BTP tenant, giving the customer full visibility via BTP's
  Monitor Message Processing view and keeping SuccessFactors credentials inside
  the customer's BTP Keystore.
* **Single package, multiple data types**: one BTP package serves all enabled
  data types. Enabling or disabling a data type does not require a new install.
* **No file infrastructure**: no SFTP, no report schedules, no export files
  (integration center definitions). Data flows from SuccessFactors through the
  iFlow to TechWolf storage.

Note that this is a valid but equivalent alternative to the Integration Center
definition-based method of extracting data. The most notable difference is that
data moves through the BTP platform.

## How it works

1. TechWolf calls the integration over HTTPS to request a run for a given data
   type.
2. The integration acknowledges the request and processes the work
   asynchronously.
3. The process calls SuccessFactors with the entity set and query for the
   requested data type, paginates through the results, and writes them to
   TechWolf-managed storage.
4. TechWolf ingests the staged data into the SkillEngine API using connectors.

See the
[How It Works](/integrations/datasource-integrations/connectors/sap-btp/how-it-works)
page for the full flow.

## Available data types

The connector supports the following data types. Each data type corresponds to a
SuccessFactors OData V2 EntitySet and requires the corresponding SuccessFactors
permissions to be granted to the technical user used by the iFlow. These
permissions are detailed on the
[Installation](/integrations/datasource-integrations/connectors/sap-btp/installation)
page.

<AccordionGroup>
  <Accordion title="Employee Basic Info" icon="user">
    Basic Employee identity and account status, sourced from the `UserAccount`
    EntitySet.

    | Output field           | Description                                                      |
    | ---------------------- | ---------------------------------------------------------------- |
    | `accountId`            | The SuccessFactors account ID                                    |
    | `accountUuid`          | The SuccessFactors account UUID                                  |
    | `accountStatus`        | Whether the account is active                                    |
    | `userType`             | The user type                                                    |
    | `perPersonUuid`        | The Per Person UUID linking the account to the underlying person |
    | `personIdExternal`     | The external Person ID                                           |
    | `userId`               | The User ID                                                      |
    | `department`           | The user's department                                            |
    | `managerUserId`        | The User ID of the user's manager                                |
    | `lastModifiedDateTime` | Timestamp of the last modification                               |
  </Accordion>

  <Accordion title="Employee Certificates" icon="certificate">
    Employee certifications, sourced from the `Background_Certificates`
    EntitySet.

    | Output field          | Description                                                 |
    | --------------------- | ----------------------------------------------------------- |
    | `backgroundElementId` | Background element ID for the certificate row               |
    | `userId`              | The Employee's User ID                                      |
    | `perPersonUuid`       | The Per Person UUID linking the certificate to the Employee |
    | `name`                | Name of the certification                                   |
    | `description`         | Description of the certification                            |
    | `startDate`           | Date the certification was issued                           |
    | `endDate`             | Date the certification expires                              |
    | `lastModifiedDate`    | Timestamp of the last modification                          |
  </Accordion>

  <Accordion title="Employee Courses" icon="book-open">
    Employee course history, sourced from the `Background_Courses` EntitySet.

    | Output field          | Description                                            |
    | --------------------- | ------------------------------------------------------ |
    | `backgroundElementId` | Background element ID for the course row               |
    | `userId`              | The Employee's User ID                                 |
    | `perPersonUuid`       | The Per Person UUID linking the course to the Employee |
    | `course`              | Name of the course                                     |
    | `endDate`             | End date of the course                                 |
    | `instructionType`     | Localised label for the type of instruction            |
    | `length`              | Localised label for the course length                  |
    | `lastModifiedDate`    | Timestamp of the last modification                     |
  </Accordion>

  <Accordion title="Employee Education" icon="graduation-cap">
    Employee education history, sourced from the `Background_Education`
    EntitySet.

    | Output field          | Description                                               |
    | --------------------- | --------------------------------------------------------- |
    | `backgroundElementId` | Background element ID for the education row               |
    | `userId`              | The Employee's User ID                                    |
    | `perPersonUuid`       | The Per Person UUID linking the education to the Employee |
    | `school`              | Name of the educational institution                       |
    | `degree`              | Localised label for the degree obtained                   |
    | `major`               | Localised label for the field of study                    |
    | `startDate`           | Start date of the education                               |
    | `endDate`             | End date of the education                                 |
    | `lastModifiedDate`    | Timestamp of the last modification                        |
  </Accordion>

  <Accordion title="External Work Experience" icon="building">
    Employee external work history, sourced from the
    `Background_OutsideWorkExperience` EntitySet.

    | Output field          | Description                                                     |
    | --------------------- | --------------------------------------------------------------- |
    | `backgroundElementId` | Background element ID for the work-experience row               |
    | `userId`              | The Employee's User ID                                          |
    | `perPersonUuid`       | The Per Person UUID linking the work experience to the Employee |
    | `employer`            | Name of the previous employer                                   |
    | `startTitle`          | Job title at the previous employer                              |
    | `startDate`           | Start date of the position                                      |
    | `endDate`             | End date of the position                                        |
    | `lastModifiedDate`    | Timestamp of the last modification                              |
  </Accordion>

  <Accordion title="Internal Work Experience" icon="clock-rotate-left">
    Employee internal staffing history, sourced from the `EmpJob` EntitySet.
    The connector requests the full effective-dated history per Employee
    (not only the current job).

    | Output field           | Description                                                |
    | ---------------------- | ---------------------------------------------------------- |
    | `userId`               | The Employee's User ID                                     |
    | `perPersonUuid`        | The Per Person UUID linking the job period to the Employee |
    | `jobCode`              | Job code of the position                                   |
    | `jobTitle`             | Job title of the position                                  |
    | `startDate`            | Start date of the job period                               |
    | `endDate`              | End date of the job period                                 |
    | `seqNumber`            | Sequence number of the effective-dated row                 |
    | `employmentStatus`     | Employment status for this period                          |
    | `lastModifiedDateTime` | Timestamp of the last modification                         |
  </Accordion>

  <Accordion title="Job Families" icon="sitemap">
    Job Profile Builder families (job architecture, not per-Employee), sourced from
    the `FamilyEntity` MDF object. `parentFamily` carries the family hierarchy.

    | Output field        | Description                                              |
    | ------------------- | -------------------------------------------------------- |
    | `externalCode`      | External code of the family                              |
    | `name_en_US`        | Family name (en\_US locale)                              |
    | `name_defaultValue` | Family name (creator-locale default)                     |
    | `parentFamily`      | External code of the immediate parent family (hierarchy) |
    | `status`            | Whether the family is active                             |
  </Accordion>

  <Accordion title="Job Roles" icon="briefcase">
    Job Profile Builder roles (job architecture), sourced from the `RoleEntity` MDF
    object. A single canonical job code is resolved from the role's job-code
    mappings.

    | Output field        | Description                                                         |
    | ------------------- | ------------------------------------------------------------------- |
    | `externalCode`      | External code of the role                                           |
    | `name_en_US`        | Role name (en\_US locale)                                           |
    | `name_defaultValue` | Role name (creator-locale default)                                  |
    | `family`            | External code of the family this role belongs to                    |
    | `job_code`          | Canonical job code for the role (lowest job classification mapping) |
    | `status`            | Whether the role is active                                          |
  </Accordion>

  <Accordion title="Job Profiles" icon="file-lines">
    Job Profile Builder profiles — the readable description attached to a role —
    sourced from the `JobProfile` MDF object. Section bodies are returned inline per
    locale; only published profiles are included (drafts are excluded).

    | Output field              | Description                                      |
    | ------------------------- | ------------------------------------------------ |
    | `externalCode`            | External code of the profile                     |
    | `name_en_US`              | Profile name (en\_US locale)                     |
    | `name_defaultValue`       | Profile name (creator-locale default)            |
    | `role`                    | External code of the role this profile describes |
    | `headerEnUs`              | Header section text (en\_US)                     |
    | `headerDefault`           | Header section text (creator-locale default)     |
    | `footerEnUs`              | Footer section text (en\_US)                     |
    | `footerDefault`           | Footer section text (creator-locale default)     |
    | `longDescriptionEnUs`     | Long description text (en\_US)                   |
    | `longDescriptionDefault`  | Long description text (creator-locale default)   |
    | `shortDescriptionEnUs`    | Short description text (en\_US)                  |
    | `shortDescriptionDefault` | Short description text (creator-locale default)  |
    | `status`                  | Whether the profile is active                    |
  </Accordion>
</AccordionGroup>

<Info>
  Not all data types need to be enabled. Work with TechWolf to select the data
  types that are relevant for your use case. SuccessFactors permissions only
  need to be granted for the data types you choose to enable.
</Info>

## Next steps

<CardGroup cols={2}>
  <Card title="How It Works" icon="diagram-project" href="/integrations/datasource-integrations/connectors/sap-btp/how-it-works">
    Detailed walkthrough of the connector's flow, configuration, and
    authentication model.
  </Card>

  <Card title="Installation" icon="wrench" href="/integrations/datasource-integrations/connectors/sap-btp/installation">
    Step-by-step guide to install the connector in your SAP BTP tenant and
    grant the required SuccessFactors permissions.
  </Card>
</CardGroup>
