Skip to main content
Joinly by KoppelHet

TeamSystem · comparison

TeamSystem to Entra ID and Active Directory: Joinly vs Microsoft's native provisioning

Before you buy anything, you want to know what Microsoft already gives you for TeamSystem. The short answer: an API, not a connector. The long answer — what that API asks of you, what Joinly does instead, and when Microsoft's route is enough — is below.

TeamSystem

What Microsoft gives you for TeamSystem

Microsoft has no native TeamSystem connector. What it offers is API-driven inbound provisioning: a provisioning app with a /bulkUpload endpoint that accepts SCIM 2.0 bulk requests from "any system of record". The catch is in Microsoft's own description of the flow — "the API developer/partner/system integrator builds an API client to send authoritative identity data to Microsoft Entra ID". Someone has to build and run the client that reads TeamSystem (the TeamSystem HR employee API, oAuth 2.0 / bearer token via the TeamSystem API gateway (confirmed per tenant)), packages every record as SCIM, watches the provisioning logs and resubmits what failed. Microsoft's tutorials use PowerShell or Azure Logic Apps for it. The feature needs Microsoft Entra ID P1, P2 or Governance.

What Joinly adds

Joinly starts where the Microsoft route starts, at TeamSystem, and goes further on both ends.

  • A ready-made TeamSystem import plugin, reading the TeamSystem HR employee API with oAuth 2.0 / bearer token via the TeamSystem API gateway (confirmed per tenant) — no client to build or host.
  • The rules: which department, job, location or legal entity maps to which groups, licences and organisational unit. Microsoft's mappings move attributes; Joinly's rules decide access, and record the reason per assignment.
  • Both directories from one source: Entra ID through Microsoft Graph, on-premise Active Directory through the Joinly AD Agent (outbound only, no provisioning agent to install and no inbound rules), so hybrid organisations do not run two pipelines.
  • A brake: a dry run with an Excel export, thresholds per run, read-only mode, and a hard stop when an evaluation would revoke more than 20% of assignments at once.
  • Beyond the directory: shared mailbox, out-of-office, SharePoint and Teams, a ticket in TOPdesk or Freshservice, an SMS with the first-day credentials, a webhook to any application — as steps in the same workflow.
  • An audit log per mutation with its source and the workflow that caused it, which is the evidence an ISO 27001 or NIS2 auditor asks for.

Side by side

Microsoft's routeJoinly
TeamSystem connectorAPI-driven inbound provisioning: you build and host the clientReady-made import plugin
Who decides accessAttribute mappings; joiner/leaver tasks through Lifecycle Workflows (Entra ID Governance)Role rules on department, job and location, with the reason recorded per assignment
On-premise Active DirectoryMicrosoft Entra provisioning agentJoinly AD Agent, outbound HTTPS only, OU and groups included
Before anything is writtenProvision on demand for a single userDry run with Excel export, thresholds, read-only mode, 20% brake
Beyond the directoryLifecycle Workflows tasks and custom extensionsExchange, SharePoint, Teams, TOPdesk, Freshservice, SMS, webhooks in one workflow
LicensingEntra ID P1/P2 or Governance for the API; Governance for Lifecycle WorkflowsJoinly subscription; the Microsoft Graph path needs no P1 or P2
EvidenceProvisioning logsAudit log per mutation, with source and workflow

When Microsoft's route is enough

If you have the engineering capacity to build and maintain the TeamSystem client, Entra ID is your only target and Lifecycle Workflows covers your joiner and leaver tasks, the API-driven route is a legitimate choice. Budget for the operations side: provisioning logs, throttling, failed records, and the day the TeamSystem API changes.

When you want Joinly

When there is an on-premise Active Directory next to Entra ID. When the answer to "why does this person have this group" has to come from a rule, not a memory. When you want to see what a run would do before it does it. When offboarding has to reach the mailbox, SharePoint and the service desk, not just the account. And when an auditor will ask for the log.

Can I use both?

Yes. Joinly can deliver its result to Microsoft's API-driven provisioning endpoint as SCIM 2.0 bulk requests — to Entra ID or, through the provisioning agent, to Active Directory. Then Joinly reads TeamSystem and applies the rules, and the Entra provisioning service does the write. The SCIM page for TeamSystem describes that route.

Frequently asked

Questions about TeamSystem

  • Does Microsoft have a native connector for TeamSystem?

    No. Microsoft ships native inbound connectors for Workday and SAP SuccessFactors only. For TeamSystem it offers API-driven inbound provisioning, where you build the client that reads TeamSystem and sends SCIM bulk requests.

  • Does Joinly replace Entra ID?

    No. Entra ID stays your directory and identity provider. Joinly sits between TeamSystem and Entra ID (and Active Directory) and decides what each account should have, applies it, and records why.

  • Do I need Entra ID P1 or P2 for Joinly?

    Not for the Microsoft Graph path, which uses Joinly's own app registration. Microsoft's API-driven provisioning endpoint requires Entra ID P1, P2 or Governance; if you choose that route, that licensing applies.

  • Can I start with the TeamSystem guide and decide later?

    Yes. Both installation guides for TeamSystem are public, and a trial lets you run the import as a dry run against your own data before anything is written.

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.