SAP Business One and BambooHR integration
SAP Business One runs financials, purchasing, and inventory for small-to-midsize businesses. BambooHR is the system of record for people data: headcount, org structure, and employment status. Connecting the two keeps the workforce that HR maintains reflected inside the ERP, so finance and operations work from the same list of active staff and the same departments. ml-connector reads employees and their job information from BambooHR and keeps the matching business partners and cost-center assignments current in SAP Business One, on a schedule you control.
What moves between them
The flow runs from BambooHR into SAP Business One. ml-connector reads employee records and their job information from BambooHR and creates or updates the matching business partners in SAP Business One, so the ERP reflects current hires, role moves, and terminations. Departments and divisions from BambooHR job info are aligned to SAP Business One profit centers and accounting dimensions, so each person is tagged to a valid cost center. SAP Business One owns the finance records and is the write target for people data; BambooHR is treated as the read-only HR source, so ml-connector does not push vendors, invoices, or journal entries back into BambooHR, which has no place to store them.
How ml-connector handles it
ml-connector stores both credential sets encrypted and bridges two very different auth models. On the BambooHR side it runs the OAuth 2.0 authorization code flow against the customer subdomain, requests the offline_access scope so it receives a refresh token, and renews the one-hour access token before it lapses; a legacy API key is supported where OAuth is not yet set up. On the SAP Business One side it accepts the full Service Layer base URL per customer, logs in with the company database and credentials, and reuses the B1SESSION cookie, re-logging in on the -5002 timeout. Because BambooHR returns only the id by default, the connector enumerates the exact employee fields it needs via the fields parameter, and it can act on employee.updated webhooks, verified by SHA-256 HMAC, while a scheduled poll with UpdateDate-style filters backfills anything missed. Departments and divisions are mapped to SAP Business One profit centers and dimensions first, so no business partner is written against a cost center that does not exist. SAP Business One has no idempotency key, so ml-connector checks for an existing business partner by code before creating one and dedups BambooHR records by employee id; throttled BambooHR calls return 503 with a Retry-After header, which it honors. Every record carries a full audit trail and can be replayed if a write fails.
A real-world example
A mid-sized contract manufacturer with about 300 staff across two plants runs SAP Business One for purchasing, inventory, and finance, and uses BambooHR as its HRIS. Before the integration, whenever HR hired, moved, or offboarded someone, an admin re-keyed the same change into SAP Business One by hand, and the ERP's list of active people and their departments drifted out of step with BambooHR. With SAP Business One and BambooHR connected, each employee change in BambooHR updates the matching business partner and cost-center tag in the ERP automatically, so finance and operations always see the current workforce and the duplicate data entry is gone.
What you can do
- Create and update SAP Business One business partners from BambooHR employee records.
- Keep the ERP in step with BambooHR hires, role changes, and terminations one direction.
- Map BambooHR departments and divisions to SAP Business One profit centers and dimensions.
- Bridge BambooHR subdomain OAuth tokens to the SAP Business One session cookie login.
- Poll on a schedule with retries, employee-id dedup, and a full audit trail on every record.
Questions
- Which direction does data move between SAP Business One and BambooHR?
- Data moves from BambooHR into SAP Business One. Employee records and their job information flow from BambooHR and update the matching business partners and cost-center assignments in SAP Business One. BambooHR is an HRIS with no vendors, invoices, or GL accounts, so ml-connector does not write finance records back into it.
- How does the integration bridge the two different logins?
- BambooHR uses OAuth 2.0, and its authorize and token URLs are tied to each customer subdomain, so there is no single global token URL. SAP Business One uses a session login that returns a B1SESSION cookie on a customer-specific Service Layer URL. ml-connector stores both credential sets encrypted, refreshes the BambooHR access token before its one-hour expiry, and re-logs in to SAP Business One when a call returns the -5002 timeout code.
- Does this rely on webhooks or scheduled polling?
- It can use both. BambooHR pushes employee.created, employee.updated, and employee.deleted webhooks signed with SHA-256 HMAC, which ml-connector verifies before acting on them. Because SAP Business One webhooks are new and require server-side admin setup, a scheduled poll with UpdateDate-style filters is the default and also backfills any change a webhook missed.
Related integrations
More SAP Business One integrations
Other systems that connect to BambooHR
Connect SAP Business One and BambooHR
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started