Continuous Sync
EUnifyer can automatically sync data from your source provider on a daily schedule. This is a one-way mirror — data flows from the source into EUnifyer, keeping your imported data fresh without manual re-runs.
What it does
- Syncs contacts, calendar events, files, and mail from Google Workspace, Microsoft 365, or Zoho
- Runs on a configurable schedule (default: daily at 2:00 AM UTC)
- Uses provider delta APIs where available to fetch only changed items
- Skips items that were already imported (deduplication by source ID)
- Tracks sync history with per-data-type results
What it does not do
- Bidirectional sync — changes in EUnifyer are not pushed back to the source
- Rename/move detection — if an item is renamed at the source, it may be imported as a new item
- New user provisioning — sync only covers users already imported into EUnifyer. New users require a fresh organisation import.
- Real-time sync — syncs run on a schedule (minimum: every 12 hours) or on manual trigger
- Role sync — roles are a one-time setup during import
Setting it up
Prerequisites
- An active admin credential (Google service account, Microsoft app registration, or Zoho OAuth) already uploaded via Admin → Imports → Organisation Import
- At least one completed organisation import (users must exist in EUnifyer)
Steps
- Go to Admin → Data Sync
- Click Set up sync
- Select your credential from the dropdown
- Choose data types to sync (contacts, calendar, files, mail)
- Pick a schedule:
- Daily at 2:00 AM (default)
- Daily at 4:00 AM
- Every 12 hours
- Click Set up sync to confirm
The first sync will run at the next scheduled time. You can also click Sync now to trigger an immediate run.
How it works per provider
Google Workspace
| Data type | Delta method |
|---|---|
| Contacts | People API syncToken — returns only changed contacts |
| Calendar | Calendar API syncToken + updatedMin — returns changed events |
| Files | Drive API changes.list with pageToken — change feed |
Gmail history.list with startHistoryId — incremental |
Google provides proper delta/change-feed APIs for all data types. Each sync run is fast after the initial run.
Microsoft 365
| Data type | Delta method |
|---|---|
| Contacts | Graph /contacts/delta |
| Calendar | Graph /events/delta |
| Files | Graph /drive/root/delta |
Graph /messages/delta |
Microsoft Graph delta queries return a deltaLink that is stored and used for the next sync.
Zoho
| Data type | Delta method |
|---|---|
| Contacts | Full re-fetch + deduplicate by source ID |
| Calendar | Filter by lastModifiedTime since last sync |
| Files | Full re-fetch + deduplicate by source ID |
Filter by receivedTime since last sync |
Zoho does not offer delta APIs for contacts or files. These data types require a full re-fetch each run — syncs for Zoho organisations may take longer.
Managing sync
Enable/disable
Toggle a sync config on or off from the sync dashboard. Disabling a sync stops future scheduled runs but preserves all configuration and history.
Manual trigger
Click Sync now on any config card to run immediately. The sync runs in the background — refresh the page or wait for the status to update.
Sync history
Click View history on a config card to see past runs. Each row shows:
- Trigger type (scheduled or manual)
- Status (running, completed, failed, cancelled)
- Start time and duration
- Items new, unchanged, and failed
Credential expiry
If your admin credential expires or is revoked, the sync will automatically pause and you will receive a notification. Update the credential in Admin → Imports → Organisation Import, then re-enable the sync.
Automatic pause after failures
If a sync fails 3 times consecutively, it is automatically paused to avoid repeated errors. Check the error details in the sync history, fix the underlying issue, then re-enable the sync.
FAQ
Can I sync only specific data types? Yes. Choose which data types to include when creating the sync config. You can change them later.
Does sync create new users? No. Sync only processes data for users that were already imported into EUnifyer. To add new users, run a new organisation import.
What happens if an item is renamed in the source? It may be imported as a new item. EUnifyer deduplicates by source ID, not by name.
Can I run sync more frequently than daily? The minimum built-in preset is every 12 hours. Custom cron expressions can be configured for more flexibility.
Is sync available for personal (non-admin) imports? Not currently. Sync operates at the organisation level using admin credentials.