---
title: 'Microsoft 365 integration'
summary: 'Connects your PBX to Microsoft 365 to provision users from Entra ID and sync Outlook contacts both ways.'
section: features
tags:
  - telephony
  - integrations
  - microsoft
updated: '2026-06-18'
---

> The Microsoft 365 integration connects your PBX to Microsoft Entra ID and Microsoft Graph so user accounts and contacts stay aligned between Cockpit and Microsoft.

## Overview

Microsoft 365 is one of the integration types you configure under [Integrations](integrations.md). It uses your Microsoft tenant to read directory users and to read and write each user's Outlook contacts through Microsoft Graph. Each sync behavior has its own toggle, so you can enable only the parts you need.

## What it does

Before any sync runs, the integration needs admin consent in your Microsoft Entra tenant. Until consent is granted, the user sync and the contact push stay off even when the integration is active and the toggles are on. Consent is granted once per tenant against the Voxbi application registration.

The integration authenticates to Microsoft Graph using the application client credentials flow, scoped to your tenant. Access tokens are obtained and cached automatically, so you do not enter or manage a token yourself.

The three toggles, all on the Microsoft 365 tab, work as follows.

- **Fetch Microsoft users to Cockpit** (`microsoft_users_sync`) pulls users one way, from Microsoft Entra into Cockpit. Cockpit reads each directory user and provisions a matching Cockpit user account, carrying over first name, last name, email, active state, business phone as the extension, mobile number, office, and city. This direction requires admin consent. See [Users](users.md) for the accounts that result.

- **Push contacts to Microsoft** (`microsoft_contacts_sync`) pushes contacts one way, from Cockpit out to Microsoft. For each enabled Cockpit user it maintains two contact folders in that user's Outlook account, one for global contacts and one for that user's personal contacts, and creates, updates, or removes Microsoft contacts to match what is in Cockpit. This direction also requires admin consent. See [Contacts](contacts.md) for the source records.

- **Fetch contacts from Microsoft** (`microsoft_user_contact_sync`) pulls contacts the other way, reading a user's Microsoft contacts from the same two folders so Cockpit can show them. This is a read-only view of what already exists on the Microsoft side.

The two contact directions are independent of each other but both operate on the same per-user global and personal folders, so the push direction is what populates those folders in the first place.

> [!NOTE]
> The push direction matches existing Microsoft contacts by email, then phone, then name before creating new ones, which avoids duplicating contacts that are already present. When the same people are synced across more than one Microsoft 365 integration, the toggles can still produce duplicates.

When a Cockpit user is disabled, the integration removes that user's contacts from their managed Microsoft folders so stale entries do not linger.

## See also

- [Integrations](integrations.md) - the integration entity and its full field reference.
- [Users](users.md) - provisioned from Microsoft Entra.
- [Contacts](contacts.md) - the contact sync target.
