domainwidedelegation.comStart free

Use cases → Multi-tenant and agencies

Synchronise contact directories across Workspace domains

Keep contacts in sync between separate Google Workspace domains using a delegated service account, avoiding manual exports and stale data.

Who it is forAdmins and automation engineers managing shared contacts across multiple domains.
APIsAdmin SDK, People API
Typical scopesadmin.directory.user.readonly, contacts

The problem

Manually exporting and importing contacts between domains leads to drift, missed updates, and user complaints about missing or incorrect details. Automation is possible, but the APIs behave differently across domains and the process is not straightforward.

How it works

  1. Use a delegated service account with domain-wide delegation in each domain.
  2. Read users and shared contacts from the source domain via Admin SDK and People API.
  3. Transform and map contact fields to match the destination domain’s schema.
  4. Write or update contacts in the destination domain using the People API, tracking external IDs for idempotency.

What changes

Contacts are synchronised automatically across domains, reducing manual effort and the risk of outdated information.

The trap in this one. The People API deduplicates contacts based on email, but custom fields and external IDs are not reliably surfaced in queries. If you rely on external IDs for idempotency, you may hit silent duplicates when syncing updates—the API will not warn you and users will see multiple nearly-identical contacts. Always fetch and compare the full set of fields, not just IDs, before writing updates.

Watch it explained

“Google Workspace to Microsoft 365 Migration, Google to Office 365 Migration, G Suite Migration” — Office365Concepts on YouTube. Third-party video, included because it covers this ground well. We are not affiliated with the channel.

Questions people ask

How often should the sync run?

Daily is typical, but high-change environments may need hourly. Watch for API quota limits if running frequently.

Can I sync group memberships as well?

You can, but group membership is managed separately via the Admin SDK Groups API. Treat contacts and groups as distinct syncs.

Want this built?

This is a pattern we run in production. We will set up the delegation and build this on top of it — $500 per hour, most of it working the same day.

Talk to us Or read the setup guide

Related use cases

Synchronise contact directories across multiple tenants

Keep user and shared contacts consistent between Google Workspace tenants using a delegated service account and the Directory API.

Synchronise user directories across multiple domains

Keep user records in sync between Workspace tenants using a delegated service account with directory read and write access.

Operate several Workspace tenants from one service account

Authorize the same client ID in each domain and switch tenants simply by changing who you impersonate.