Skip to Content
IntegrationContinuous Sync

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 AdminImportsOrganisation Import
  • At least one completed organisation import (users must exist in EUnifyer)

Steps

  1. Go to AdminData Sync
  2. Click Set up sync
  3. Select your credential from the dropdown
  4. Choose data types to sync (contacts, calendar, files, mail)
  5. Pick a schedule:
    • Daily at 2:00 AM (default)
    • Daily at 4:00 AM
    • Every 12 hours
  6. 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 typeDelta method
ContactsPeople API syncToken — returns only changed contacts
CalendarCalendar API syncToken + updatedMin — returns changed events
FilesDrive API changes.list with pageToken — change feed
MailGmail 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 typeDelta method
ContactsGraph /contacts/delta
CalendarGraph /events/delta
FilesGraph /drive/root/delta
MailGraph /messages/delta

Microsoft Graph delta queries return a deltaLink that is stored and used for the next sync.

Zoho

Data typeDelta method
ContactsFull re-fetch + deduplicate by source ID
CalendarFilter by lastModifiedTime since last sync
FilesFull re-fetch + deduplicate by source ID
MailFilter 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 AdminImportsOrganisation 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.