CYNC Documentation

Everything you need to install, configure, and operate CYNC - the Entra ID to Exchange Online contact sync service that makes company contacts available on every employee’s phone.

What is CYNC?

CYNC is a Windows Service that reads users from Microsoft Entra ID (Azure AD) and creates them as contacts in your Exchange Online mailboxes. It uses the Microsoft Graph API exclusively - no Exchange Web Services (EWS), no legacy protocols.

Once installed, CYNC runs unattended as a background service. A WinUI 3 admin dashboard provides real-time progress, sync history, and configuration - without requiring PowerShell or scripting knowledge.

Components

Cync.Service

.NET 10 Worker Service — the sync engine, gRPC server, and license enforcer. Runs as LocalSystem.

.NET 10 · Microsoft.Graph SDK v5 · EF Core · Serilog
Cync.UI

WinUI 3 admin dashboard (unpackaged). Connects to the service via named pipe (local) or HTTPS (remote).

WinUI 3 · Windows App SDK 1.8
Cync.Installer

Setup.exe bundle with service registration, EULA, feature selection, prerequisite installation, and major-upgrade support.

WiX v5 · Offline prerequisites

How sync works

  1. Fetch users from Entra ID. CYNC calls the /users/delta endpoint to retrieve only users that have changed since the last sync. A delta link token is persisted locally between runs.
  2. Diff against existing contacts. Each synced contact is tagged with a Microsoft Graph Open Extension (com.itbaer.cync) that stores the source Entra user ID. This allows CYNC to detect renames and email changes as updates rather than creating duplicates.
  3. Apply contact changes concurrently. Create, update, and delete operations are sent to the Graph API for each target mailbox. Up to 4 mailboxes are processed in parallel with automatic retry and exponential backoff on throttling.
  4. Log everything. Every sync run is recorded in a local SQLite database: timestamps, users processed, contacts created, updated, deleted, and any errors. The WinUI dashboard and CSV export make this data accessible without touching log files.

Required permissions

CYNC requires three Application permissions on the Entra ID App Registration, all requiring admin consent:

PermissionTypePurpose
User.Read.AllApplicationRead user profiles from Entra ID (display name, email, department, etc.)
Group.Read.AllApplicationRead group memberships for source group filtering (required when syncing specific groups)
Contacts.ReadWriteApplicationCreate, update, and delete contacts in target users' Exchange Online mailboxes

See the Entra ID Setup guide for step-by-step instructions.

Licensing

CYNC licenses are RSA-2048 signed JSON payloads activated via an online activation server. Each license key can only be active on one machine at a time. The license is a text string that you paste into the admin UI and activate.

Free tier - up to 10 users

Fully functional, no license key required, no time limit. All features included.

Per-user pricing - from € 0.18/user/month

Pay for the exact number of users you need. Volume discounts apply automatically - the more users, the less per user. Monthly and annual billing available. All features included at every user count.

UsersPrice/user/moAnnual total
25€ 0.29€ 52.20
100€ 0.29€ 313.20
500€ 0.21€ 1,234.80
1,000€ 0.18€ 2,138.40

Each Exchange Online mailbox that receives synced contacts counts as one user. The number of source users synced from Entra ID is unlimited. Licenses are bound to the machine on activation but fully transferable via deactivate and reactivate. First 10 users are always free.

Need more than 5,000 users? Contact IT-BAER.

See Pricing for the full interactive calculator.

Support

Every license includes email support at admin@it-baer.net.