QuickBooks Online and SAP SuccessFactors integration
QuickBooks Online tracks company finances and payroll, while SAP SuccessFactors is the system of record for employees and compensation. When a new hire starts in SuccessFactors, they should appear in QuickBooks Online so payroll is set up. When someone is terminated in SuccessFactors, the same change should flow into QuickBooks Online to stop duplicate entries. ml-connector bridges the two systems and moves the records on a schedule you control.
What moves between them
New hires and terminations flow from SAP SuccessFactors into QuickBooks Online. When an employee is added in SuccessFactors Employee Central, ml-connector reads the PerPerson and EmpJob records and creates a corresponding Employee in QuickBooks Online. When an employee is terminated in SuccessFactors, ml-connector updates the matching QuickBooks Online Employee to inactive status. Cost centers (FOCostCenter) from SuccessFactors are mapped to Classes in QuickBooks Online so that payroll allocations land on the correct department. The sync runs on a cadence you control, typically aligned with your payroll calendar.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the QuickBooks Online side, it holds the OAuth 2.0 refresh token and automatically refreshes the access token when it expires. On the SuccessFactors side, it holds the RSA private key used to sign SAML assertions, generates a fresh assertion on each authentication attempt, and manages the 24-hour bearer token across multiple API calls. When SuccessFactors returns HTTP 429 or 503, ml-connector backs off exponentially and retries. The integration polls SuccessFactors for new and changed employees using the lastModifiedDateTime filter to avoid re-processing old records, maps each SuccessFactors employee to the correct QuickBooks Online Employee via a unique identifier (such as employee ID), and ensures SuccessFactors cost centers are pre-mapped to QuickBooks Online Classes before employee records are created. Because QuickBooks Online requires exact object representation with SyncToken for updates, ml-connector fetches the current Employee record, increments the SyncToken, and includes it in the PATCH. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized professional services firm runs QuickBooks Online for accounting and uses SAP SuccessFactors for core HR across multiple offices in different regions. Before the integration, the finance team manually created employee records in QuickBooks Online whenever HR notified them of a new hire, and forgot to deactivate departing employees, resulting in duplicate payroll entries and reconciliation chaos. SuccessFactors cost centers (one per office location) were never reliably mapped to QuickBooks Online Classes, making it impossible to see labor costs by location. With QuickBooks Online and SAP SuccessFactors connected, every new hire in SuccessFactors automatically creates an Employee in QuickBooks Online, terminations are reflected instantly, and cost center allocations are enforced consistently. The finance team no longer manually enters employee records and can track labor costs accurately by location.
What you can do
- Sync new hires from SAP SuccessFactors into QuickBooks Online as Employees on a schedule tied to your payroll calendar.
- Mark employees as inactive in QuickBooks Online when they are terminated in SAP SuccessFactors.
- Map SAP SuccessFactors cost centers to QuickBooks Online Classes so payroll allocations are accurate and auditable.
- Manage OAuth 2.0 refresh tokens for QuickBooks Online and SAML Bearer Assertion token refresh for SAP SuccessFactors automatically.
- Retry failed syncs with exponential backoff and maintain a full audit trail for every employee record moved.
Questions
- Which direction does employee data flow between QuickBooks Online and SAP SuccessFactors?
- The flow is from SAP SuccessFactors into QuickBooks Online. New hires and terminations in SuccessFactors are reflected in QuickBooks Online. Cost centers are mapped in both directions to ensure payroll allocations are consistent. QuickBooks Online is updated but not written back to SuccessFactors.
- How does ml-connector handle the SAML Bearer Assertion authentication that SAP SuccessFactors requires?
- ml-connector stores your RSA private key encrypted in its credential vault. When it needs to authenticate to SuccessFactors, it generates a fresh SAML assertion, signs it with the private key, and exchanges it for a 24-hour bearer token. The token is reused across multiple API calls within that 24-hour window and refreshed automatically when it expires.
- What happens when QuickBooks Online or SAP SuccessFactors is temporarily unavailable?
- ml-connector backs off exponentially and retries failed calls. When SuccessFactors returns HTTP 429 (throttled), ml-connector waits and tries again. Every synced record is logged in an audit trail so failed or partial syncs can be replayed once the system is back online.
Related integrations
More QuickBooks Online integrations
Other systems that connect to SAP SuccessFactors
Connect QuickBooks Online and SAP SuccessFactors
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started