AFAS Profit logoHa

HR to ITSM

AFAS to HaloITSM integration: employees as Halo users and tickets after the AFAS workflow

With an integration between AFAS Profit and HaloITSM, every employee from AFAS becomes a user in Halo, on the site of their work location and with their organisational unit as department, and a completed hire produces an onboarding ticket with what HR ticked in AFAS. On departure an offboarding ticket follows and the user becomes inactive after the last working day.

What the integration does

Organisations with HR and payroll in AFAS Profit and an IT service desk in HaloITSM already record in AFAS whether someone gets a laptop, phone or car, but IT hears it through an email from the team lead. Employees who have left are still active users in Halo.

  1. HR enters a new employee in AFAS and completes the hire workflow.
  2. KoppelHet creates the user in Halo, on the site of the work location, with job and department.
  3. An onboarding ticket is created in the new user's name, with the start date, the manager and the equipment HR ticked.
  4. When job, department or work location change, KoppelHet updates the user.
  5. When an end date is set, an offboarding ticket is created. After the last working day KoppelHet sets the user to inactive.
AFAS Profit → KoppelHet → HaloITSMSOURCEAFAS ProfitTARGETHaloITSMHaloITSMKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → HaloITSMSOURCEAFAS ProfitTARGETHaloITSMHaloITSMKoppelHetmapping · logging · monitoring
Out: User with name, email, job and department · Site per work location · Onboarding ticket with start date and required equipment · Offboarding ticket with last working day · Inactive user after departure

What to watch for with AFAS Profit and HaloITSM

  • AFAS starts a hire with a workflow that HR completes. KoppelHet only creates the Halo user and onboarding ticket after that. A hire that HR cancels in the workflow therefore does not produce a ticket that IT later has to close.
  • Custom fields in AFAS, such as laptop, phone or access badge yes or no, go into custom fields on the Halo ticket. The team in Halo can filter on them and does not need to search the text.
  • A Halo user also has fields for a home phone and other personal details. KoppelHet reads AFAS with its own app connector without home address, BSN or salary, so those fields stay empty in Halo.
  • An employee can have several employments in AFAS, for example two contracts with two operating companies. In Halo that is one user. Only when the last employment ends is an offboarding ticket created.
  • IT colleagues are employees in AFAS and also agents in Halo. KoppelHet only updates their user and leaves the agent permissions in Halo alone.
  • A reorganisation in AFAS changes the department of hundreds of employees at once. Halo accepts several users per call but limits the number of calls per five minutes. KoppelHet bundles the changes, so the service desk keeps working during the run.
  • KoppelHet sets a leaver to inactive and does not delete them. Deleting in Halo also removes the related records, and then IT no longer knows which laptop still has to come back.

This integration is also part of joiner, mover, leaver.

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 anything go back from Halo to AFAS?

No, this integration only writes to Halo. If you want to see issued laptops in the AFAS file, for example, that can be added later as an extension.

What if HR moves the start date?

Then KoppelHet adds a note to the existing onboarding ticket with the new date. No second ticket is created.

Which permissions does the integration get in Halo?

Only reading and changing users and creating tickets. You set up the API application in Halo under the Halo API settings.

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 app connector with GetConnectors for employees, employments and organisational units, filtered on change date, plus a webhook on the hire workflow. No BSN, salary or home address.
  • Halo is written through the Halo REST API with an API application (client credentials). POST /Users and POST /Tickets with an array of records; with an id it updates, without an id it creates. Tickets with tickettype_id, user_id, site_id, summary, details and customfields. Users are set to inactive; DELETE /Users/{id} is not used. Rate limit 700 calls per 300 seconds per tenant.

Which fields are transferred

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

Field in AFAS ProfitField in HaloITSMNotes
Medewerker (EmId)Eigen veld personeelsnummer (customfields)Key to find the Halo user again
Roepnaam en achternaam met voorvoegselfirstname en surname
E-mail werkemailaddress
Functietitle
Organisatorische eenheiddepartment
Standplaatssite_idThrough a table from work location to site
Vrije velden zoals laptop of telefooncustomfields van het onboardingticket
Datum in dienst en leidinggevendeOnboardingticket: tickettype_id, user_id, summary, details
Einddatum contractOffboardingticket, daarna inactive = true

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.