ml-connector
Oracle PeopleSoftSAP SuccessFactors

Oracle PeopleSoft and SAP SuccessFactors integration

Oracle PeopleSoft manages your on-premise ERP and enterprise HR data. SAP SuccessFactors is your cloud-based system of record for employees, compensation, and org structure. Connecting the two keeps your PeopleSoft employee records and job assignments aligned with SuccessFactors as new hires, terminations, and role changes flow through your HR system. ml-connector handles the authentication and datacenter complexity on both sides and runs the sync on your HR calendar.

How Oracle PeopleSoft works

Oracle PeopleSoft exposes employee records, jobs, compensation, cost centers, vendors, GL accounts, and purchase orders through self-hosted REST and SOAP interfaces. Each customer operates their own environment with a unique hostname, port, and node name. Authentication uses HTTP Basic Auth (OPRID and password) for all versions, or OAuth2 bearer tokens for PeopleTools 8.58 and later. PeopleSoft has no native webhook system, so integration relies on polling inquiry endpoints with date-range filters. Write operations require SOAP Component Interface calls or asynchronous Integration Broker messages. Most REST endpoints are read-only queries, and service operations must be explicitly enabled by the PeopleSoft administrator.

How SAP SuccessFactors works

SAP SuccessFactors exposes employee and organizational data through REST OData V2 and V4 endpoints, with datacenter-specific hostnames varying by region (api4.successfactors.com for US East, api12.sapsf.com for EMEA, etc.). Authentication requires OAuth2 SAML bearer assertion: customers register an OAuth2 client, upload an RSA public certificate, and sign assertions with their private key to obtain 24-hour access tokens. SuccessFactors publishes optional event callbacks for HR lifecycle events, but the recommended approach for reliable payroll and compensation sync is pull-only with delta filters using lastModifiedDateTime. The platform enforces a 10 concurrent-thread limit and 429/503 throttle responses with no rate-limit headers, and uses non-standard OData datetime formats like /Date(milliseconds)/ in responses.

What moves between them

The main flow runs from SAP SuccessFactors into Oracle PeopleSoft. Employee records (person, contact, personal info) sync daily, followed by job assignments and compensation data. Cost centers and organization dimensions sync bidirectionally to keep both systems aligned. Terminations and role changes in SuccessFactors update the employee status and job history in PeopleSoft. The sync runs on a schedule tied to your payroll close calendar, typically after SuccessFactors has processed the prior day's HR actions.

How ml-connector handles it

ml-connector generates a fresh SAML assertion for each SuccessFactors API call, signs it with the customer's RSA private key, and exchanges it for a bearer token to authenticate against the correct datacenter endpoint. On the PeopleSoft side, it accepts the customer's full hostname and port, authenticates with HTTP Basic Auth credentials, and uses the NodeName parameter to reach the correct Integration Broker listener. Because both systems lack ideal webhook support, ml-connector polls SuccessFactors using the lastModifiedDateTime delta filter to capture only new and changed records since the last run, and polls PeopleSoft inquiry endpoints to validate cost centers and org dimensions before posting employee updates. When SuccessFactors returns a 429 throttle response, ml-connector backs off exponentially and retries. PeopleSoft SOAP Component Interface calls are naturally idempotent if written with object keys, so a replay of a failed employee creation simply returns success if the record already exists. Every record carries a full audit trail of the source ID, target ID, sync timestamp, and outcome.

A real-world example

A mid-sized insurance holding company runs Oracle PeopleSoft on-premise for enterprise finance, procurement, and HR history, and uses SAP SuccessFactors in the cloud as the system of record for all active employees, compensation, and organizational changes across five regional offices. Before the integration, the HR team exported monthly employee census files from SuccessFactors and re-entered new hires, terminations, and job changes into PeopleSoft by hand, often one or two days late. This caused payroll processing delays and month-end audit exceptions when PeopleSoft headcount did not match SuccessFactors. With Oracle PeopleSoft and SAP SuccessFactors connected, each day's HR changes sync automatically to PeopleSoft, and the two systems are always in agreement on employee status, department, and cost center. Payroll processing now starts immediately, and the headcount reconciliation step at month-end close is eliminated.

What you can do

  • Sync new employees and rehires from SAP SuccessFactors into Oracle PeopleSoft with full name, contact info, personal data, and employment status.
  • Keep Oracle PeopleSoft job records aligned with SuccessFactors job changes, role promotions, and terminations using daily delta polling.
  • Map SuccessFactors cost centers and organizational dimensions to Oracle PeopleSoft departments and GL cost centers so payroll allocations land on valid accounts.
  • Authenticate SAP SuccessFactors with OAuth2 SAML assertion signing and Oracle PeopleSoft with HTTP Basic Auth, routing to the correct customer-specific hostname and datacenter endpoint.
  • Poll on a schedule tied to your HR and payroll calendar, with exponential backoff on throttle responses and a full audit trail on every employee and job record.

Questions

How does ml-connector handle the different authentication methods on each side?
SAP SuccessFactors requires OAuth2 SAML bearer assertion authentication: ml-connector signs assertions with the customer's private RSA key, exchanges them for 24-hour access tokens, and refreshes when needed. Oracle PeopleSoft uses HTTP Basic Auth with an OPRID and password for all versions, or OAuth2 tokens on 8.58 and later. ml-connector stores both credential sets encrypted and manages the lifecycle of each.
How does the integration handle the unique hostname and datacenter requirements?
Oracle PeopleSoft is self-hosted, so ml-connector accepts the full customer hostname and port as configuration. SAP SuccessFactors assigns a datacenter-specific hostname by region; ml-connector derives the correct API endpoint from the login hostname the customer provides. Both systems route through the exact endpoint specified so connectivity works across any network setup.
What happens if an employee record in SuccessFactors changes between syncs?
ml-connector polls SAP SuccessFactors using the lastModifiedDateTime delta filter, so it only fetches records that have changed since the last successful sync. If an update fails during sync, the full audit trail shows which record failed and why, and the next sync will retry it. Oracle PeopleSoft SOAP writes are naturally idempotent if using object keys, so re-running a job creates no duplicates.

Related integrations

Connect Oracle PeopleSoft and SAP SuccessFactors

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started