AFAS Profit logoSlack logo

Accounts in applications

AFAS to Slack integration: Slack accounts and user groups from AFAS Profit

With an integration between AFAS Profit and Slack, every new employee from AFAS gets a Slack account on the first working day with preferred name, job title and department, and joins the user groups of their organisational unit. After the end date in AFAS the Slack account is deactivated, and on rehire the same account becomes active again.

What the integration does

Organisations that manage employees in AFAS and use Slack as their chat platform create accounts by hand and forget to switch them off on departure. User groups such as @finance lag behind the departments in AFAS, so mentions reach the wrong people.

  1. HR enters a new employee in AFAS, with work email, job and organisational unit.
  2. On the start date KoppelHet creates the Slack account, or reactivates an existing deactivated account with the same employee number.
  3. The employee joins the user groups of their unit; the Slack administrator has linked those groups to channels once.
  4. When the job or unit changes in AFAS, profile and group membership follow.
  5. After the end date KoppelHet deactivates the account; messages are kept.
AFAS Profit → KoppelHet → SlackSOURCEAFAS ProfitTARGETSlackKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → SlackSOURCEAFAS ProfitTARGETSlackKoppelHetmapping · logging · monitoring
Out: Slack user with preferred name, work email and status · Job title, department and employee number in the profile · Manager in the profile · User groups per organisational unit

What to watch for with AFAS Profit and Slack

  • Slack users cannot be deleted, only deactivated. A new account with an email address that already belongs to a deactivated user fails. When a former employee returns in AFAS, KoppelHet looks up the old account by employee number and reactivates it, instead of trying a new account.
  • AFAS often records a new employee weeks before the start date, and Slack has no account that is ready without being active. KoppelHet therefore only creates the Slack account on the start date, so a new colleague does not read along before they are employed.
  • AFAS keeps a preferred name next to the official first names. In Slack colleagues see each other's names on every message. KoppelHet uses the preferred name as first name and display name, with prefix and last name as family name.
  • Slack accepts the manager as the Slack ID, email address or user name of an existing user. AFAS knows the manager as an employee; KoppelHet sends their work email from AFAS. If a new manager starts on the same day as their team, KoppelHet creates their account first.
  • User groups follow the organisational units in AFAS, but the @ mention handle cannot be set through provisioning. For a new unit KoppelHet creates the group; the Slack administrator chooses once the name colleagues use to mention it.
  • Slack allows at most fifty custom profile fields, including fields set through provisioning. If one profile field is invalid on creation, Slack drops all profile fields. KoppelHet therefore only sends job title, department, employee number and manager, and checks them in advance.
  • The integration token only works for accounts with the same or fewer permissions than the account that created it, and that account must remain an admin. We have the token created by a fixed Owner, so a departing admin in AFAS does not stop the integration.

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 on a free or Pro Slack plan?

No. Slack only offers the SCIM API on Business+ and Enterprise. On other plans inviting and deactivating stays manual work.

We already connect Slack through Entra ID. Do we need this?

Probably not. Keep Entra ID as the source for Slack and let AFAS fill the accounts and groups in Entra ID. Two sources for the same Slack accounts cause conflicts.

What happens to guests and external parties?

They stay outside the integration unless they are in AFAS. Their existing access does not change.

Technical details for IT

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

  • AFAS is read with a dedicated GetConnector under its own app connector, with employees, preferred name, job, organisational unit, manager, work email, start and end date, filtered on modification date. AFAS does not report employee changes on its own; hence a fixed interval.
  • To Slack through the SCIM API with an OAuth token with the admin scope, only on Business+ and Enterprise. POST, PATCH and DELETE /Users (DELETE deactivates), reactivate with active = true; /Groups for user groups. Too many calls return HTTP 429.

Which fields are transferred

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

Field in AFAS ProfitField in SlackNotes
E-mail werkuserName en emails
Roepnaamname.givenName en displayName
Voorvoegsel + Achternaamname.familyName
Functietitle
Organisatorische eenheiddepartment (enterprise-extensie)
MedewerkernummeremployeeNumber (enterprise-extensie)Key to find the account again on rehire
Leidinggevende (E-mail werk)manager.managerId (werkmail van de leidinggevende)
Organisatorische eenheidGroups (user groups)
Datum uit dienstactive = false

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.