Skip to main content
Joinly by KoppelHet

TeamSystem → Microsoft Entra ID (formerly Azure AD)

Connect TeamSystem to Microsoft Entra ID

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

Key takeaways

  • TeamSystem HR stays your source of truth; Joinly applies every joiner, mover and leaver to Entra ID automatically from the anagrafica.

  • Joinly maps TeamSystem’s own organizational model — unità organizzativa, sede, centro di costo, ruolo and mansione — to the right Entra ID groups and licences, something a plain attribute sync can’t do on its own.

  • The matricola (employee number) is used as the stable matching key, so accounts stay linked correctly even when a name or email changes.

  • Italian names with accented characters are transliterated cleanly into a predictable UPN, so logins are consistent from day one.

  • Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001, with data held in an EU data centre.

Quick facts

Source system

TeamSystem (TeamSystem HR)

Target system

Microsoft Entra ID (formerly Azure AD)

Connection method

TeamSystem HR employee API → Entra ID

Supported events

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

Synced attributes

Name, email / UPN, matricola, department (unità organizzativa), job title (mansione), manager, cost centre, site (sede), start and end date

Authentication

OAuth 2.0 / bearer token via the TeamSystem API gateway (confirmed per tenant)

Real-time or batch

Frequent sync, multiple times per day

Compliance

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

Liever in het Nederlands? TeamSystem koppelen met Microsoft Entra ID

How does Joinly sync TeamSystem to Microsoft Entra ID?

Joinly reads each HR change in TeamSystem HR through its employee API and applies it to the matching Entra ID account automatically. The TeamSystem anagrafica holds the authoritative employment record, so it is the starting point for each identity action.

  1. Joiner. HR completes the hire in TeamSystem HR. Joinly reads the new anagrafica and determines the role from attributes like unità organizzativa, mansione and centro di costo. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups.

  2. Mover. When someone changes mansione, unità organizzativa or sede in TeamSystem HR, 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 TeamSystem HR, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and the matricola keeps the right person matched throughout.

Example: A professional-services firm hires a consultant in TeamSystem HR, assigned to the Milan sede and the Advisory unità organizzativa. Joinly reads the new anagrafica, creates the Entra ID account, assigns an Office E3 licence and adds the consultant to the Advisory-Milan group. When that consultant later moves to the Rome office and a new mansione, Joinly swaps the site and department groups the same day, keyed on the matricola so the account is never duplicated.

What manual user management costs

Without automation, every account starts as a TeamSystem ticket or a line in a spreadsheet that IT works through by hand. A plain attribute sync from TeamSystem to Entra ID can move fields across, but it maps roles to groups through manual rules and leaves username transformation and matching to people — so the part that actually decides access still falls to staff.

  • 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 mansione or unità organizzativa, 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. native Entra provisioning

There is no prebuilt Entra gallery app for TeamSystem, so the native route is a custom API-driven or CSV/SCIM inbound setup. That is a fine baseline for attributes, but it stops short of the part that actually decides access. Here’s how the two compare for a TeamSystem HR-driven setup.


Joinly

Native Entra inbound provisioning (custom)

Source

Reads the TeamSystem HR employee API directly

Needs a custom API-driven or CSV/SCIM feed

Role-to-group mapping

Built in, rule-based on unità organizzativa and mansione

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

Matching key

Matricola-based, stable through name and email changes

Usually email or a chosen attribute; brittle on changes

Accented-name handling

Transliteration rules build a clean, unique UPN

Manual mapping only

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

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

  • Accented and Italian-specific characters. Names in the TeamSystem anagrafica routinely carry accented characters (à, è, ì, ò, ù). A naive UPN rule produces inconsistent or invalid logins. Joinly applies explicit transliteration rules, so every UPN is clean, valid and predictable.

  • Matricola as the matching key. Names and email addresses change; the matricola (employee number) does not. Joinly matches on the matricola so an account stays linked to the right person through a name change, a marriage or a domain migration — instead of creating a duplicate.

  • Mapping the organigramma to Entra groups. Unità organizzativa, sede, centro di costo and mansione 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.

  • Edition and module differences. TeamSystem HR, Studio HR and Dipendenti in Cloud expose slightly different object models. Joinly maps to the fields your edition actually returns, confirmed against your tenant during setup.

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 TeamSystem 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 professional-services firm with around 900 people — consultants, analysts and support staff — across offices in Milan, Rome and Turin, running TeamSystem HR as its people core. New consultants and interns arrive in waves at the start of each project cycle, and every one of them starts as a TeamSystem ticket that IT works through by hand in Entra ID. Names carry accented characters, people move between offices and practices constantly, and the manual UPN rules keep producing collisions and inconsistent logins.

Connect TeamSystem to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each change in the anagrafica at the source and acts on it automatically: new hires have their account, Office licence and practice-group access ready, transfers between offices swap the site and department groups the same day, accented names produce a clean and unique UPN every time, and leavers are disabled on their termination date with a soft-delete grace window — all keyed on the matricola so accounts are never duplicated.

“Accented names and constant office moves used to break every account we created by hand. Now a consultant is simply ready on day one, a move just swaps the groups, and we can show the auditor exactly which TeamSystem change created every bit of access.” — Head of IT, professional-services firm

The outcome this setup is designed for: onboarding drops from days to zero touch, duplicate and malformed accounts stop entirely, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.

Installation guide

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

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

5. Follow the installation wizard

You may be redirected to integrations.joinly.app. Create an account there and enter your TeamSystem connection details: your API base URL, tenant/company identifier, and the OAuth credentials or subscription key issued through the TeamSystem API gateway. We only ask for the information needed to establish a successful connection with TeamSystem. All data is encrypted and stored securely.


Joinly installation wizard for entering TeamSystem connection details


Enter your TeamSystem API endpoint, company identifier and 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 TeamSystem anagrafica fields.

Frequently asked questions

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

  • How do I handle accented names? Apply a transliteration filter in the UPN template so accented characters become clean ASCII.

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


Map TeamSystem 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 TeamSystem 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 TeamSystem HR 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 TeamSystem to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.

Frequently asked questions

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

Which TeamSystem product does Joinly connect to?
Joinly connects to TeamSystem HR as the source of the employee anagrafica. TeamSystem ships several HR editions (TeamSystem HR, Studio HR and the SME product Dipendenti in Cloud); the exact object model and API scopes are confirmed against your tenant during setup.

How does Joinly match the right account when names change?
Joinly uses the matricola (employee number) as the stable matching key, so an account stays linked to the right person even when the name, email or UPN changes, instead of creating a duplicate.

Which attributes sync from TeamSystem to Entra ID?
Name, email / UPN, matricola, department (unità organizzativa), job title (mansione), manager, cost centre, site (sede), and start and end date. Additional anagrafica fields can be mapped via Liquid templates.

How are accented Italian names handled in the UPN?
Joinly applies transliteration rules in the UPN template, so accented characters become clean ASCII and every login is valid, consistent and unique.

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 TeamSystem to Active Directory guide.

More than a connector

A standalone TeamSystem 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.

Request installation support

Frequently asked

Questions about connecting TeamSystem to Microsoft Entra ID (formerly Azure AD)

  • How does Joinly connect TeamSystem to Microsoft Entra ID?

    The connection reads HR changes at the source (TeamSystem HR employee API → Entra ID.) Authentication: OAuth 2.0 / bearer token via the TeamSystem API gateway (confirmed per tenant). Joinly writes to Entra ID through Microsoft Graph, with its own app registration and application permissions — no synchronisation server, agent or extra infrastructure. If you prefer Microsoft's API-driven provisioning endpoint, Joinly can deliver the same changes as a SCIM 2.0 bulk request instead.

  • Which HR events does the TeamSystem → Entra ID connection handle?

    Joiner, mover, leaver (incl. rehire and internal transfer). Each event runs the workflow you configured for it: a joiner gets an account, groups and licences before the start date, a mover has the access of the old position removed and the new one added, and a leaver is disabled on the termination date.

  • Which TeamSystem attributes are synced to Entra ID?

    Name, email / UPN, matricola, department (unità organizzativa), job title (mansione), manager, cost centre, site (sede), start and end date. The mapping is configurable per field with Liquid templates, so your own naming convention for the user principal name, display name and e-mail address keeps applying.

  • How often does Joinly sync TeamSystem with Entra ID?

    Frequent sync, multiple times per day. The import schedule is yours to set — hourly, daily or weekly at a fixed time — and every run only processes what changed since the previous one.

  • Will Joinly overwrite the accounts that already exist in Entra ID?

    No. Joinly first imports your existing directory and matches those accounts to the employees from TeamSystem. Existing accounts are recognised and adopted rather than created twice. Which matching strategy applies — user principal name, e-mail address, employee ID or a person identifier — is a setting.

  • Can I try this without anything being written?

    Yes. Run the import as a dry run and you get an Excel export of exactly what would happen. You can also leave the connection in read-only mode, where Joinly calculates everything but writes nothing, and set thresholds for how many creations, activations and deactivations one run may produce before it is blocked for approval.

  • Is TeamSystem a ready-made connector in Joinly?

    Yes. TeamSystem is a ready-made HR connector in Joinly: you enable it, enter the details of your TeamSystem environment and Joinly reads the employees from there. Nothing has to be developed on either side.

  • What happens when someone has more than one contract in TeamSystem?

    Joinly recognises that it is one person and decides which employment leads for the account, the manager and the department. You do not get two accounts for the same employee, and when one contract ends the account is only disabled when the last active employment ends.

  • Do I need a Microsoft Entra ID P1 or P2 licence for this?

    Not for the Microsoft Graph path: Joinly uses its own app registration and the permissions you grant it. Microsoft's API-driven inbound provisioning endpoint, which Joinly can also target with SCIM bulk requests, follows Microsoft's own licensing for that feature.

  • Does the TeamSystem → Entra ID connection support NIS2 and ISO 27001?

    ISO 27001, NIS2-ready, GDPR (EU data centre). Every mutation lands in the audit log with its source — HR import, manual, from Entra, by the system or through an API key — and a link to the workflow that caused it. That is the evidence an auditor asks for when they want to know who had access to what, and why.

More on TeamSystem

Everything Joinly publishes about TeamSystem: the other installation guide, how the connection compares with Microsoft's own provisioning, what offboarding looks like, and the SCIM route.

See what Joinly can do for your organisation?

Start a free trial today or get in touch for advice on your HR and Microsoft environment.