Connect Darwinbox to Microsoft Entra ID

Connect Darwinbox to Microsoft Entra ID

Connect Darwinbox to Microsoft Entra ID

When someone joins, moves or leaves in Darwinbox, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect Darwinbox to Microsoft Entra ID, Joinly reads each HR change from the Darwinbox employee master API at the source and applies it automatically to the right account. Darwinbox stays your source of truth; Joinly is the engine that keeps every action accurate and traceable.

Key takeaways

  • Darwinbox stays your source of truth; Joinly applies every joiner, mover and leaver to Entra ID automatically.

  • Joinly reads the Darwinbox employee master via its REST API and maps business unit, department and designation to the right Entra ID groups and licences, something the native provisioning path can’t do on its own.

  • Token-based authentication is handled for you — Joinly signs each request with the Darwinbox secret and timestamp, and supports Basic Auth or OAuth 2.0 depending on your tenant.

  • Multi-country, multi-entity Darwinbox deployments are resolved correctly, so the right business unit and locale drive the UPN across an APAC or global rollout.

  • Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001.

Darwinbox

Joiner

Mover

Leaver

Microsoft Entra ID (formerly Azure AD)

Quick facts

Source system

Darwinbox (Employee Core)

Target system

Microsoft Entra ID (formerly Azure AD)

Connection method

Darwinbox employee master API → Entra ID

Supported events

Joiner, mover, leaver (incl. rehire, transfers, multi-entity moves)

Synced attributes

Name, email / UPN, department, designation, manager, business unit, grade / band, start and end date

Authentication

Token-based (SHA512 signed) — Basic Auth or OAuth 2.0

Real-time or batch

Frequent sync, multiple times per day

Compliance

ISO 27001, NIS2-ready, GDPR (EU data centre)

How does Joinly sync Darwinbox to Microsoft Entra ID?

Joinly reads each HR change from the Darwinbox employee master API and applies it to the matching Entra ID account automatically. Darwinbox holds the authoritative employee record, so it is the starting point for each identity action.

  1. Joiner. HR completes the hire in Darwinbox. Joinly reads the new employee record and determines the role from attributes like business unit, department and designation. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups.

  2. Mover. When someone changes designation, department or business unit in Darwinbox, Joinly updates their group membership, permissions and licences to match. Access that no longer fits the new position is revoked, so permissions stay aligned with the actual job.

  3. Leaver. On the exit date recorded in Darwinbox, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and a soft-delete grace window keeps the account recoverable for a set period.

Example: A global services group runs Darwinbox across its India, Singapore and UK entities. It hires an analyst in the Singapore business unit. Joinly reads the new employee record from the master API, creates the Entra ID account, assigns an Office E3 licence and adds the analyst to the SG-Consulting group. When that analyst later transfers to the UK entity, Joinly swaps the business-unit groups the same day and keeps a single, stable UPN.

What manual user management costs

Without automation, every account starts as a Darwinbox ticket or a line in a spreadsheet that IT works through by hand. A custom-built Entra API-driven provisioning job can move attributes across from Darwinbox, but it maps roles to groups through hand-written rules and leaves the extract logic and matching to you — so the part that actually decides access still falls to people.

  • Onboarding delays. New joiners wait for accounts, licences and group access while a ticket sits in a queue, losing productive days in their first week.

  • Permissions that don’t keep up (privilege creep). When movers change designation or business unit, old access often stays attached, so people accumulate rights they no longer need.

  • Forgotten offboarding. Accounts that aren’t disabled on time are both a security and audit risk, and unused licences keep costing money — and across multiple entities it is easy to miss a leaver in one business unit.

Joinly vs. Entra API-driven inbound provisioning

Microsoft’s API-driven inbound provisioning is a fine baseline — you build a job that reads Darwinbox and pushes a SCIM bulk payload into Entra — but it stops short of the part that actually decides access, and you own the Darwinbox side. Here’s how the two compare for a Darwinbox-driven setup.


Joinly

Entra API-driven inbound provisioning

Source

Reads the Darwinbox employee master API directly

You build the reader; Entra ingests a SCIM bulk payload

Role-to-group mapping

Built in, rule-based on business unit / department / designation

Manual expression mappings; no role-to-group out of the box

Multi-entity / APAC

Resolves business unit, entity and locale for the UPN

Left to your extract and mapping logic

Authentication

Signs the SHA512 token; Basic Auth or OAuth 2.0 handled

You implement and maintain the Darwinbox auth

Licence assignment

Driven by role / attributes

Manual or group-based only

On-premise AD

Yes, own agent plus the native Microsoft agent

Provisioning agent required, limited mapping

Audit trail

Per-action logging tied to the HR source

Limited

Watch-outs when connecting Darwinbox to Microsoft Entra ID

A few Darwinbox-specific details decide whether this connection stays reliable at scale.

  • Full-load vs delta extract. The Darwinbox employee master API can return a full load or only records changed since a last-modified date. If the window is wrong, changes are missed or reprocessed. Joinly manages the extract window and matches each record to the existing account, so nothing is skipped or duplicated.

  • Multi-country, multi-entity deployments. In an APAC or global Darwinbox rollout the same person can sit under different business units, entities and locales. A naive rule can build the wrong UPN or place someone in the wrong tenant scope. Joinly applies explicit rules so the right business unit and locale drive the account.

  • Mapping business unit and designation to Entra groups. Business unit, department, designation, grade and band don’t translate one-to-one to Entra ID groups. Joinly builds explicit mapping rules from those structures to the correct groups and licences, so role drives access rather than manual assignment.

  • UPN format with duplicate names. When two employees share a name, a naive UPN rule produces collisions — and locale-specific characters make it worse. Joinly applies custom transformation rules — a suffix, business-unit code or controlled tiebreaker — so every UPN is unique and predictable from day one.

  • Token authentication and secret rotation. Darwinbox signs each request with a SHA512 token built from a shared secret and the current timestamp, so clock skew and secret rotation can break a hand-built job. Joinly generates a valid token on every call and manages the credential for you.

Joinly handles each of these by default with custom mapping and transformation.

Always audit-ready

Every account action Joinly performs is logged: who was affected, when it happened, which access changed and which Darwinbox change triggered it. For NIS2 that matters directly: access can be traced back to an authorised HR source rather than an ad-hoc request. Joinly is ISO 27001 certified, runs in an EU data centre in Amsterdam, applies least-privilege by default, and is built to meet NIS2 and ISO 27001.

Example case

Picture a diversified conglomerate with around 9,000 employees across financial services, retail and business-process outsourcing arms, running Darwinbox as its group HR core while its identity provisioning never quite keeps up. A team-built script pulls the employee master into Entra, yet transfers between group companies, a steady stream of internal moves and locale-specific names across its India and Southeast Asia entities keep breaking it — people land in the wrong business-unit groups, duplicate UPNs appear, and leavers in one arm stay active in another.

Connect Darwinbox to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change from the Darwinbox master API at the source and acts on it automatically: new hires have their account, Office licence and group access ready, transfers between group companies swap the right groups the same day, multi-entity people keep a single, stable UPN, and leavers are disabled on their exit date with a 30-day soft-delete grace window.

“Transfers between our group companies used to be the thing that broke every sync. Now an account is simply ready, a move just swaps the access, and we can show the auditor exactly which Darwinbox change created every bit of access.” — Head of IT, diversified conglomerate

The outcome this setup is designed for: onboarding drops from days to zero touch, wrong-group and duplicate-UPN errors stop, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.

More than a connector

A standalone Darwinbox to Entra ID connection is a good start, but identity rarely stops at one target. Joinly manages the complete chain from joiner to leaver across all your systems, with logging and governance built in. You review the exceptions; Joinly maintains the chain.

Schedule a demo

Installation manual

Installation manual

Connect Darwinbox to Microsoft Entra ID

Connect Darwinbox to Microsoft Entra ID

Installation guide

Follow these steps to connect Darwinbox to Microsoft Entra ID with Joinly. The entire cloud setup happens in the platform, with no scripts or local software required.

1. Create your account

Go to platform.joinly.app and create your account.

Note: charges may apply for using the platform after the trial period ends.


Joinly account creation screen at platform.joinly.app


Sign up at platform.joinly.app to get started.

2. Connect your Microsoft account

Open platform.joinly.app/settings/provisioning/idp-setup and connect your Microsoft tenant. Select the scopes you need. For provisioning you don’t need any additional scopes.


Joinly identity provider setup screen for connecting a Microsoft Entra tenant


Connect your Microsoft tenant and pick your scopes.

3. Import your existing accounts from Entra ID

Import all existing accounts from Entra ID at platform.joinly.app/settings/provisioning/entra-import. This gives Joinly a baseline of every account that already exists, so it can match people to their current account instead of creating duplicates.

4. Find the Darwinbox integration in the Joinly marketplace

Open the Joinly marketplace and search for the Darwinbox integration.

Don’t see your system listed? Get in touch at support@koppelhet.nl and we’ll help you out.


Joinly marketplace showing available HR integrations


Search the marketplace for the Darwinbox integration.

5. Follow the installation wizard

You may be redirected to integrations.joinly.app. Create an account there and enter your Darwinbox connection details: your Darwinbox instance URL, the admin API user, and the Darwinbox-issued secret key (and OAuth credentials if your tenant uses OAuth 2.0). Joinly builds the SHA512 request token for you. We only ask for the information needed to establish a successful connection with Darwinbox. All data is encrypted and stored securely.

Note: Darwinbox grants API access on a request-only basis. Ask your Darwinbox administrator to enable API access and issue the secret key before you start.


Joinly installation wizard for entering Darwinbox connection details


Enter your Darwinbox instance URL, API user and secret key in the wizard.

6. Configure your field mapping

Set up all your field mappings here. Templates support Liquid, so you can build your display name, UPN and other attributes dynamically from Darwinbox fields like business_unit, department and designation.

Frequently asked questions

  • How do I map the manager? Reference the Darwinbox reporting manager (manager_name) in the mapping and Joinly resolves the link to the right manager automatically.

  • How do I handle multi-entity employees? Pick the driving business unit / entity for the UPN; Joinly exposes the record’s org fields so you can choose the primary one.

  • How do I prevent duplicate usernames? Use the generateUniqueUsername helper, which falls back to the next pattern when the first one is already taken:
    {{ generateUniqueUsername: “{firstName}.{prefix}.{lastName}”, “{initials}.{prefix}.{lastName}” }}


Joinly field mapping screen for Darwinbox attributes using Liquid templates


Map Darwinbox fields to Entra ID attributes with Liquid templates.

7. Configure the scheduled import

At platform.joinly.app/settings/import-configs, configure how often the import from Darwinbox should run, and whether it runs as a full load or a delta on the last-modified date.

8. Configure your workflows

Workflows are where Joinly turns each HR change into the right action in Entra ID. Create an onboarding (joiner) and offboarding (leaver) workflow with trigger-based execution, then an Identity updated workflow with a Create/update employee in Entra action so every change in Darwinbox flows straight through to Entra ID. Finally, add a threshold workflow with the Entra soft delete action that runs a set period after the exit date (for example 30 days) to retire accounts safely.


Joinly workflow editor creating an employee onboarding workflow


Create a trigger-based onboarding workflow.


Adding the create or update employee in Entra action to a workflow


Add the create/update action, then set your matching strategy and field mapping.


Adding the Entra soft delete action to remove accounts on employee leave


Add the Entra soft delete action to retire accounts safely.

## AD on-premise support

Need to provision to an on-premise Active Directory as well? See our dedicated guide on connecting Darwinbox to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.

Frequently asked questions

Does the Darwinbox to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day, so changes in Darwinbox reach Entra ID quickly without waiting for a nightly batch.

How does Joinly authenticate to the Darwinbox API?
Darwinbox uses token-based authentication — either Basic Auth or OAuth 2.0 depending on your tenant — with a request token generated as a SHA512 hash of the admin email, a Darwinbox-issued secret key and the current timestamp. Joinly builds a valid token on every call, so you don’t have to script it or worry about clock skew.

How are multi-country and multi-entity employees handled?
Joinly reads the org fields on each Darwinbox record and applies your rules to pick the driving business unit, entity and locale for the UPN, so someone who appears under more than one entity keeps a single, stable account.

Which attributes sync from Darwinbox to Entra ID?
Name, email / UPN, department, designation, manager, business unit, grade / band, and start and end date. Additional Darwinbox fields can be mapped via Liquid templates.

Do I still need to build an Entra API-driven provisioning job?
No. Joinly takes over reading Darwinbox, the role-to-group mapping and the multi-entity handling that a hand-built provisioning job does manually or not at all, and maintains it as your Darwinbox data changes.

Does Joinly also support AD on-premise or hybrid provisioning?
Yes. Joinly has its own AD on-premise agent and also supports the native Microsoft Entra provisioning agent, so you can provision users to your on-premise AD environment as well. See the Darwinbox to Active Directory guide.

Request installation support