ml-connector
IFS CloudSAP SuccessFactors

IFS Cloud and SAP SuccessFactors integration

IFS Cloud runs manufacturing and finance. SAP SuccessFactors runs HR and compensation. Keeping them connected ensures your workforce records, org structure, and cost center allocations stay in agreement across both systems. New hires and job changes in SuccessFactors propagate into IFS Cloud, and cost center hierarchies are aligned so payroll allocations land on valid accounting dimensions. ml-connector handles the different authentication methods and API styles on each side and moves data on a schedule you define.

How IFS Cloud works

IFS Cloud exposes GL accounts, company codes, accounting dimensions (cost centers, divisions, business units), purchase orders, supplier invoices, and journal entries through OData v4 REST API with a tenant-specific base URL. Authentication uses OAuth 2.0 Client Credentials grant against a Keycloak token endpoint. IFS Cloud has no self-registerable webhook system; Event Actions exist but require manual per-customer configuration in the IFS admin UI. The recommended pattern is pull-based polling of the OData API with filters on modified timestamps. IFS enforces ETag headers for mutations (PATCH operations) and page-size limits of 5000 elements per request, with a rate limit of approximately 1000 requests per minute per tenant.

How SAP SuccessFactors works

SAP SuccessFactors Employee Central exposes employees, jobs, compensation, org structure, cost centers, divisions, and locations through OData V2 and V4 REST APIs on a datacenter-specific hostname. Authentication uses OAuth 2.0 with SAML Bearer Assertion, requiring an RSA key pair and signed SAML assertion; alternative X.509 mutual TLS is available on newer datacenters. Webhooks (Intelligent Services) exist but must be configured through the Admin Center UI, not via API. Pull-based delta sync using the lastModifiedDateTime filter is the recommended approach. SuccessFactors enforces a maximum of 10 concurrent threads per client, uses non-standard OData datetime format (/Date(milliseconds)/), and limits default page size to 20 records (max 1000).

What moves between them

The main flow is from SAP SuccessFactors into IFS Cloud. Employee records, job assignments, and cost center assignments from SuccessFactors are read via delta sync (filtering on lastModifiedDateTime) and upserted into IFS Cloud. Cost center and organizational hierarchy references are synced to ensure payroll and expense allocations in SuccessFactors map to valid IFS Cloud accounting dimensions. IFS Cloud employee masters are updated with current job titles, cost center assignments, and employment status. The sync runs on a schedule aligned with your payroll calendar. IFS Cloud read-only entities (GL accounts, company codes) are not modified by the integration.

How ml-connector handles it

ml-connector stores both credential sets encrypted and uses SAML assertion signing with your private key to obtain SuccessFactors Bearer tokens (24-hour lifetime). On the IFS Cloud side, it manages OAuth 2.0 Client Credentials tokens (approximately 60 minutes) and caches them to avoid repeated token requests. For data mutations in IFS Cloud, ml-connector reads records first to capture their ETag values, then includes those ETags in PATCH requests to satisfy IFS Cloud's optimistic concurrency control. SuccessFactors records are polled using lastModifiedDateTime filters to avoid redundant reads on unchanged data. Because both systems support only pull-based polling (not push webhooks that are API-driven), ml-connector polls both on your specified schedule, with exponential backoff on HTTP 429 (rate limit) and 503 (throttle) responses. Employee upserts use the PerPerson entity identifier to prevent duplicate records. Cost center and job code references are fetched first and cached so every employee record includes only valid accounting dimensions. ml-connector maintains a full audit trail of every sync, including record state changes and any downstream failures, so any sync can be replayed if a mutation fails.

A real-world example

A mid-sized manufacturer operates IFS Cloud for production, supply chain, and finance across three plants and a shared service center. They use SAP SuccessFactors for payroll and HR across the same locations. Before the integration, the finance and HR teams operated independently: HR loaded new hires and transfers into SuccessFactors, and the finance team had to manually sync those changes into IFS Cloud's employee masters and cost center assignments before payroll allocations would match the correct accounting dimensions. During month-end close, differences between SuccessFactors headcount and IFS Cloud employee counts caused reconciliation delays. With SAP SuccessFactors and IFS Cloud connected, each new hire, termination, or job change in SuccessFactors flows into IFS Cloud automatically on a daily schedule. Cost center assignments stay aligned, and the month-end close process starts with headcount and accounting dimensions already verified. The manual sync step is eliminated, and downstream GL posting errors from misaligned cost centers are prevented.

What you can do

  • Sync employee records, job assignments, and employment status from SAP SuccessFactors into IFS Cloud on a schedule you control.
  • Keep cost center and organizational hierarchy assignments aligned across both systems so payroll allocations land on valid IFS Cloud accounting dimensions.
  • Handle SAML Bearer Assertion signing and 24-hour token refresh for SuccessFactors authentication.
  • Manage IFS Cloud OAuth 2.0 tokens and ETag-based concurrency control for safe mutations without data loss.
  • Poll both systems using delta filters (lastModifiedDateTime) and exponential backoff on rate limits, with a full audit trail on every record.

Questions

What direction does data flow between IFS Cloud and SAP SuccessFactors?
The main flow is from SAP SuccessFactors into IFS Cloud. Employee records, job assignments, cost center codes, and org structure flow from SuccessFactors into IFS Cloud. IFS Cloud financial entities (GL accounts, company codes) are not modified. Cost center and division hierarchies are aligned in both directions so SuccessFactors payroll allocations reference valid IFS Cloud dimensions.
How does ml-connector handle the different authentication methods on each side?
ml-connector stores your SuccessFactors private key encrypted and signs SAML assertions to obtain 24-hour Bearer tokens on demand. For IFS Cloud, it manages OAuth 2.0 Client Credentials tokens (approximately 60 minutes) and caches them to minimize token requests. Each credential set is stored encrypted and separate, and token refresh happens automatically before expiry.
Why can't the integration rely on webhooks from both systems?
IFS Cloud Event Actions and SuccessFactors Intelligent Services webhooks both require manual configuration through their respective admin UIs and are not self-registerable via API. ml-connector uses pull-based polling with delta filters (lastModifiedDateTime on SuccessFactors, modified timestamps on IFS Cloud) on a schedule you define, with exponential backoff on rate limit responses. This approach is more reliable than waiting for push notifications that may not be enabled.

Related integrations

Connect IFS Cloud and SAP SuccessFactors

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

Get started