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

This page describes how the SAP SuccessFactors via BTP Data Source Connector
moves data from SuccessFactors to TechWolf, what is configured per install, and
how the components authenticate to each other.

## Shape

The connector consists of two Integration Flows deployed in the customer's SAP
Integration Suite: a **Frontend**, a **Worker**, and one Value Mapping
artifact that holds per-tenant configuration. TechWolf calls the Frontend over
HTTPS. The Frontend hands work to the Worker through an internal queue. The
Worker calls SuccessFactors and writes the results to TechWolf-managed storage.
TechWolf reads from that storage to ingest data into the SkillEngine API.

```
TechWolf ──HTTPS──▶ Frontend iFlow ──queue──▶ Worker iFlow ──OData V2──▶ SuccessFactors
                                                      │
                                                      └──▶ TechWolf-managed storage ──▶ TechWolf
```

## Per-run lifecycle

1. **TechWolf requests a run**: TechWolf POSTs a run request to the Frontend for
   a specific data type. The Frontend validates the data type against an
   allowlist baked into the package and rejects unknown names.
2. **Frontend acknowledges and queues**: The Frontend writes an initial run
   state to TechWolf-managed storage, kicking off the integration. It hands off
   the processing to the Worker through an internal queue, and returns a run
   identifier to TechWolf.
3. **Worker calls SuccessFactors**: The Worker looks up the OData V2 EntitySet
   and query for the requested data type, calls the SuccessFactors OData V2 API
   with paging, and writes each page of results to TechWolf-managed storage as
   it arrives.
4. **Worker maintains run state**: Throughout the run, the Worker updates a run
   state record in TechWolf-managed storage so TechWolf can track progress,
   liveliness, and completion. The final state records whether the run completed
   successfully or failed.
5. **TechWolf ingests**: TechWolf reads the staged data from storage and ingests
   it into the SkillEngine API.

## Per-install configuration

The connector exposes one tenant-specific Value Mapping artifact called
`TenantConfig`. It holds the values that differ between installations.
Everything else (the list of data types, the SuccessFactors EntitySet and query
for each data type, the page size, and the output mapping) is baked into the
Content Package. Adjusting the query for a data type is currently a package
update from TechWolf, not a customer reconfiguration.

The `TenantConfig` artifact holds the following values:

| Field                 | Description                                                                                                                                  |            TechWolf Provided           |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------: |
| `SF_address`          | Base URL of your SuccessFactors data center (e.g. `https://api.successfactors.eu`).                                                          |                                        |
| `SF_credential_name`  | Name of the OAuth 2 SAML Bearer Assertion credential created in BTP Security Material, used by the Worker to authenticate to SuccessFactors. |                                        |
| `S3_bucket`           | TechWolf-managed S3 bucket the Worker writes to. Provided by TechWolf.                                                                       | <Icon icon="check" iconType="solid" /> |
| `S3_region`           | AWS region of the TechWolf-managed S3 bucket. Provided by TechWolf                                                                           | <Icon icon="check" iconType="solid" /> |
| `S3_base_path`        | Base path inside the bucket under which run artifacts are written.                                                                           | <Icon icon="check" iconType="solid" /> |
| `S3_access_key_alias` | Alias of the BTP Keystore entry holding the access key for the TechWolf-managed S3 bucket.                                                   | <Icon icon="check" iconType="solid" /> |
| `S3_secret_key_alias` | Alias of the BTP Keystore entry holding the secret key for the TechWolf-managed S3 bucket.                                                   | <Icon icon="check" iconType="solid" /> |

The values for these fields are provided by your TechWolf representative during
installation.

## Authentication

The connector uses two distinct authentication flows.

### TechWolf → Frontend

TechWolf authenticates to the Frontend iFlow using **OAuth 2 Client
Credentials**. The credentials are backed by a Process Integration Runtime
service key created during installation and shared with TechWolf. Every call
carries the standard OAuth 2 client-credentials bearer token; the iFlow
validates it through the BTP-managed authorization server.

### Worker → SuccessFactors

The Worker authenticates to SuccessFactors using an **OAuth 2 SAML Bearer
Assertion** flow, backed by a customer-managed X.509 certificate stored in the
BTP Keystore. The flow ties together a key pair in the BTP Keystore, a
SuccessFactors technical user, and a SuccessFactors OAuth 2 Client Application.
All three are identified by the same Common Name.

The detailed setup is described in the
[Set up BTP ↔ SuccessFactors authentication](/integrations/datasource-integrations/connectors/sap-btp/installation#set-up-btp--successfactors-authentication)
section of the installation guide.

{/* key** in its request header so SuccessFactors can attribute traffic to TechWolf */}

{/* to the BTP platform. */}

## Observability

* **Customer side**: Every Frontend and Worker invocation appears in SAP BTP's
  **Monitor Message Processing** view, including the data type, the run
  identifier, and per-step logs. This is the customer's view of every call the
  connector makes to SuccessFactors.
* **TechWolf side**: Run state in TechWolf-managed storage reflects the
  lifecycle of every run (`queued`, `running`, `done`, `failed`). TechWolf uses
  this to drive ingestion and to surface failures.

## Reference material

* [SAP Integration Suite documentation <Icon icon="link" iconType="solid" />](https://help.sap.com/docs/integration-suite)
* [SAP SuccessFactors OData V2 API <Icon icon="link" iconType="solid" />](https://help.sap.com/docs/successfactors-platform/sap-successfactors-api-reference-guide-odata-v2/sap-successfactors-api-reference-guide-odata-v2)
* [Installation](/integrations/datasource-integrations/connectors/sap-btp/installation)
  — the full BTP package install and SuccessFactors auth procedure for this
  connector.
