Connect Insperity to Microsoft Entra ID

Connect Insperity to Microsoft Entra ID

Connect Insperity to Microsoft Entra ID

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

Key takeaways

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

  • Joinly maps Insperity’s organisation data — department, location, job title and manager — to the right Entra ID groups and licences, something the native API-driven provisioning app can’t do on its own.

  • Because Insperity runs a co-employment (PEO) model, Joinly maps worksite employees to your own organisation rather than Insperity’s employer-of-record legal entity.

  • Access to the Insperity API is customer-only and API-key based; Joinly reads it as your read-only source of truth and never writes HR data back.

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

Insperity

Joiner

Mover

Leaver

Microsoft Entra ID (formerly Azure AD)

Quick facts

Source system

Insperity (PEO / Workforce Acceleration)

Target system

Microsoft Entra ID (formerly Azure AD)

Connection method

Insperity API → Entra ID

Supported events

Joiner, mover, leaver (incl. rehire and internal transfer)

Synced attributes

Name, email / UPN, department, job title, manager, location, start and end date

Authentication

Insperity API key (customer-only API access)

Real-time or batch

Frequent sync, multiple times per day

Compliance

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

How does Joinly sync Insperity to Microsoft Entra ID?

Joinly reads each HR change in Insperity through the customer API and applies it to the matching Entra ID account automatically. Insperity holds the authoritative worksite-employee record, so it is the starting point for each identity action.

  1. Joiner. HR completes the hire in Insperity. Joinly reads the new worksite-employee record and determines the role from attributes like department, location and job title. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups — timed to the recorded start date.

  2. Mover. When someone changes role, department or location in Insperity, 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 termination date recorded in Insperity, 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 before it is removed.

Example: A financial-services firm hires a compliance analyst in Insperity with a start date next Monday. Joinly reads the record, waits until the start date, creates the Entra ID account, assigns a Microsoft 365 E3 licence and adds the analyst to the Compliance group. When that analyst later moves to the risk team, Joinly swaps the group membership and licences the same day, so access always matches the current role.

What manual user management costs

Without automation, every account starts as an Insperity export or a ticket that IT works through by hand. Microsoft’s API-driven inbound provisioning can move attributes across once you build a client for the Insperity API, but it maps roles to groups through manual expression rules and has no Insperity-specific logic — 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 role or department, 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.

Joinly vs. the native API-driven provisioning app

Microsoft’s Entra API-driven inbound provisioning is a fine baseline, but with Insperity there is no ready-made connector — you build and maintain the client yourself, and it stops short of the part that actually decides access. Here’s how the two compare for an Insperity-driven setup.


Joinly

Entra API-driven inbound provisioning

Source

Reads the Insperity API directly

Needs a custom client to read Insperity and push SCIM

Role-to-group mapping

Built in, rule-based on department / location / job

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

PEO / employer-of-record model

Maps worksite employees to your own org

No awareness of co-employment framing

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 Insperity to Microsoft Entra ID

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

  • Co-employment and the employer of record. Insperity runs a PEO co-employment model in which it is the employer of record for payroll and tax, so records can carry Insperity’s own legal-entity framing rather than your company’s. Joinly maps each worksite employee to your own organisation, department and groups, so identity follows your structure and not the PEO’s.

  • Customer-only, API-key access. The Insperity API is available to customers only and secured with an API key — there is no public sandbox. Joinly connects with your API key as a read-only source of truth and never writes HR data back, so Insperity stays authoritative.

  • Mapping department and location to Entra groups. Department, location and job title don’t translate one-to-one to Entra ID groups. Joinly builds explicit mapping rules from those attributes 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. Joinly applies custom transformation rules — a suffix, location code or controlled tiebreaker — so every UPN is unique and predictable from day one.

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 Insperity 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 financial-services firm with around 900 employees, running Insperity as its HR platform under a PEO arrangement while its identity provisioning never quite keeps up. Every new hire starts as an Insperity export that IT reconciles by hand against Entra ID — creating the account, assigning the licence, adding the groups. Because Insperity is the employer of record, the records don’t line up cleanly with the firm’s own org chart, and each onboarding turns into a small mapping exercise that eats into the analyst’s first days.

Connect Insperity to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in Insperity at the source and acts on it automatically: new hires have their account, Microsoft 365 licence and group access ready on their start date, mapped to the firm’s own departments rather than the PEO’s legal entity; role changes swap the right groups the same day; and leavers are disabled on their termination date with a 30-day soft-delete grace window.

“The co-employment setup used to make every onboarding a manual mapping job. Now an account is simply ready on the start date against our own org, and we can show the auditor exactly which Insperity change created every bit of access.” — Head of IT, financial-services firm

The outcome this setup is designed for: onboarding drops from days to zero touch, access always matches the firm’s own structure, and the team can walk into its next audit with a complete, source-backed trail.

More than a connector

A standalone Insperity 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 Insperity to Microsoft Entra ID

Connect Insperity to Microsoft Entra ID

Installation guide

Follow these steps to connect Insperity 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 Insperity integration in the Joinly marketplace

Open the Joinly marketplace and search for the Insperity 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 Insperity integration.

5. Follow the installation wizard

You may be redirected to integrations.joinly.app. Create an account there and enter your Insperity connection details: your Insperity API key (available to Insperity customers) and the API endpoint for your account. We only ask for the information needed to establish a successful connection with Insperity. All data is encrypted and stored securely.


Joinly installation wizard for entering Insperity connection details


Enter your Insperity API key and endpoint 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 Insperity fields.

Frequently asked questions

  • How do I map the manager? Reference the manager identifier in the mapping and Joinly resolves the link to the right manager automatically.

  • How do I handle the PEO org model? Map worksite employees to your own department and location structure rather than Insperity’s employer-of-record entity.

  • 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 Insperity attributes using Liquid templates


Map Insperity 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 Insperity should run.

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 Insperity flows straight through to Entra ID. Finally, add a threshold workflow with the Entra soft delete action that runs a set period after the termination 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 Insperity to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.

Frequently asked questions

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

How does Joinly handle Insperity’s co-employment (PEO) model?
Insperity is the employer of record for payroll and tax, so its records can carry Insperity’s own legal-entity framing. Joinly maps each worksite employee to your own organisation, department and groups, so identity follows your structure rather than the PEO’s.

Do I need to be an Insperity customer to use the API?
Yes. The Insperity API is available to customers only and secured with an API key. Joinly connects with your API key as a read-only source of truth and never writes HR data back to Insperity.

Which attributes sync from Insperity to Entra ID?
Name, email / UPN, department, job title, manager, location, and start and end date. Additional fields your Insperity account exposes can be mapped via Liquid templates.

Do I still need the native Entra API-driven provisioning app?
No. There is no ready-made Insperity connector, so the native path means building and maintaining your own client. Joinly takes over the reading, role-to-group mapping and PEO handling and maintains it as your Insperity 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 Insperity to Active Directory guide.

Request installation support