Connect HoorayHR to Microsoft Entra ID

Connect HoorayHR to Microsoft Entra ID

Connect HoorayHR to Microsoft Entra ID

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

Key takeaways

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

  • Joinly reads the HoorayHR REST API and maps teams, departments and branches to the right Entra ID groups and licences — HoorayHR itself has no native Entra or SCIM provisioning.

  • Joinly reads the contract start and end dates in HoorayHR, so a new hire is provisioned on their start date and a leaver is disabled on their end date, not whenever someone remembers.

  • Because HoorayHR is built for SMEs, Joinly builds defensive UPN and group rules from often-thin data — a missing job title or duplicate name never breaks a sign-in.

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

HoorayHR

Joiner

Mover

Leaver

Microsoft Entra ID (formerly Azure AD)

Quick facts

Source system

HoorayHR (employee database)

Target system

Microsoft Entra ID (formerly Azure AD)

Connection method

HoorayHR REST API → Entra ID

Supported events

Joiner, mover, leaver (incl. rehire and team / department changes)

Synced attributes

Name, email / UPN, team, department, job title, manager, employee number, contract start and end date

Authentication

HoorayHR API credentials (dedicated service account)

Real-time or batch

Frequent sync, multiple times per day

Compliance

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

How does Joinly sync HoorayHR to Microsoft Entra ID?

Joinly reads each HR change in HoorayHR through its REST API and applies it to the matching Entra ID account automatically. HoorayHR holds the authoritative personnel record — the employee, their team, their contract dates — so it is the starting point for each identity action.

  1. Joiner. HR completes the hire in HoorayHR. Joinly reads the new employee record and determines the role from attributes like team, department 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 contract start date recorded in HoorayHR.

  2. Mover. When someone changes team, department or job title in HoorayHR, 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 rather than drifting over time.

  3. Leaver. On the contract end date recorded in HoorayHR, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and the licence is freed up instead of quietly costing money.

Example: A growing tech company runs HoorayHR for its 180 employees and hires a backend engineer with a start date next Monday, in the Platform team. Joinly reads the record, waits until the start date, creates the Entra ID account, assigns a Microsoft 365 Business Premium licence and adds the engineer to the Platform-Engineering group. When that engineer later moves to the Data team, Joinly swaps the groups the same day — no ticket, no spreadsheet.

What manual user management costs

Without automation, every account starts as a message in HoorayHR — or a Slack ping to whoever runs IT — that someone works through by hand. HoorayHR has no native Entra connection, so the alternatives are a Zapier flow that copies a few fields or a manual create in Entra; neither decides which groups and licences a person should actually get, so the part that matters still falls to people.

  • Onboarding delays. New joiners wait for accounts, licences and group access while whoever handles IT gets around to it, losing productive days in their first week.

  • Permissions that don’t keep up (privilege creep). When movers change team or department, old access often stays attached, so people accumulate rights they no longer need — a real risk in a fast-growing SME.

  • Forgotten offboarding. Accounts that aren’t disabled on time are both a security and audit risk, and unused Microsoft 365 licences keep costing money every month.

Joinly vs. a Zapier / DIY HoorayHR connection

HoorayHR ships a Zapier app and a REST API, so you can move a few fields into Microsoft on your own. But copying data is not the same as managing identities. Here’s how a Joinly connection compares with a home-built Zapier or API integration.


Joinly

Zapier / DIY on the HoorayHR API

Source

Reads the HoorayHR REST API directly

Reads the HoorayHR API / Zapier triggers

Role-to-group mapping

Built in, rule-based on team and department

Not available; you script each mapping by hand

Future-dated / leaver timing

Times creation and disable to contract dates

Fires on the trigger event, not the start / end date

Joiner / mover / leaver logic

A complete lifecycle, matched to existing accounts

Isolated create / update steps, no lifecycle

Licence assignment

Driven by role / attributes

Manual or a hard-coded step

On-premise AD

Yes, own agent plus the native Microsoft agent

Not supported

Audit trail

Per-action logging tied to the HR source

None beyond the Zap / script run history

Watch-outs when connecting HoorayHR to Microsoft Entra ID

A few HoorayHR-specific details decide whether this connection stays reliable as the company grows.

  • API authentication and MFA. The HoorayHR API authenticates with account credentials, and its own documentation notes that MFA has to be disabled on the API account. Joinly connects through a dedicated, least-privilege service account and keeps those credentials encrypted, so you don’t weaken the security of a real user just to run the integration.

  • Contract start and end dates drive timing. HoorayHR records a start and end date well before they take effect. A naive copy provisions or disables at the wrong moment. Joinly reads those dates and times account creation to the start date and the disable to the end date, so access is ready on the right day and removed on the right day.

  • Mapping teams and departments to Entra groups. HoorayHR’s teams, departments and branches 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.

  • Thin or inconsistent SME data. In a smaller company a job title may be blank, a team name may be informal and two people may share a name. Joinly applies defensive UPN and group rules — a suffix, an employee-number tiebreaker, a sensible default — so a gap in HoorayHR never produces a collision or a broken sign-in.

  • No native SCIM or Entra app. HoorayHR doesn’t publish a SCIM endpoint or an Entra gallery app, so there is no supported native path to fall back on. Joinly’s read-from-API, act-in-Entra model is purpose-built for exactly this, with the mapping and lifecycle logic HoorayHR doesn’t provide.

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 HoorayHR 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 tech scale-up with around 180 employees, running HoorayHR as its HR core while everything in Microsoft is still done by hand. There is no native HoorayHR-to-Entra connection, so onboarding lives in a checklist: whoever is closest to IT creates the account, guesses the groups, assigns a licence and hopes the new hire has access by day one. As the company adds ten people a month, transfers between teams pile up and old access is never cleaned out, and a couple of leavers keep an active Microsoft 365 licence for weeks after their last day.

Connect HoorayHR to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in HoorayHR at the source and acts on it automatically: new hires have their account, Microsoft 365 licence and group access ready on their contract start date, moves between teams swap the right groups the same day, duplicate names get a stable, unique UPN, and leavers are disabled on their end date with a 30-day soft-delete grace window.

“We were onboarding people in a checklist and hoping we hadn’t missed a group. Now an account is simply ready on the start date, a team change just moves the access, and we can show exactly which HoorayHR change created every bit of it.” — Head of IT, tech scale-up

The outcome this setup is designed for: onboarding drops from days to zero touch, privilege creep from old team memberships stops, and the team can point to a complete, source-backed audit trail without building anything themselves.

More than a connector

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

Connect HoorayHR to Microsoft Entra ID

Installation guide

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

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

5. Follow the installation wizard

You may be redirected to integrations.joinly.app. Create an account there and enter your HoorayHR connection details: the API credentials for a dedicated HoorayHR service account. We only ask for the information needed to establish a successful connection with HoorayHR. All data is encrypted and stored securely.

Tip: create a separate HoorayHR account for the integration rather than using a personal login, since the API requires MFA to be disabled on that account.


Joinly installation wizard for entering HoorayHR connection details


Enter your HoorayHR API 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 HoorayHR fields such as team, department and employee number.

Frequently asked questions

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

  • How do I map teams to groups? Map the HoorayHR team and department onto your Entra ID groups; Joinly applies the rule on every joiner and mover.

  • 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}.{lastName}”, “{firstName}.{lastName}.{employeeNumber}” }}


Joinly field mapping screen for HoorayHR attributes using Liquid templates


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

Frequently asked questions

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

Does HoorayHR have a native Entra ID or SCIM connector?
No. HoorayHR exposes a REST API and a Zapier app, but no SCIM endpoint or Entra gallery app for identity provisioning. Joinly reads the HoorayHR API and adds the joiner, mover and leaver logic, role-to-group mapping and audit trail that HoorayHR doesn’t provide.

How does Joinly authenticate to HoorayHR?
Through the HoorayHR REST API using a dedicated service account. Because the API documentation requires MFA to be disabled on that account, we recommend creating a separate, least-privilege account for the integration rather than reusing a personal login, and Joinly keeps those credentials encrypted.

How are future-dated hires and leavers handled?
Joinly reads the contract start and end dates on the HoorayHR record and times account creation to the start date and the disable to the end date, so access is ready on the right day and removed on the right day rather than whenever the change is noticed.

Which attributes sync from HoorayHR to Entra ID?
Name, email / UPN, team, department, job title, manager, employee number, and contract start and end date. Additional HoorayHR 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 HoorayHR to Active Directory guide.

Request installation support