When someone joins, moves or leaves in your on-premise SAP HCM, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect SAP HCM to Microsoft Entra ID, Joinly reads each HR change at the source — the Personnel Administration (PA) infotypes and Organizational Management (OM) structure in SAP ERP HCM — over the standard BAPI/RFC and IDoc interfaces, and applies it automatically to the right account. SAP HCM stays your source of truth; Joinly is the engine that keeps every action accurate and traceable, with no Azure Logic Apps pipeline to build or maintain.
Key takeaways
SAP HCM stays your source of truth; Joinly reads PA infotypes (IT0000 Actions, IT0001 Organizational Assignment, IT0002 Personal Data) keyed on the personnel number (PERNR) and applies every joiner, mover and leaver to Entra ID automatically.
There is no native Microsoft Entra provisioning app for on-premise SAP HCM — Microsoft’s own path is a self-built Azure Logic Apps workflow feeding API-driven provisioning. Joinly replaces that whole pipeline with a configured connector.
Joinly maps SAP HCM org objects — org unit, position, cost center, personnel area and employee group — to the right Entra ID groups and licences, driven by the position in OM rather than by hand.
Effective-dated infotype records are read correctly, so a future-dated hire or transfer is provisioned on its actual start date (BEGDA), not the moment HR saves the action.
PERNR-vs-person cases — rehire, a second PERNR, concurrent employment — are resolved so the right employment drives the UPN, and every action is logged for a complete audit trail aligned with NIS2 and ISO 27001.
Quick facts
Source system | SAP HCM (on-premise SAP ERP HCM / S/4HANA HCM — PA & OM) |
Target system | Microsoft Entra ID (formerly Azure AD) |
Connection method | PA/OM infotypes via BAPI/RFC or IDoc (HRMD_A) → Entra ID |
Supported events | Joiner, mover, leaver (incl. rehire, second PERNR, concurrent employment) |
Synced attributes | Name, email / UPN, personnel number, org unit, position, job title, manager, cost center, personnel area, start and end date |
Authentication | Scoped SAP RFC/BAPI service user with authorizations for the required infotypes |
Real-time or batch | Frequent sync, multiple times per day |
Compliance | ISO 27001, NIS2-ready, GDPR (EU data centre) |
How does Joinly sync SAP HCM to Microsoft Entra ID?
Joinly reads each HR change in SAP HCM through the standard BAPI/RFC and IDoc interfaces and applies it to the matching Entra ID account automatically. The PA infotypes hold the authoritative employment record and OM holds the org structure, so those are the starting point for each identity action.
Joiner. HR runs the hire action (Massnahme) in SAP HCM, which writes IT0000 (Actions), IT0001 (Organizational Assignment) and IT0002 (Personal Data) against the new PERNR. Joinly reads those infotypes, determines the role from the position, org unit and cost center in OM, 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 (BEGDA).
Mover. When someone changes position, org unit, cost center or personnel area in SAP HCM, 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 in OM.
Leaver. On the leaving action recorded in IT0000 (with its effective end date), Joinly disables the Entra ID account automatically. No orphaned accounts stay active after someone has left, and concurrent employments are taken into account so access is only removed when the last active PERNR ends.
Example: An industrial manufacturer runs SAP ERP HCM on-premise and hires a production engineer with a hire action effective next Monday, assigned to a position in its German personnel area. Joinly reads the effective-dated IT0000/IT0001 records, waits until Monday, creates the Entra ID account, assigns an Office E3 licence and adds the engineer to the DE-Operations group based on the OM position. When that engineer later picks up a second assignment under a new PERNR, Joinly keeps the primary employment as the driver of the UPN and adds the extra group without breaking sign-in.
What manual user management costs
Without automation, every account starts as an SAP HCM ticket or a line in a spreadsheet that IT works through by hand. Microsoft’s own guidance for on-premise SAP HCM is to build and run an Azure Logic Apps workflow that calls BAPIs or receives IDocs, converts them to SCIM and posts to Entra API-driven provisioning — a real integration project to write, secure and maintain before a single account is created, and one that still leaves role-to-group mapping to you.
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 in OM, 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 with a second PERNR it is easy to disable an account while another employment is still active.
Joinly vs. a self-built Logic Apps + Entra provisioning pipeline
For on-premise SAP HCM there is no ready-made Entra provisioning app, so the realistic alternative is the pipeline Microsoft documents: an Azure Logic Apps workflow calling BAPIs or receiving HRMD_A IDocs, feeding API-driven inbound provisioning. Here’s how that compares to Joinly.
Joinly | Logic Apps + API-driven provisioning | |
|---|---|---|
Source | Reads PA/OM infotypes over BAPI/RFC or IDoc directly | You build BAPI/IDoc calls and a SCIM payload in Logic Apps |
Role-to-group mapping | Built in, rule-based on OM position, org unit and cost center | Not provided; you write and maintain the logic |
Effective-dated / future hires | Reads the valid infotype (BEGDA) and times creation to it | Custom delta RFC and date-window logic to build yourself |
PERNR vs person / concurrent employment | Resolves the primary employment for the UPN | Left to your own de-duplication logic |
Licence assignment | Driven by role / attributes | Manual or group-based only |
On-premise AD | Yes, own agent plus the native Microsoft agent | Separate configuration; provisioning agent required |
Audit trail | Per-action logging tied to the SAP HCM change | Whatever you log in the workflow |
Watch-outs when connecting SAP HCM to Microsoft Entra ID
A few SAP-HCM-specific details decide whether this connection stays reliable at scale.
PERNR is not the person. A rehire, a second assignment or concurrent employment can give one individual more than one personnel number. A naive rule creates duplicate Entra ID accounts or drives the UPN from the wrong PERNR. Joinly applies explicit rules to tie the PERNRs to a single identity and pick the primary employment as the driver of the UPN.
Infotype time constraints and effective dating. PA records carry a validity period (BEGDA/ENDDA), and a hire or transfer action is written well before it is effective. Reading the raw latest row instead of the currently-valid record provisions too early or too late. Joinly reads the effective-dated infotype and times account creation to the real start date.
Mapping the OM position to Entra groups. Access is decided by the position and org unit in OM (IT0001 / HRP*), plus cost center, personnel area and employee group — none of which 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.
RFC/BAPI authorizations. The integration account needs authorization objects for the right BAPIs, RFCs and infotypes. Joinly works with a service user scoped to exactly the infotypes it reads, rather than a wide-open account, keeping the connection least-privilege.
UPN format with duplicate names. When two employees share a name, a naive UPN rule produces collisions. Joinly applies custom transformation rules — a suffix, personnel-area 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 SAP HCM change — the infotype and PERNR — 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 an automotive and industrial group with around 8,000 employees across four plants, running SAP ERP HCM on-premise as its HR core while identity provisioning never quite keeps up. There is no native Entra app for on-prem HCM, so a half-finished Logic Apps workflow limps along: it calls a BAPI on a nightly schedule, but future-dated hires get created the moment HR saves the action rather than on the start date, engineers who pick up a second PERNR end up with a duplicate account, and role-to-group mapping is a spreadsheet nobody trusts.
Connect SAP HCM to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in the PA infotypes 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 positions swap the right groups the same day, a second PERNR just adds access under one stable UPN, and leavers are disabled on the recorded leaving date with a 30-day soft-delete grace window.
“We had a Logic App nobody wanted to own. Now an account is simply ready on the start date, a second personnel number just adds access instead of a duplicate, and we can show the auditor exactly which SAP HCM action created every bit of access.” — Head of IT, automotive and industrial group
The outcome this setup is designed for: onboarding drops from days to zero touch, duplicate-PERNR errors 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 SAP HCM 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 SAP HCM to Microsoft Entra ID with Joinly. The entire cloud setup happens in the platform, with no Azure Logic Apps workflow to build and no 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 SAP HCM integration in the Joinly marketplace
Open the Joinly marketplace and search for the SAP HCM 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 SAP HCM integration.
5. Follow the installation wizard
You may be redirected to integrations.joinly.app. Create an account there and enter your SAP HCM connection details: the SAP application server / message server and system number, client, and the scoped RFC/BAPI service user (or, for an IDoc-based setup, the ALE partner profile for the HRMD_A message type). We only ask for the information needed to establish a successful connection with SAP HCM. All data is encrypted and stored securely.

Enter your SAP HCM server, client and RFC/BAPI service-user 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 SAP HCM infotype fields.
Frequently asked questions
How do I map the manager? Reference the manager’s PERNR (resolved from the OM position hierarchy) in the mapping and Joinly links to the right manager automatically.
How do I handle a second PERNR / concurrent employment? Pick the primary employment as the driver for the UPN; Joinly exposes the active PERNRs so you can choose the primary one.
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 SAP HCM infotype 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 SAP HCM 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 infotype change in SAP HCM flows straight through to Entra ID. Finally, add a threshold workflow with the Entra soft delete action that runs a set period after the leaving 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 SAP HCM to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.
Frequently asked questions
Does the SAP HCM to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day, so changes in the SAP HCM infotypes reach Entra ID quickly without waiting for a nightly batch.
Is there a native Microsoft Entra provisioning app for on-premise SAP HCM?
No. The native Entra provisioning app is for the cloud SAP SuccessFactors, not on-premise SAP ERP HCM. Microsoft’s documented path for on-prem HCM is a self-built Azure Logic Apps workflow (BAPI or HRMD_A IDoc) feeding API-driven provisioning. Joinly replaces that whole pipeline with a configured connector.
How does Joinly read data from SAP HCM?
It reads the Personnel Administration infotypes and Organizational Management structure over the standard SAP interfaces — BAPI/RFC or IDoc (HRMD_A), optionally via SAP PI/PO — using a service user scoped to the infotypes it needs, so no full SAP GUI access is required.
How are future-dated hires and effective dating handled?
Joinly reads the effective-dated infotype (its BEGDA validity), so a future-dated hire or transfer action is provisioned on its actual start date rather than the moment HR saved the record.
What happens when one employee has more than one PERNR?
Joinly ties the personnel numbers to a single identity and applies your rules to pick the primary employment as the driver of the UPN, so a rehire or second assignment adds access without creating a duplicate account.
Which attributes sync from SAP HCM to Entra ID?
Name, email / UPN, personnel number, org unit, position, job title, manager, cost center, personnel area, and start and end date. Additional infotype fields can be mapped via Liquid templates.
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 SAP HCM to Active Directory guide.


