> ## 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.

# How It Works

## Data Flow

* The SAP SuccessFactors Skill Sync integrations rely on the use of a shared set
  of skills between TechWolf and SAP SuccessFactors. This shared set of skills
  is managed by the Skills Taxonomy Sync integration.
* The Skills Taxonomy Sync synchronizes skills bidirectionally between TechWolf
  and SAP SuccessFactors, and pushes the hierarchical structure of the Skills
  Taxonomy from TechWolf to SAP SuccessFactors. Updates are propagated between
  these two systems on a hybrid push/pull strategy. SAP will push files with the
  latest Attributes Library data to an SFTP server following a customer-defined
  schedule in the SAP Integration Center. TechWolf will then pull these files
  from the SFTP server on a separate schedule. TechWolf will ensure files with
  the most up-to-date Skills Taxonomy information are always present on the SFTP
  server, available for import into the Attributes Library in SAP
  SuccessFactors, according to other customer-defined schedules in the SAP
  Integration Center.
* Employee and Job Skills are synchronized in a bidirectional flow, where
  Employee and Job skill data updates in the SkillEngine API are synchronized in
  real-time to SAP SuccessFactors using API endpoints, following a push
  strategy.
  * Employee Growth Portfolios are updated using the SAP REST API, cfr.
    [Overview - Employees <Icon icon="link" iconType="solid" />](/integrations/sap-skill-sync-integration/overview-employees#reference-material)
  * Job skills are updated using the SAP OData API, cfr.
    [Overview - Jobs <Icon icon="link" iconType="solid" />](/integrations/sap-skill-sync-integration/overview-jobs#reference-material)
* SAP SuccessFactors updates to Employee Skill Profiles are synced at regular
  intervals to the SkillEngine API using a hybrid push/pull strategy. SAP will
  push files with the latest Employee Growth Portfolio data to an SFTP server
  following a customer-defined schedule in the SAP Integration Center, that
  TechWolf will pull from on a separate schedule.
  * The frequency with which TechWolf processes the SAP SuccessFactors
    Employee Growth Portfolio data is configurable, but daily by default.
  * Employee skills synced by the SAP SuccessFactors Integration are tracked
    using the `source` field in the
    [Employee Skill Profile Feedback endpoint <Icon icon="link" iconType="solid" />](/reference/latest/Employees/EmployeeProfile/patch-employees-external-id-skill-profile)
    payload, tagged as `"sap-integration"`. To retrieve these sources in an
    Employee's profile, use the query parameter `?include=sources` in the
    [Employee Skill Profile Feedback endpoint <Icon icon="link" iconType="solid" />](/reference/latest/Employees/EmployeeProfile/patch-employees-external-id-skill-profile),
    which returns the Skill's `source_event` with
    `"event_type": "skill_profile_feedback"` and
    `"source": "sap-integration"`.
* SAP SuccessFactors updates to Job Skill Profiles are synced at regular
  intervals to the SkillEngine API using a pull strategy. This means that all
  flows are all initiated by TechWolf.
  * The frequency by which SAP SuccessFactors skills are synchronized to
    TechWolf is configurable, but bi-hourly by default.
  * SAP SuccessFactors Job Skill Profiles are fetched using the SAP OData API,
    cfr.
    [Overview - Jobs <Icon icon="link" iconType="solid" />](/integrations/sap-skill-sync-integration/overview-jobs#reference-material)
  * Job skills synced by the SAP SuccessFactors Integration are tracked using
    the `source` field in the
    [Job Skill Profile Feedback endpoint <Icon icon="link" iconType="solid" />](/reference/latest/Jobs/JobProfile/patch-job-architecture-jobs-job-external-id-skill-profile)
    payload, tagged as `"sap-integration"`. To retrieve these sources from a
    Job, use the
    [List Job Profile Data endpoint <Icon icon="link" iconType="solid" />](</reference/latest/Jobs/Job Profile Data/get-job-architecture-jobs-job-external-id-profile-data>).
    Items with `"data_type": "skill_profile_feedback"` and
    `"source": "sap-integration"` indicate skills synced by the SAP
    SuccessFactors Integration.

In summary: TechWolf uses API endpoints where available, to ensure near
instantaneous synchronization of skill profile updates from TechWolf to SAP
SuccessFactors. Management of the Skills Taxonomy in TechWolf and Attributes
Library in SAP SuccessFactors is done through file-based synchronization. The
latest state of the Employee Growth Portfolios is also propagated to TechWolf
through a file-based sync. All file-based integrations are managed through the
SAP Integration Center.

## Configuration Options

### Sync Direction

The integration supports three sync direction options, specifying which data
flow directions are allowed:

1. **TechWolf - SAP Bidirectional Sync** (default): Two-way sync between
   TechWolf and SAP SuccessFactors; changes made in TechWolf Skill Profiles are
   synchronized to their corresponding SAP SuccessFactors Skill Profiles, and
   vice versa.

2. **TechWolf to SAP Unidirectional Sync**: Skills flow from TechWolf to SAP
   SuccessFactors only; changes made in TechWolf Skill Profiles are copied to
   their corresponding SAP SuccessFactors Skill Profiles, while changes made in
   SAP SuccessFactors are discarded and overwritten with the state of the
   TechWolf Skill Profiles.

3. **SAP to TechWolf Unidirectional Sync**: Skills flow from SAP SuccessFactors
   to TechWolf only; changes made in SAP SuccessFactors Skill Profiles are
   copied to their corresponding TechWolf Skill Profiles, while changes made in
   TechWolf are discarded and overwritten with the state of the SAP
   SuccessFactors Skill Profiles.

### Initial Load Merge Strategy

For the correct functioning of the normal operation of the integration, the
skill profiles in both systems should be initially aligned. The integration will
do this initial alignment itself automatically when the integration is first
enabled, or when it is re-enabled after having been paused, or when it
encounters an entity it had no knowledge about yet.

The initial alignment can happen in different ways; we support three such merge
strategy options:

1. **Merge Systems**: Combines skills from both SAP SuccessFactors and TechWolf
   systems. Skills present in SAP SuccessFactors but not in TechWolf will be
   synced to TechWolf, and vice versa. This preserves existing skill data in
   both systems. TechWolf takes precedence over SAP SuccessFactors in case of
   conflicting values (e.g. conflicting proficiency levels).

2. **Push TechWolf**: Replaces all skills in SAP SuccessFactors with the skill
   data from TechWolf. This strategy clears existing SAP SuccessFactors skills
   before importing TechWolf data.

3. **Push SAP**: Replaces all skills in TechWolf with the skill data from SAP
   SuccessFactors. This strategy clears existing TechWolf skills before
   importing SAP SuccessFactors data.
