Workday Financial Management and SAP SuccessFactors integration
Workday Financial Management runs your accounting, procurement, and general ledger. SAP SuccessFactors is your HCM system of record for employees and compensation. When you connect them, employee hires, terminations, and compensation changes flow into Workday, and cost center codes stay synchronized so payroll allocations land on the correct dimensions. ml-connector bridges the different APIs and authentication schemes so your finance and HR data remain aligned without manual sync.
What moves between them
Employee and cost center records flow from SAP SuccessFactors into Workday Financial Management. On a schedule you define, ml-connector reads new hires, terminations, job changes, and compensation updates from SuccessFactors using delta sync on lastModifiedDateTime, then posts employee records and worktag mappings into Workday via REST APIs. Cost center codes are synchronized in both directions so compensation data posted to Workday lands on valid financial dimensions. Workday's journal entry interface is not written to directly; instead, employee and cost center changes update the worktag and supplier dimensions that later financial entries reference. The sync runs on a cadence you control, typically daily or weekly.
How ml-connector handles it
ml-connector stores both credential sets encrypted in Postgres. For SuccessFactors, it generates a fresh SAML assertion signed with your private key, POSTs to the SuccessFactors OAuth token endpoint, and caches the 24-hour bearer token. For Workday, it refreshes the OAuth2 token using the stored refresh token. On each sync cycle, ml-connector queries SuccessFactors with a lastModifiedDateTime filter to fetch only changed records, manually parses the non-standard OData timestamp format (/Date(milliseconds)/), respects the minimum page size of 20 and sets top=1000 to avoid silently missing employees. It then maps SuccessFactors employee IDs, cost center codes, and job titles to Workday's worktag structure and employee master. If a Workday write fails, the entire record is logged with full audit context and can be retried. SuccessFactors enforces a maximum of 10 concurrent threads per client, so ml-connector serializes bulk reads. Both systems have rate limits that trigger HTTP 429 responses; ml-connector backs off exponentially and retries. Workday's tenant URL is customer-specific; SuccessFactors API hostname mirrors the login hostname and varies by datacenter (api4.successfactors.com for US East Virginia, api8 for Ashburn, api12.sapsf.com for EMEA, api15 for Singapore).
A real-world example
A financial services firm with 800 employees uses Workday Financial Management for accounting and Workday Payroll for payroll processing, but outsources HR administration to SAP SuccessFactors Employee Central. Before the integration, the finance team manually imported SuccessFactors headcount snapshots monthly and re-entered cost center assignments in Workday's GL, leading to mismatches during month-end close when headcount and labor costs did not align. New hires and terminations also created duplicate or orphaned records in Workday. With SuccessFactors and Workday connected, each new hire appears in Workday's employee master within hours, assigned to the correct cost center from the start. Terminations deactivate both systems in sync. Month-end close now begins with employee and cost center data already aligned, eliminating the manual import step and the reconciliation friction.
What you can do
- Sync employee records, job changes, and terminations from SAP SuccessFactors to Workday Financial Management using delta sync on lastModifiedDateTime.
- Map SuccessFactors cost center codes to Workday worktags and financial dimensions so payroll and expenses allocate to the correct GL accounts.
- Generate SAML bearer tokens for SuccessFactors OAuth2 authentication and refresh Workday OAuth2 tokens on each sync cycle.
- Parse SuccessFactors OData V2 datetime formats, respect page-size limits, and query with lastModifiedDateTime filters to avoid missed or duplicate records.
- Maintain full audit trails on every employee and cost center sync, with error logging and manual replay capability for failed records.
Questions
- What employee and cost center records move from SuccessFactors to Workday?
- New hires, terminations, job changes, and compensation updates flow from SuccessFactors into Workday as employee master records and worktag mappings. Cost center codes synchronize in both directions so compensation data posted to Workday references valid financial dimensions. Workday's GL accounts and journal entries are not written to directly by this integration; instead, the synchronized dimensions are used by downstream financial processes.
- How does ml-connector handle SuccessFactors' non-standard OData datetime format and page size limits?
- SuccessFactors returns timestamps in a non-standard format (/Date(milliseconds)/) rather than ISO-8601, and it requires explicit top=1000 parameters to avoid silently returning only the default 20 records per page. ml-connector parses the milliseconds-since-epoch timestamps, sets top=1000 on all queries, and uses lastModifiedDateTime filters to fetch only changed records since the last sync run, avoiding redundant downloads and missed employees.
- What happens if a Workday write fails or a SuccessFactors record cannot be parsed?
- Every record carries full context in the audit log. If a write to Workday fails, the error is logged with the employee ID, change timestamp, and API response, and the record can be manually reviewed and replayed. If a SuccessFactors record cannot be parsed (for example, a malformed timestamp or missing cost center code), it is flagged in the audit log and skipped without failing the entire sync run.
Related integrations
More Workday Financial Management integrations
Other systems that connect to SAP SuccessFactors
Connect Workday Financial Management and SAP SuccessFactors
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started