Microsoft Dynamics 365 F&O and SAP SuccessFactors integration
Microsoft Dynamics 365 F&O runs financials, procurement, supply chain, and manufacturing. SAP SuccessFactors is the HR system of record for workers, jobs, org structure, and cost centers. Connecting the two keeps the worker and cost center reference data in F&O aligned with the HR truth in SuccessFactors, so hires, terminations, and job moves do not have to be re-keyed into the ERP. ml-connector reads worker, employment, and job records from SuccessFactors and maps them onto F&O workers and financial dimensions. Because SuccessFactors holds no invoices, purchase orders, or GL accounts, the ledger stays in F&O where it belongs.
What moves between them
The flow runs from SAP SuccessFactors into Microsoft Dynamics 365 F&O. ml-connector reads worker, employment, and job records from SuccessFactors and keeps the F&O worker and reference data current with hires, terminations, rehires, and job changes such as department, title, manager, or cost center. Cost center and department reference data from FOCostCenter and FODepartment is aligned to F&O financial dimension values so each worker and allocation resolves to a valid dimension string. SuccessFactors is the HR system of record and holds no GL accounts, invoices, or purchase orders, so the chart of accounts and the ledger stay in F&O and ml-connector never writes financial entries back into SuccessFactors. Reads run on a schedule you control, with Intelligent Services events used as an optional trigger to start a pull sooner.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the SuccessFactors side it signs a SAML assertion with the customer's RSA private key, exchanges it for a Bearer token against the datacenter-specific API host for that tenant, and refreshes the token before its 24-hour expiry; a missing Role-Based Permission shows up as a 403 rather than a 401, so the integration user needs grants for every entity it reads. On the F&O side it requests an OAuth 2.0 client-credentials token from Microsoft Entra ID with the https://{environment_host}/.default scope, builds the base URL from the stored environment host, and scopes every write to the right legal entity, adding cross-company=true with a dataAreaId filter for multi-entity tenants. SuccessFactors is read by delta sync on lastModifiedDateTime with the page size set to 1000 so records are not silently missed, and Intelligent Services events such as NewHire or JobInfoChange can trigger an immediate pull where they are configured. SuccessFactors cost centers and departments are mapped to F&O financial dimensions first, and because F&O passes dimensions as a formatted display string the customer must configure the format in Financial dimension configuration for integrating applications, or the write fails silently. F&O has no idempotency-key header and uses natural keys, so ml-connector checks the worker or dimension key before it writes and uses a stable BullMQ jobId to avoid duplicate enqueues. Because SuccessFactors deactivates employees rather than deleting them, termination logic keys on a status change to inactive rather than a delete event. Both sides throttle with HTTP 429: F&O returns a Retry-After header to obey, while SuccessFactors sends no rate-limit headers, so the connector keeps SuccessFactors concurrency low and backs off with jitter. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized discrete manufacturer with around 600 staff across two plants and a head office runs Microsoft Dynamics 365 F&O for finance, procurement, and production, and uses SAP SuccessFactors Employee Central as the HR system of record. Before the integration, a finance administrator re-keyed every new hire, termination, and transfer into F&O by hand, and the cost center values in the ERP drifted out of step whenever a team was renamed or someone moved plants, which showed up as misallocated labor at month-end close. With Microsoft Dynamics 365 F&O and SAP SuccessFactors connected, worker and job changes flow into F&O automatically, SuccessFactors cost centers map onto the matching financial dimension strings, and the org data in the ERP matches the HR records. The manual re-keying is gone and labor lands on valid dimensions before close begins.
What you can do
- Keep Microsoft Dynamics 365 F&O worker and reference data aligned with SAP SuccessFactors hires, terminations, rehires, and job changes.
- Map SAP SuccessFactors cost centers and departments onto Microsoft Dynamics 365 F&O financial dimensions so allocations land on valid dimension strings.
- Read workers, employment, and jobs from SAP SuccessFactors by OData V2 delta sync on lastModifiedDateTime with the page size set explicitly.
- Treat a SAP SuccessFactors status change to inactive as a termination, since SuccessFactors deactivates rather than deletes.
- Bridge the SAP SuccessFactors SAML Bearer token and the Microsoft Entra ID client-credentials token, with retries, error replay, and a full audit trail.
Questions
- Which direction does data move between Microsoft Dynamics 365 F&O and SAP SuccessFactors?
- The flow is SAP SuccessFactors into Microsoft Dynamics 365 F&O. Worker, job, and cost center data moves from SuccessFactors into the F&O worker and financial dimension records, while cost centers and departments are aligned so each worker resolves to a valid dimension string. SuccessFactors is the HR system of record and holds no GL accounts, so ml-connector does not write financial entries back into it.
- Does SAP SuccessFactors hold invoices or GL accounts that post into Microsoft Dynamics 365 F&O?
- No. SAP SuccessFactors is an HCM system with no invoice, purchase order, payment, or general ledger objects. What it provides is workers, jobs, compensation, and cost center codes in EmpJob and FOCostCenter, and ml-connector maps that into F&O as worker records and financial dimension values. The chart of accounts and the ledger stay in Microsoft Dynamics 365 F&O, which is the source of truth for finance.
- How does the integration handle authentication and SuccessFactors financial dimensions in F&O?
- On the SuccessFactors side ml-connector signs a SAML assertion with the customer's RSA private key and exchanges it for a Bearer token that lasts up to 24 hours, and the API user must also hold Role-Based Permissions for each entity or the call returns a 403. On the F&O side it uses OAuth 2.0 client credentials against Microsoft Entra ID and builds the base URL from the stored environment host. SuccessFactors cost centers are mapped to F&O financial dimensions first, and because F&O expects a formatted dimension display string the customer configures that format in Financial dimension configuration for integrating applications so writes do not fail silently.
Related integrations
More Microsoft Dynamics 365 F&O integrations
Other systems that connect to SAP SuccessFactors
Connect Microsoft Dynamics 365 F&O and SAP SuccessFactors
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started