Darwinbox logoOkta logo

Identity and access management

Darwinbox to Okta integration: Darwinbox as HR source for Okta, with the work email back in Darwinbox

With an integration between Darwinbox and Okta, every employee from Darwinbox gets an Okta user with job title, department, group company and manager, and is deactivated on the approved last working day. Darwinbox provides its own Okta Workflows connector that can update the email address in Darwinbox; KoppelHet makes Darwinbox the HR source for Okta through the Custom Identity Source and uses that connector or the API for the return path.

What the integration does

Organisations that use Darwinbox as HR system and Okta for SSO often only switch on the Darwinbox app for sign-in in Okta. IT then creates users by hand, and HR has to retype the work email Okta hands out into Darwinbox.

  1. We request API access from Darwinbox, with a dataset containing the fields Okta needs.
  2. In Okta we create a Custom Identity Source and a service app for KoppelHet.
  3. At go-live we link existing Okta users to their Darwinbox user ID.
  4. After that KoppelHet delivers the changes to Okta hourly in one session, and deactivates leavers on their last working day.
  5. As soon as Okta has a work email, KoppelHet puts it into Darwinbox through the Darwinbox API or the Workflows connector.
Darwinbox → KoppelHet → OktaSOURCEDarwinboxTARGETOktaKoppelHetmapping · logging · monitoringDarwinbox → KoppelHet → OktaSOURCEDarwinboxTARGETOktaKoppelHetmapping · logging · monitoring
Out: Okta user with the Darwinbox user ID as externalId · Job title, department, group company and country · Manager · Hire date and approved last working day · Work email back to Darwinbox

What to watch for with Darwinbox and Okta

  • The Okta catalogue lists Darwinbox with a connector and a workflow template. According to Okta, the Okta Workflows connector is built by Darwinbox itself, with support through Darwinbox, and has actions to update user fields and the email address in Darwinbox. An HR import from Darwinbox into Okta is not described in those sources; for that KoppelHet uses Okta's Custom Identity Source.
  • Okta treats a HR source's externalId as immutable. In Darwinbox the employee_id can be changed; according to Darwinbox the call that sets the email address also updates employee IDs. KoppelHet therefore uses Darwinbox's internal user_id as externalId and sets the employee_id as an ordinary attribute.
  • Darwinbox only returns departure data for a given list of employees, with the status approved, pending or revoked. KoppelHet requests them for the employees from the last round and only deactivates the Okta user on an approved departure, on the last working day. If the departure is revoked, the schedule lapses.
  • Darwinbox keeps a list of deleted hires, with date and reason. If Okta has already staged a user for such a person, KoppelHet removes them from the HR source, so Okta deactivates them and no active account remains for someone who never started.
  • Darwinbox returns dates in several formats, such as 12-Aug-2011, and in Okta's HR source every field is text. KoppelHet puts hire date and last working day in one fixed format, so group rules in Okta can rely on them.
  • Which fields the Darwinbox API returns is decided by a dataset Darwinbox sets up per customer, and API access is only given on request. Fields such as group company, country and manager therefore only come along if they are in that dataset. KoppelHet draws up the field list beforehand with you and Darwinbox.
  • A session of Okta's HR source takes two hundred users per delivery, and only one session per source can run at a time. Darwinbox can return all changed employees since a point in time in one call. KoppelHet bundles those changes hourly into one session, so Okta does not get stuck on overlapping sessions.

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 the Darwinbox app in Okta not enough?

It handles signing in to Darwinbox. According to the descriptions we found, it does not create and deactivate users in Okta from Darwinbox.

Is a leaver deleted from Okta?

No, Okta deactivates the user. Deleting remains IT's choice.

What if HR revokes a departure?

Then KoppelHet sees the revoked status and the user stays active.

Technical details for IT

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

  • Darwinbox Employee Core APIs (api_key per endpoint with basic auth, or OAuth 2.0 client credentials with a 3600-second token): masterapi/employee with datasetKey and last_modified or date_of_activation; UpdateEmployeeDetails/separationDetails with separation_status (Approved, Pending or Revoked) and a list of employee_ids; UpdateEmployeeDetails/getDeletedEmployees; UpdateEmployeeDetails/update with email_id. Okta Workflows connector by Darwinbox with the actions Update User Attributes and Update Email ID.
  • Okta Identity Sources API (Custom Identity Source): create session, bulk upsert of users (200 per delivery), bulk delete on departure or deleted hire (Okta deactivates), one active session per source; externalId immutable; profile attributes as strings only.

Which fields are transferred

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

Field in DarwinboxField in OktaNotes
user_idexternalId
employee_idemployeeNumber
first_name, last_namefirstName, lastName
Naamgevingsregellogin en email
designation_nametitle
department_namedepartment
Group companyorganization en groep
direct_manager_employee_idmanagerId
date_of_joining, goedgekeurde laatste werkdagEigen attributen (tekst) en deactiveren
email (Okta)email_id (Darwinbox)

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.