
Identity and access management
Visma Peple to Google Workspace integration: Google accounts per school or location from Peple
With an integration between Visma Peple and Google Workspace, every new employee from Peple gets a Google account in the organisational unit of their school or location, with job title, department and manager. When the last contract or the replacement in Peple ends, KoppelHet suspends the Google account on the right day.
What the integration does
Organisations that use Peple for HR and payroll and work with Google Workspace, often in education, usually create Google accounts per school by hand. Substitutes get an account that remains after the replacement, and anyone who changes school is still in the old organisational unit.
- In Visma Connect KoppelHet gets an application with the scopes for employees, contracts, organisational units, users and replacements, without contact or tax data.
- In Google Workspace the administrator gives KoppelHet a service account with rights to manage users.
- KoppelHet maps Peple's organisational units onto the agreed structure of organisational units in Google.
- For a new contract or a replacement KoppelHet creates the account in the school's unit, with job title, department and manager.
- After the last contract or the last replacement KoppelHet suspends the account; with a new contract the same account opens again.
What to watch for with Visma Peple and Google Workspace
- Peple has a separate export for replacements, with who replaces whom and the start and end date of the replacement. KoppelHet uses it to give a substitute a Google account only while the replacement runs, in the unit of the school where they stand in.
- Organisational units in Peple have a parent unit and their own start and end date. KoppelHet translates that into a fixed path of organisational units in Google, so policy for Chromebooks, Gmail and Drive can differ per school, and moves an account when someone changes school.
- The manager is stored in Peple as a user ID on the contract, and Google expects an email address for the manager relation. KoppelHet uses the users export to find the employee number for that ID and puts the manager's Google address in the relation.
- According to the Peple documentation, an incremental export sometimes also returns employees who did not change, for example after a change at company level. KoppelHet compares every record with the current Google account and only writes real differences, so the Directory API does not receive the same thing thousands of times.
- Peple only returns contact detail fields with a separate scope; without that scope the export still succeeds, but they are missing. The business email address is not among them. KoppelHet does not request the scopes for contact and tax data, so home address and BSN never enter the integration.
- Peple stores name usage, with the partner's name separately. KoppelHet builds the surname in Google according to that name usage, and keeps it within the sixty characters Google allows for a surname.
- Peple allows a full export twice a day per data set, and on Saturday evening Peple temporarily refuses new exports. KoppelHet only runs incremental rounds during the day, one full comparison at night, and waits the indicated time during maintenance.
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 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.
Frequently asked questions
What happens to the files of a suspended substitute?
A suspended account keeps its files. Transferring or deleting after a period remains the administrator's choice and can follow later as an extension.
What if someone works at two schools?
The account sits in the unit of the main contract. Access to the second school goes through groups; we agree on that at the start.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Peple through the Visma.net HRM & Payroll Reporting API (HRM Analytics Public Api, Visma Connect client credentials) with scopes hrmanalytics:nlhrm:exportemployees, exportcontracts, exportorganizationunits, exportemployeereplacement and the users export. Exports with POST /v1/command/nl/hrm/... and results through GET /v1/query/nl/hrm/.../{jobId} (files in JSON or CSV); incremental with changeTimestampAfter and changeTimestampBefore; two full refreshes per endpoint per tenant per 24 hours; 503 with Retry-After during maintenance.
- Google Workspace through the Admin SDK Directory API (users.insert, users.update) with a service account and domain-wide delegation: primaryEmail, name (givenName and familyName at most 60 characters), orgUnitPath, externalIds (type organization), organizations (title, department, costCenter, primary), relations (type manager, value email address) and suspended.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Visma Peple | Field in Google Workspace | Notes |
|---|---|---|
employeeid | externalIds (type organization) | Key between both systems |
businessemailaddress of naamgevingsregel | primaryEmail | |
nickname | name.givenName | |
formattedname volgens nameusage | name.familyName | At most 60 characters |
orgunit (met orgunitparentid) | orgUnitPath | |
functionname | organizations.title | |
orgunitname | organizations.department | |
costcentername | organizations.costCenter | |
manageruserid via de users-export | relations (type manager) | Email address of the manager |
enddate laatste contract of replacement_enddate | suspended |
Related
Visma Peple → Active Directory
Visma Peple to Active Directory integration: accounts from Peple HRM & Payroll
Visma Peple → Arbodienst (SIVI)
Visma Peple to occupational health service via SIVI: sick and recovery notifications from Peple to the health service
Visma Peple → Microsoft Entra ID
Visma Peple to Entra ID integration: Microsoft accounts from Peple HRM & Payroll
Visma Peple → Exact Online
Visma Peple to Exact Online integration: cost centres ready in Exact and employee changes on a worklist