Skip to content

Request an integration

Tell us which system you want to connect. We review every request weekly and publish a step-by-step guide or build the connection.

Import master data

Office guide: import employees, clients and placements from one CSV file, with a check before anything is saved.

Last updated: · Markdown version

Use "Importeren" (Import) to load employees ("Medewerkers"), clients ("Opdrachtgevers") and placements ("Plaatsingen") from one CSV file. This is the fastest way to start, or to bring over changes from your ATS or payroll system.

Exact file specification for developers: CSV import.

Prepare the file

One row per placement (person × client). A person without a client is allowed: then only the person is created or updated.

Download the template in "Importeren", or start from this example (semicolon-separated):

personeelsnummer;voornaam;achternaam;email;telefoon;opdrachtgever;plaatsing;functie;startdatum;einddatum
1005;Ahmed;Bakker;ahmed@example.com;+31612345678;VDL Montage;PL-2026-105;Monteur;01-11-2026;

Column names may be Dutch or English; these are recognised (not case-sensitive):

Field Accepted headers
Employee number (required) personeelsnummer, werknemersnummer, nummer, employee_number
First name (required) voornaam, first_name
Last name (required) achternaam, last_name
Email email, e-mail, emailadres
Phone telefoon, mobiel, phone
Client opdrachtgever, klant, inlener, client
Placement number plaatsing, plaatsingsnummer, placement, placement_ref
Role functie, role
Start date (required with a client) startdatum, begindatum, start_date
End date einddatum, end_date

Dates: DD-MM-JJJJ (e.g. 01-11-2026) or JJJJ-MM-DD. Other columns are ignored and listed as "not recognised".

How rows are matched

  • Employees are matched on employee number. Existing → updated (name, email, phone); new → created.
  • Clients are matched on name, ignoring upper/lower case. A name that does not exist yet creates a new client, so check spelling ("VDL Montage" vs "VDL-Montage" gives two clients).
  • Placements are matched on placement number. Without a placement number every import creates a new placement, so always fill it.

Steps

  1. Go to "Importeren" and choose the file.
  2. Click "Controleer bestand" (check file). Nothing is saved yet. You see per row whether it is OK, plus how many employees, clients and placements would be created or updated.
  3. Fix the rows with errors in your spreadsheet. Common messages: "personeelsnummer ontbreekt" (employee number missing), "naam ontbreekt" (name missing), "startdatum ontbreekt of is ongeldig (gebruik DD-MM-JJJJ)" (start date missing or invalid), "einddatum ligt vóór startdatum" (end date before start date).
  4. Choose the file again ("Kies het bestand opnieuw als je na de controle importeert") and import.
  5. Check "Medewerkers" and "Plaatsingen". Give app access to employees who need the app ("Toegang geven"; requires an email address).

Common problems

Problem Fix
Accented letters look wrong Save the CSV as UTF-8 ("CSV UTF-8" in Excel)
Duplicate clients after import Client names must match exactly (case is ignored). Rename the file values and re-import; remove the duplicate client by hand
A placement end date cannot be set Hours already exist after the new end date; the placement cannot be shortened past them
Duplicate placements Fill the placement number column so later imports update instead of create

Automate it

tt import file.csv (check) and tt import file.csv --commit do the same from the command line; see CLI. The API endpoint is POST /import.