Sage HR logoOkta logo

Identity and access management

Sage HR to Okta integration: Okta users from Sage HR, with the Aquera connector or custom

With an integration between Sage HR and Okta, a new employee from Sage HR gets an Okta user with job title, team and manager, and Okta deactivates that user after the last working day of the termination in Sage HR. The Okta catalog lists a Sage HR connector from Aquera; without that licence KoppelHet delivers the employees through the Sage HR API as a custom HR source to Okta.

What the integration does

Organisations that use Sage HR for HR and Okta for access often set up a SAML sign-in to Sage HR first. Employees then still have to be entered in Okta by hand, and leavers stay active in Okta until IT notices.

  1. We first check whether you have Aquera's Sage HR connector; if so and it fits, we set that up.
  2. Otherwise a Sage HR administrator creates an API key for KoppelHet, and the Okta account team enables a custom HR source.
  3. Every hour KoppelHet reads the active and the terminated employees and delivers only the differences to Okta.
  4. A team change moves the user to the Okta group of the new team on the start date.
  5. After the last working day Okta deactivates the user; on a rehire the same user becomes active again.
Sage HR → KoppelHet → OktaSOURCESage HRTARGETOktaKoppelHetmapping · logging · monitoringSage HR → KoppelHet → OktaSOURCESage HRTARGETOktaKoppelHetmapping · logging · monitoring
Out: Okta user with employee number and work email · Job title and manager · Group per team · Separate group for on-call workers · Deactivation after the last working day, reactivation on rehire

What to watch for with Sage HR and Okta

  • The Okta catalog lists Sage HR by Aquera, an HR-as-a-Master connector that according to the catalog creates, updates and deactivates, built and maintained by Aquera and not by Sage. If you have that licence, that is one route. If not, KoppelHet delivers through Okta's Custom Identity Source.
  • Okta has no SAML app for Sage HR in its catalog; the Sage People SAML app belongs to a different Sage product. Sage HR itself asks for the login URL, the entity ID and the SHA-1 fingerprint of the identity provider for SAML. You set up that sign-in with a custom SAML app in Okta; the integration makes sure the users are already there.
  • The email address is required when creating an employee in Sage HR, but the API cannot change it afterwards. The Okta address therefore cannot go back to Sage HR. KoppelHet uses the address from Sage HR as the Okta login when the domain belongs to your Okta environment, and otherwise reports it to HR.
  • After a termination an employee no longer appears in Sage HR's list of active employees, but in a separate list with the end date. Okta does not see a missing user as a departure. KoppelHet reads both lists and delivers the leaver as a removal, so Okta deactivates.
  • A rehire brings an employee back in Sage HR under the same ID. KoppelHet recognises that ID and makes the existing Okta user with the same login active again, instead of creating a second user with a new address.
  • Sage HR sends no webhooks, and the API returns no office for an employee. KoppelHet compares with the previous state every hour and builds the Okta groups on team, with team_history for the date a change takes effect.
  • Sage HR flags on-call workers with their own checkbox. KoppelHet puts those users in a separate Okta group, so they get, for example, the roster but not the VPN or the intranet.

This integration is also part of joiner, mover, leaver.

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

Is there not already a Sage HR connector in Okta?

Yes, from Aquera, with its own licence. If you have it, it can be enough. Otherwise KoppelHet delivers as a custom HR source in Okta.

Can the Okta address go back to Sage HR?

No. The Sage HR API cannot change the email address after creation. HR fills in the work address straight away for a new employee.

What happens to the reason for leaving?

It stays in Sage HR. Okta only gets the date.

Technical details for IT

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

  • Sage HR REST API at {subdomain}.sage.hr/api with the X-Auth-Token header: GET /employees (email, first_name, last_name, employee_number, position, team, reports_to_employee_id, employment_start_date), GET /terminated-employees (termination_date), team_history per employee; pages with page and meta.next_page; no webhooks.
  • Okta through a Custom Identity Source (Identity Sources API: one session per source at a time, bulk upsert of up to 200 profiles per request, string values only, bulk delete deactivates) or through the Users API with an OAuth 2.0 service app (lifecycle activate, deactivate and reactivate).

Which fields are transferred

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

Field in Sage HRField in OktaNotes
employee_numberemployeeNumber en externalId
first_name en last_namefirstName en lastName
emaillogin en emailWork address, filled in at creation
positiontitle
team (met team_history)department en groep per team
reports_to_employee_idmanagerIdConverted to the employee number
employment_start_dateActiveren op de startdatum
termination_date (terminated-employees)Deactiveren

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.