When someone joins, moves or leaves in Paycor, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect Paycor to Microsoft Entra ID, Joinly reads each HR change at the source — through the Paycor Public API — and applies it automatically to the right account. Paycor stays your source of truth; Joinly is the engine that keeps every action accurate and traceable.
Key takeaways
Paycor stays your source of truth; Joinly applies every joiner, mover and leaver to Entra ID automatically.
Joinly maps Paycor org structure — legal entity, location, department, job and position — to the right Entra ID groups and licences, something Paycor’s API doesn’t do on its own.
Joinly reads the effective date on each hire and change, so future-dated hires are provisioned on their start date and not the moment HR saves the record.
Multi-entity clients are handled correctly: Joinly reads every legal entity the API user is permitted to see, so no employee silently goes missing from the feed.
Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001.
Quick facts
Source system | Paycor (Paycor HCM) |
Target system | Microsoft Entra ID (formerly Azure AD) |
Connection method | Paycor Public API → Entra ID |
Supported events | Joiner, mover, leaver (incl. rehire, transfer between legal entities) |
Synced attributes | Name, email / UPN, department, job title, position, manager, location, legal entity, start and end date |
Authentication | OAuth 2.0 (standard application type) with refresh-token renewal |
Real-time or batch | Frequent sync, multiple times per day |
Compliance | ISO 27001, NIS2-ready, GDPR (EU data centre) |
How does Joinly sync Paycor to Microsoft Entra ID?
Joinly reads each HR change in Paycor through the Public API and applies it to the matching Entra ID account automatically. The Paycor employee record holds the authoritative employment data, so it is the starting point for each identity action.
Joiner. HR completes the hire in Paycor. Joinly reads the new employee record and determines the role from attributes like department, job, position and location. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups — timed to the effective start date on the Paycor record.
Mover. When someone changes position, department or legal entity in Paycor, 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.
Leaver. On the termination date recorded in Paycor, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and a transfer between legal entities is treated as a move rather than a leave so access is never wrongly removed.
Example: A multi-location restaurant group hires a shift supervisor in Paycor with a start date next Monday, under its Midwest legal entity at the downtown location. Joinly reads the effective-dated record, waits until the start date, creates the Entra ID account, assigns an Office E1 licence and adds the supervisor to the Midwest-Operations group. When that supervisor later transfers to a sister restaurant under a different legal entity, Joinly reads the change from both entities, keeps a single stable UPN and swaps the location and department groups the same day.
What manual user management costs
Without automation, every account starts as a Paycor ticket or a line in a spreadsheet that IT works through by hand. Paycor exposes the data through its Public API, but it ships no native Entra provisioning connector — so unless you build the integration yourself, 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 position or legal entity, 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 a transfer between legal entities can look like a leave and trigger the wrong action.
Joinly vs. building on the Paycor API yourself
Paycor has no native Entra provisioning connector, so the realistic alternative is wiring the Paycor Public API into Microsoft’s Entra inbound provisioning or custom code. Here’s how that compares with Joinly for a Paycor-driven setup.
Joinly | Paycor API + custom / Entra inbound provisioning | |
|---|---|---|
Source | Reads the Paycor Public API directly | You build and maintain the API client |
Role-to-group mapping | Built in, rule-based on legal entity, department and job | Hand-coded; no role-to-group out of the box |
Effective-dated / future hires | Times account creation to the effective start date | You handle the effective-date logic yourself |
Multi-legal-entity | Reads every permitted entity in one feed | Each entity’s API permission and Handshake to manage |
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 | Whatever you log yourself |
Watch-outs when connecting Paycor to Microsoft Entra ID
A few Paycor-specific details decide whether this connection stays reliable at scale.
Multiple legal entities. Paycor partitions all data by legal entity, and the API user must be granted access to each one during the Handshake — miss one and those employees never appear in the feed. Joinly reads every entity it is permitted to see and treats them as one combined population, so no one silently goes missing.
Effective-dated hires and changes. A Paycor hire or position change carries an effective date, and provisioning too early or too late both cause problems. Joinly reads the effective date and times account creation to it, so access is ready on the right day and not before.
Mapping Paycor structure to Entra groups. Legal entity, location, department, job and position 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. Joinly applies custom transformation rules — a suffix, location code or controlled tiebreaker — so every UPN is unique and predictable from day one.
Rate limits and pagination. The Paycor API caps at 1,000 calls per minute and pages with a continuationToken cursor. Joinly backs off on a 429 and walks the cursor cleanly, so a large legal entity syncs completely without dropping records.
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 Paycor 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 multi-location restaurant group with around 1,800 employees across four legal entities and dozens of sites, running Paycor as its HR core while its identity provisioning never quite keeps up. There is no native Paycor-to-Entra connector, so a half-finished script handles the simple cases, yet seasonal hiring spikes, transfers between restaurants and a fourth legal entity that was never added to the API Handshake keep breaking it — a whole site’s worth of new hires turns out to be missing from the feed, and future-dated hires are provisioned the moment HR saves the record rather than on their actual start date.
Connect Paycor to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in Paycor at the source and acts on it automatically: new hires have their account, Office licence and group access ready on their effective start date, transfers between legal entities swap the right groups the same day, every permitted entity is read into one combined feed so no site goes missing, and leavers are disabled on their termination date with a 30-day soft-delete grace window.
“A missing legal entity used to mean a whole restaurant’s new hires had no accounts on day one. Now everyone is simply ready on their start date, transfers just swap groups, and we can show the auditor exactly which Paycor change created every bit of access.” — Head of IT, multi-location restaurant group
The outcome this setup is designed for: onboarding drops from days to zero touch, no legal entity ever goes missing from the feed again, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.
More than a connector
A standalone Paycor 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 guide
Follow these steps to connect Paycor 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.

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.

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 Paycor integration in the Joinly marketplace
Open the Joinly marketplace and search for the Paycor integration.
Don’t see your system listed? Get in touch at support@koppelhet.nl and we’ll help you out.

Search the marketplace for the Paycor integration.
5. Follow the installation wizard
You may be redirected to integrations.joinly.app. Create an account there and enter your Paycor connection details: your OAuth client credentials from the Paycor Developer Portal and the legal entities the API user is permitted to read. We only ask for the information needed to establish a successful connection with Paycor. All data is encrypted and stored securely.

Enter your Paycor OAuth credentials and legal entities 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 Paycor fields.
Frequently asked questions
How do I map the manager? Reference the manager’s employee ID in the mapping and Joinly resolves the link to the right manager automatically.
How do I handle multiple legal entities? Grant the API user access to every entity in the Paycor Handshake; Joinly reads them into one combined feed so no site is missed.
How do I prevent duplicate usernames? Use the
generateUniqueUsernamehelper, which falls back to the next pattern when the first one is already taken:{{ generateUniqueUsername: “{firstName}.{prefix}.{lastName}”, “{initials}.{prefix}.{lastName}” }}

Map Paycor 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 Paycor 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 Paycor 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.

Create a trigger-based onboarding workflow.

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

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 Paycor to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.
Frequently asked questions
Does the Paycor to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day, so changes in Paycor reach Entra ID quickly without waiting for a nightly batch.
How does Joinly handle multiple legal entities?
Paycor partitions data by legal entity and the API user must be granted access to each. Joinly reads every permitted entity into one combined feed, so no site or company silently goes missing from provisioning.
How are future-dated hires handled?
Joinly reads the effective date on the Paycor record and times account creation to it, so access is ready on the start date rather than the moment HR saved the record.
Which attributes sync from Paycor to Entra ID?
Name, email / UPN, department, job title, position, manager, location, legal entity, and start and end date. Other Paycor fields can be mapped via Liquid templates.
Do I need to build the Paycor integration myself?
No. Paycor ships no native Entra provisioning connector, but Joinly takes over the API client, role-to-group mapping and effective-date handling for you, and maintains it as your Paycor 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 Paycor to Active Directory guide.


