When someone joins, moves or leaves in Paylocity, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect Paylocity to Microsoft Entra ID, Joinly reads each HR change at the source — through the Paylocity Web Services API — and applies it automatically to the right account. Paylocity stays your system of record; Joinly is the engine that keeps every action accurate and traceable.
Key takeaways
Paylocity stays your system of record; Joinly applies every joiner, mover and leaver to Entra ID automatically.
Joinly maps the Paylocity cost-center and labor-level hierarchy — plus department, position and work location — to the right Entra ID groups and licences, which Paylocity’s own Entra integration (SSO/SCIM into Paylocity) doesn’t do.
Joinly reads the hire date on the Paylocity record, so accounts are provisioned on the start date and not the moment HR enters the new hire.
Employees split across multiple Paylocity companies under one client are merged into a single identity, so a transfer between companies doesn’t create a duplicate account.
Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001.
Quick facts
Source system | Paylocity (HR & Payroll) |
Target system | Microsoft Entra ID (formerly Azure AD) |
Connection method | Paylocity Web Services API → Entra ID |
Supported events | Joiner, mover, leaver (incl. rehire, cross-company transfer, status-code change) |
Synced attributes | Name, email / UPN, department, job title / position, manager, cost center, work location, company, start and end date |
Authentication | OAuth 2.0 client credentials (WebLinkAPI scope) |
Real-time or batch | Frequent sync, multiple times per day |
Compliance | ISO 27001, NIS2-ready, GDPR (EU data centre) |
How does Joinly sync Paylocity to Microsoft Entra ID?
Joinly reads each HR change in Paylocity through the Web Services API and applies it to the matching Entra ID account automatically. Paylocity holds the authoritative employee record, so it is the starting point for each identity action.
Joiner. HR completes the hire in Paylocity. Joinly reads the new employee record and determines the role from attributes like department, position, cost center and work location. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups — timed to the hire date on the record.
Mover. When someone changes position, department, cost center or work location in Paylocity, Joinly updates their group membership, permissions and licences to match. Access that no longer fits the new role is revoked, so permissions stay aligned with the actual job — even when the change is a transfer to a different Paylocity company.
Leaver. When the employee’s status code in Paylocity flips to terminated on the effective date, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and a leave-of-absence status doesn’t trigger an unwanted disable.
Example: A nonprofit hires a programme coordinator in Paylocity with a start date next Monday, in cost center 4200 (Community Services) at its Denver work location. Joinly reads the record, waits until the start date, creates the Entra ID account, assigns a Microsoft 365 Business Premium licence and adds the coordinator to the Community-Services group. When that coordinator later transfers to the Grants department under a different Paylocity company in the client’s set, Joinly recognises the same person, keeps one account and swaps the groups the same day.
What manual user management costs
Without automation, every account starts as a Paylocity report or a line in a spreadsheet that IT works through by hand. Paylocity’s own Entra integration handles SSO and can push portal access via SCIM, but it provisions users into Paylocity — not the other way round — so the HR-driven account creation, role-to-group mapping and offboarding in Entra ID still fall 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 cost center, 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 when a status code only changes inside Paylocity, IT may never hear about the leaver at all.
Joinly vs. Paylocity’s native Entra integration
Paylocity’s built-in Microsoft Entra integration covers SSO and SCIM into Paylocity, but it doesn’t provision identities the other way. For HR-driven provisioning into Entra ID, here’s how Joinly compares to the partner connectors people reach for instead.
Joinly | Paylocity SSO/SCIM + partner connectors | |
|---|---|---|
Direction | HR-driven: Paylocity → Entra ID | SCIM provisions portal access into Paylocity |
Source | Reads Paylocity Web Services API directly | Varies; often a flat connector feed |
Role-to-group mapping | Built in, rule-based on cost center and position | Manual attribute mapping; no role-to-group out of the box |
Start-date timing | Times account creation to the hire date | Often immediate or batch on import |
Multiple companies / company sets | Merges one person across company IDs | Each company treated separately; duplicate risk |
Licence assignment | Driven by role / attributes | Manual or group-based only |
On-premise AD | Yes, own agent plus the native Microsoft agent | Extra partner tool or agent required |
Audit trail | Per-action logging tied to the HR source | Limited |
Watch-outs when connecting Paylocity to Microsoft Entra ID
A few Paylocity-specific details decide whether this connection stays reliable at scale.
Cost-center-driven org structure. In Paylocity the cost-center and labor-level hierarchy, not a tidy department tree, often defines where someone really sits. Joinly reads the cost-center / labor-level structure and builds explicit rules from it to the correct Entra ID groups and licences, so role drives access rather than manual assignment.
Multiple companies under one client. A single Paylocity client can hold several companies, each with its own numeric Company ID, and a person can move between them. Joinly merges the population across company IDs into one identity per person, so a cross-company transfer swaps access instead of spawning a duplicate account.
Customizable employee status codes. Employee Status in Paylocity is a client-defined code, not a fixed list, so ‘terminated’, ‘on leave’ and ‘active’ look different per company. Joinly maps your specific status codes to joiner, mover and leaver actions, so a leave of absence doesn’t disable an account and a real termination always does.
UPN format with duplicate names. When two employees share a name, a naive UPN rule produces collisions. Joinly applies custom transformation rules — a suffix, work-location code or controlled tiebreaker — so every UPN is unique and predictable from day one.
Hire date vs. entry date. HR often enters a new hire days or weeks before the start date. Joinly reads the hire date on the Paylocity record and times account creation to it, so access is ready on the right day and not the moment the record is saved.
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 Paylocity 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 nonprofit with around 900 staff and volunteers across three legal entities, running Paylocity for HR and payroll while its identity provisioning never quite keeps up. Programme staff sit under one Paylocity company, the retail-fundraising arm under another, and grant-funded roles move between cost centers throughout the year. IT learns about most changes from a forwarded payroll report, so new coordinators wait until day two or three for an account and old volunteer logins linger long after the grant ends.
Connect Paylocity to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in Paylocity at the source and acts on it automatically: new hires have their account, Microsoft 365 licence and group access ready on their start date, a cost-center move swaps the right groups the same day, a transfer between the two Paylocity companies keeps one account, and leavers are disabled when their status code flips to terminated, with a 30-day soft-delete grace window.
“Volunteers and grant staff used to slip through the cracks between two Paylocity companies. Now an account is simply ready on the start date, a transfer just swaps groups, and we can show a funder’s auditor exactly which Paylocity change created every bit of access.” — Head of IT, national nonprofit
The outcome this setup is designed for: onboarding drops from days to zero touch, cross-company duplicates stop entirely, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.
More than a connector
A standalone Paylocity 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 Paylocity 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 Paylocity integration in the Joinly marketplace
Open the Joinly marketplace and search for the Paylocity 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 Paylocity integration.
5. Follow the installation wizard
You may be redirected to integrations.joinly.app. Create an account there and enter your Paylocity connection details: your numeric Company ID(s), and the OAuth 2.0 Client ID and Client Secret that Paylocity issues when Web Services API access is granted. We only ask for the information needed to establish a successful connection with Paylocity. All data is encrypted and stored securely.

Enter your Paylocity Company ID and OAuth client credentials 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 Paylocity 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 companies? List every Company ID in the connection; Joinly merges the population into one identity per person so cross-company transfers don’t duplicate accounts.
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 Paylocity 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 Paylocity 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 Paylocity 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 Paylocity to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.
Frequently asked questions
Does the Paylocity to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day, so changes in Paylocity reach Entra ID quickly without waiting for a nightly batch.
How does Joinly handle employees split across multiple Paylocity companies?
List every Company ID in the connection and Joinly merges the population into one identity per person, so a transfer between two Paylocity companies swaps access instead of creating a duplicate account.
How are future-dated hires handled?
Joinly reads the hire date on the Paylocity record and times account creation to it, so access is ready on the start date rather than the moment HR entered the new hire.
Which attributes sync from Paylocity to Entra ID?
Name, email / UPN, department, job title / position, manager, cost center, work location, company, and start and end date. Additional Paylocity fields can be mapped via Liquid templates.
Doesn’t Paylocity already integrate with Entra ID?
Paylocity’s native integration covers SSO and SCIM that provisions access into Paylocity — the opposite direction. Joinly does the HR-driven provisioning out of Paylocity into Entra ID, including role-to-group mapping and offboarding, and maintains it as your Paylocity 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 Paylocity to Active Directory guide.


