HiBob logoSAP Concur logo

HR to ERP

HiBob to SAP Concur integration: Bob employees as Concur users with approver, currency and cost centre

With an integration between HiBob and SAP Concur, every employee from Bob becomes a Concur user, with employee number, reimbursement currency, country, cost centre and the manager from Bob as expense approver. A departure in Bob sets the user in Concur to inactive, with the end date included.

What the integration does

Organisations that use HiBob as their HR system and SAP Concur for travel and expenses often fill Concur with an export from Bob or by hand. Approvers then lag behind the organisation in Bob, and expenses land on a cost centre that changed in Bob long ago.

  1. Bob reports a change; KoppelHet puts the employee in the queue for the next bundle.
  2. New employees first get their identity in Concur; only once it exists does the spend profile follow.
  3. KoppelHet translates site, department and cost centre into the values and list codes Concur knows.
  4. The manager from Bob becomes expense approver, if they have the right role in Concur themselves.
  5. KoppelHet follows every bundle until Concur is done and reports per employee what was rejected.
HiBob → KoppelHet → SAP ConcurSOURCEHiBobTARGETSAP ConcurKoppelHetmapping · logging · monitoringHiBob → KoppelHet → SAP ConcurSOURCEHiBobTARGETSAP ConcurKoppelHetmapping · logging · monitoring
Out: Identity with userName, name and work email · Enterprise data with employee number and cost centre · Spend profile with currency, country and approver · List fields of the expense form · Active, inactive and end date

What to watch for with HiBob and SAP Concur

  • According to SAP, the department and cost centre fields in Concur's enterprise data are not linked to the fields with the same name in Concur Expense. KoppelHet therefore also writes the cost centre from Bob into the list field the expense form uses, as a list item code that exists in Concur. Otherwise the cost centre is in the profile, but not on the expense report.
  • Concur does not set the manager as approver by itself, and an approver must have the matching role in Concur. KoppelHet sets the manager from Bob as expense approver and checks that role first. If the new manager lacks the role, the Concur administrator gets an alert instead of a route that gets stuck.
  • For a spend profile Concur asks for an ISO country code and a reimbursement currency. Bob has no currency per employee, but every employee belongs to a site in a country. KoppelHet derives country and currency from the site, so a move to the Dublin site also changes the currency in Concur.
  • Concur only creates a spend profile if the user's identity already exists. Bob reports a new employee with one event. KoppelHet splits that into two steps and only sends the spend profile once Concur has confirmed the identity, so a new colleague is not created halfway.
  • Concur does not support circular reporting lines and clears the field when it finds one. During a reorganisation someone in Bob can temporarily report to their own subordinate. KoppelHet looks for such loops before sending and holds those employees back, so Concur does not silently remove an approver.
  • Bob's departure event only arrives after midnight on the effective date. Concur processes a bulk request in the background, with a timeout of two hours. KoppelHet sends the deactivation in the first bundle after that event and checks the status, so a departed employee can no longer submit expenses the next morning.

How we build and run it

  • The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
  • Every sync and every error is visible in the functional log; on an error your administrator is notified.
  • A change that cannot go through is not half-applied but queued for another attempt.
  • KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
  • After go-live we manage the integration and adjust it when your process changes.
  • The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.

Implementation, architecture and compliance

Implementation and price

This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.

A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Do travel profiles go along too?

No, the first version only sets what is needed to submit expenses. Travel data can be added later as an extension.

Do approved expenses go back to Bob or payroll?

Not in this integration. Payment through payroll can be added later as an extension.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • HiBob through employee data webhooks (employee.created, employee.updated, employee.left) and POST /people/search with fields root.email, work.employeeIdInCompany, work.department, work.reportsTo and work.site. Fields without read permission are silently left out.
  • SAP Concur through User Provisioning v4 (SCIM 2.0) - POST /profile/v4/Bulk/ (at most 100 operations or 400 KB), GET /profile/v4/provisions/{provisionId}/status at intervals of at least 5 seconds, timeout 120 minutes. Enterprise with companyId, employeeNumber, costCenter, department, terminationDate; spend with reimbursementCurrency, budgetCountryCode, customData (orgUnit1-6 and custom1-22 as list item code) and approvers (report, request). No circular reporting lines. Scopes user.provision.write and user.provision.read.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in HiBobField in SAP ConcurNotes
/root/emailuserName en emailsUnique across all Concur products
/root/firstName, /root/surnamename.givenName, name.familyName
/work/employeeIdInCompanyenterprise.employeeNumberUnique within the Concur company
/work/site (land)spend.budgetCountryCode en reimbursementCurrencyTable per site
/work/departmentorgUnit-lijstveldList item code from Concur
Kostenplaats (veld in Bob)enterprise.costCenter en een custom-lijstveld
/work/reportsToGoedkeurder declaraties (report)
Lifecycle (vertrek)active = false en enterprise.terminationDate

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.