Officient logoGoogle Workspace logo

Identity and access management

Officient to Google Workspace integration: Google accounts for Belgian and Dutch employees

With an integration between Officient and Google Workspace, every new person in Officient gets a Google account with team, job, manager and the preferred language from Officient. After the last day of employment KoppelHet suspends the Google account, and if someone returns, the same account opens again.

What the integration does

Organisations that keep their staff data in Officient for Belgian payroll and work in Google Workspace often have IT create Google accounts by hand, often in English while the colleague speaks French or Dutch.

  1. In Officient an administrator creates a client app with read rights on personal data, and in Google a service account gets rights on users and groups.
  2. For a new person KoppelHet fetches the detail and creates the Google account, with language, team and job.
  3. When the team, job or manager changes, KoppelHet only updates that part in Google.
  4. After the last day of employment KoppelHet suspends the account; after the agreed period the files go to the manager.
  5. If Officient reports that someone returns, KoppelHet lifts the suspension of the existing account.
Officient → KoppelHet → Google WorkspaceSOURCEOfficientTARGETGoogle WorkspaceKoppelHetmapping · logging · monitoringOfficient → KoppelHet → Google WorkspaceSOURCEOfficientTARGETGoogle WorkspaceKoppelHetmapping · logging · monitoring
Out: Google account with Officient ID · Team as department and group · Job, manager and extra manager · Preferred language · Suspension after departure and reopening on return

What to watch for with Officient and Google Workspace

  • Officient stores the preferred language as a two-letter code, such as nl or fr. Google accepts exactly such an ISO 639 code as the user's preferred language. KoppelHet therefore passes the code straight on, so Gmail and Drive open in French straight away for a French-speaking colleague.
  • Next to the regular manager Officient has an extra manager. Besides the manager relation, Google also has a relation for a dotted-line manager. KoppelHet fills both, so the org chart in Google Contacts also shows the second line.
  • Officient has separate webhooks for a different team, a new manager and a new job. On such a notification KoppelHet only adjusts that field and the team's group in Google, so other fields IT manages in Google are left alone.
  • An Officient webhook only contains the person's ID, and the API allows thirty calls per five seconds. KoppelHet fetches the detail per notification and spreads the nightly comparison, so a large team change does not run into that limit.
  • With person_reactivated Officient reports that someone returns. KoppelHet looks up the suspended Google account through the Officient ID in the external IDs and switches it back on, with the mail and files still there, instead of creating a second address.
  • Officient only fills the number at the payroll provider for some Dutch integrations. KoppelHet therefore uses the person's own ID as the key in Google, which always exists for Belgian employees too.

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 the integration see wages in Officient?

No. The client app only has read rights on personal data, not on wages.

Does this also work for Dutch colleagues in Officient?

Yes. The integration uses the Officient ID, which exists for every person.

Technical details for IT

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

  • Officient through the REST API (api.officient.io/1.0) with a bearer token of its own client app (scope personal.info:read): GET /people/{id}/detail with email, team, current_role, current_reports_to (person_id, extra_manager_id), employment (first_employment_date, last_employment_date) and preferred_language_code. Webhooks person_added, person_updated, person_reactivated, person_team_updated, person_manager_updated and person_role_updated (body with related_object_id). At most 30 calls per 5 seconds.
  • Google through the Admin SDK Directory API (users with primaryEmail, name, externalIds, organizations with department and title, relations type manager and dotted_line_manager, languages with languageCode and preference, suspended), groups and members, and the Data Transfer API. Access through a service account with domain-wide delegation.

Which fields are transferred

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

Field in OfficientField in Google WorkspaceNotes
Officient person idexternalIds (type organization)Fixed key
Voornaam en achternaamname.givenName en name.familyName
Naamgevingsregel of emailprimaryEmail
preferred_language_codelanguages (preference preferred)
teamorganizations.department en groep
current_roleorganizations.title
current_reports_to.person_idrelations (type manager)
current_reports_to.extra_manager_idrelations (type dotted_line_manager)
last_employment_datesuspended = 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.