Microsoft Entra ID logoSlack logo

Accounts in applications

Entra ID to Slack integration: Slack accounts and user groups from Microsoft Entra ID, on rehire too

With an integration between Microsoft Entra ID and Slack, every colleague in the right Entra group automatically gets a Slack account with name, job title, department and manager, and the account is deactivated as soon as they leave the group or their account is disabled. KoppelHet also works for a Slack Enterprise organisation, switches returning former colleagues back on, makes external people guests with an end date and puts the start date in the Slack profile.

What the integration does

Organisations that manage all accounts in Entra ID and work in Slack run into the same things when accounts are created. A returning colleague gets no account because their old email address still belongs to a deactivated user, a new surname does not reach Slack by itself, and freelancers get a full account instead of a guest account with an end date.

  1. IT adds a new colleague to the Entra group for Slack and to their department group.
  2. KoppelHet first checks whether Slack already has a deactivated user with that email address or employee number, and reactivates that user instead of creating a new one.
  3. Otherwise KoppelHet creates the account with name, job title, department, manager and start date, and adds the colleague to their department's user group.
  4. External people become a guest with an end date, so their access stops by itself.
  5. When IT disables the account, KoppelHet deactivates the Slack user.
Microsoft Entra ID → KoppelHet → SlackSOURCEMicrosoft Entra IDTARGETSlackKoppelHetmapping · logging · monitoringMicrosoft Entra ID → KoppelHet → SlackSOURCEMicrosoft Entra IDTARGETSlackKoppelHetmapping · logging · monitoring
Out: Slack user with username, name and email · Job title, department, cost centre and employee number · Manager · Start date in the profile · User groups per department

What to watch for with Microsoft Entra ID and Slack

  • Slack cannot delete a user, only deactivate them, and refuses a new account with an email address that already belongs to a deactivated user. When a former colleague returns, KoppelHet looks up the old Slack user and switches it back on, with their earlier messages and channels.
  • A new surname in Entra ID belongs in the Slack display name too, which colleagues see in every channel. KoppelHet updates the display name on every name change.
  • For a Slack Enterprise organisation the token must come from the organisation itself, not from one workspace, and groups become IDP groups. KoppelHet sets up the integration at organisation level.
  • A Slack username is at most 21 characters and shares its namespace with channel names, so a colleague cannot get a username that is already a channel. KoppelHet makes the username from Entra ID short enough and picks an agreed variant on a clash.
  • According to Slack, single-channel guests cannot be fully created through provisioning; multi-channel guests can, with an expiry date. KoppelHet makes external people from Entra ID a guest with the end date of their assignment.
  • Slack has a profile field for the start date, so colleagues can see who has just started. Entra ID does have a hire date; KoppelHet puts it in the Slack profile.
  • A mention such as @finance cannot be set through provisioning. The administrator creates the user group and the mention once in Slack; KoppelHet then keeps the membership in line with the department group in Entra ID.

How we build and run it

  • The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
  • Every sync and every error is visible in the functional log; on an error your administrator is notified.
  • A change that cannot go through is not half-applied but queued for another attempt.
  • KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
  • After go-live we manage the integration and adjust it when your process changes.
  • The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.

Implementation, architecture and compliance

Implementation and price

This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.

A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Does this work with Slack Pro?

No. Slack's SCIM API is only available on Business+ and Enterprise. On lower plans no integration can manage accounts automatically.

Why Entra ID as the source and not the HR system?

If IT already keeps the groups in Entra ID accurate, that is the shortest route. If start date and department must come straight from HR, the HR system can be the source; see Workday to Slack.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Entra ID is read through Microsoft Graph with a delta query on users and group membership, with an app registration with read-only permissions. Fields used include employeeId, employeeHireDate, displayName, jobTitle, department, manager, userType and accountEnabled.
  • Slack is written through the Slack SCIM API (v2) with an OAuth token with the admin scope. DELETE /Users sets a user to deactivated; reactivation uses active = true. The start date goes through the schema urn:scim:schemas:extension:slack:profile:1.0, guests through urn:scim:schemas:extension:slack:guest:1.0 with type multi and expiration.
  • Slack only allows matching on userName and email. Slack rate-limits the SCIM API with HTTP 429 and allows at most 50 custom profile fields.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in Microsoft Entra IDField in SlackNotes
employeeIdenterprise.employeeNumberFixed key, also on rehire
mailNickname (ingekort)userNameAt most 21 characters, unique and not equal to a channel name
givenName en surnamename.givenName en name.familyName
displayNamedisplayNameOn changes too, not only on creation
mailemails
jobTitletitle
department en companyNameenterprise.department en enterprise.organization
managerenterprise.manager.managerIdLooked up as the manager's Slack ID
employeeHireDateprofile.startDate
userType = Guest of externe groepGast met einddatum
accountEnabledactive

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.