Skip to content
Contactzilla
Back to Blog
Uncategorized • • Updated

How to Sync the Global Address List (GAL) to iPhone Contacts

Headshot Portrait of Nick Holder, MDM specialist at Contactzilla

Nick Holder

MDM Deployment Specialist

Contactzilla banner reading "How to Sync the Global Address List (GAL) To iPhones," showing an icon for the source directory flowing into the Contactzilla logo, next to two phone screens showing the Contacts app with lists split out by department, such as "department:finance" and "department:hr."

Microsoft 365 keeps the Global Address List up to date, but it won't put it on your team's iPhones as contacts that work with caller ID.

Short answer: To get the Global Address List on an iPhone, import your Microsoft Entra ID users into a shared address book and deploy it to the phone as a read-only CardDAV contacts account through your MDM, such as Intune or Jamf Pro. Microsoft 365 can't do this natively, because the GAL is a directory you search rather than a contacts account the iPhone stores. Contactzilla handles both steps: the contacts appear in the native Contacts app with caller ID, update on a schedule you set, and leavers can drop off automatically when their Entra account is disabled.

Prefer to watch first? Our video Sync Microsoft Global Address List to iPhone & Android runs through the Entra ID import and an Intune deployment end to end.

How to sync the GAL to iPhone with Contactzilla in four steps

1) Connect Contactzilla to Microsoft Entra ID: from the address book you want this data in, Contactzilla authenticates against your tenant over OAuth and reads directory data. Nothing is copied into individual mailboxes.

2) Configure the import: point it at your tenant, decide how much of the directory to bring in, and set how often it checks for changes.

3) Map fields and set update rules: Entra attributes map to contact fields, and you decide what's hidden, who's filtered out, and how deletions and duplicates are handled.

4) Deploy to iPhone: the address book reaches devices as a CardDAV contacts account through your MDM, or installed directly on each phone where there's no MDM, and appears in the native Contacts app with caller ID.

Diagram showing Microsoft Entra ID contacts imported into a Contactzilla address book and deployed to devices using CardDAV and configuration profiles
Microsoft Entra ID users are imported into one Contactzilla address book, which reaches every managed iPhone as a read-only CardDAV contacts account.

The sections below cover the decisions at each step. For every click, see the help article Import contacts from Microsoft Entra ID to Contactzilla.

Does the Global Address List sync to iPhone Contacts automatically?

No. Microsoft 365 keeps directory data and device contact sync deliberately separate. The GAL exists to support email addressing and Exchange directory lookups, and Microsoft's sync model runs the other way: through Exchange ActiveSync and Outlook, which sync a mailbox's own Contacts folder, not the directory itself. iOS follows the same split. The Contacts app only shows entries belonging to a configured account, such as iCloud, CardDAV, or an Exchange mailbox, and the GAL isn't one of those. A Microsoft moderator on Microsoft Q&A puts it plainly: "As far as I know, Exchange GAL does not sync to mobile phones natively." The only workaround offered there is manual: select the Global Address List in desktop Outlook and add everyone to your own contacts, a one-off copy that goes out of date as people join and leave.

That's why searching in iOS can surface a GAL entry through a linked Exchange or Outlook connection, while the same person is nowhere to be found in the Contacts app itself: search reaches the directory, but the Contacts app only reads from accounts.

Outlook on iPhone finding Camila Torres in the company directory, beside the iPhone Contacts app showing No Results for the same name.
The same colleague found by a directory search in Outlook on iPhone, but missing from the native Contacts app, because the Global Address List is a directory lookup and not a contacts account.

Key definitions: GAL, Entra ID users and mailbox contacts

Global Address List (GAL): the organisation-wide directory Exchange builds from users, mail contacts and distribution lists, used mainly for email addressing and lookups rather than device contacts.

Entra ID directory users: the identity objects behind those people in Microsoft Entra ID (formerly Azure Active Directory, or Azure AD), carrying attributes such as name, mobile phone, job title and department. This is the data an importer actually reads.

Mailbox contacts: the personal contacts inside one person's mailbox, synced individually through Outlook or ActiveSync, and unrelated to the shared directory.

Offline Address Book (OAB): a downloadable copy of the GAL that Outlook uses when it can't reach Exchange. It serves Outlook, not the iPhone Contacts app, so it doesn't solve this problem either.

Tip 💡 New to CardDAV? What Is CardDAV? Contact Sync Explained covers how the protocol itself works before you get into the Entra ID and MDM specifics below.

What are the ways to get the Global Address List onto an iPhone?

Every approach comes down to the same question: what pulls the directory data out, and how does it reach the device as a contacts account. Here's how the common approaches compare.

Options for delivering GAL data to iPhone Contacts

OptionStays updated?Shows in native Contacts / caller ID?Effort
Manual CSV or vCard exportNo, one-offYes, once importedLow per export, grows over time
Outlook "Save Contacts"Partial, depends on the mailboxInconsistent, duplicates commonLow to enable, unreliable to maintain
Exchange ActiveSync (mailbox contacts)Yes, for that mailbox's own contactsYesMedium; creates a separate copy per mailbox
Script or Graph API exportOnly if you build and run it on a scheduleNo, not directly; it writes contacts into individual Outlook mailboxes, not a shared device accountHigh; app registration, a maintained script, no built-in deduplication
Third-party GAL sync serviceYes, typicallyYes, typicallyMedium; ongoing subscription and setup
Entra ID import + MDM (Contactzilla)Yes, on the schedule you setYes, read-only on the deviceLow, after initial setup

The script/Graph API route is real and IT admins do build it: a common pattern uses Microsoft Graph's Contacts.ReadWrite permission to write directory data into each user's own Outlook contacts (see Practical 365's walkthrough of the approach). It stops at the mailbox, though: those contacts only reach the native Contacts app if Outlook's own device sync is also switched on, which is the same partial, duplicate-prone path covered above. In community discussion (for example this Jamf admin forum thread), the answer to "how do I sync the GAL to iPhone" tends to be a dedicated third-party tool rather than a maintained script, precisely because MDM platforms have no built-in way to read the GAL themselves.

What you need to sync the GAL to iPhone

  1. Directory read permissions in Microsoft Entra ID (an admin may need to grant tenant-wide consent for a bulk deployment).
  2. A Contactzilla account with an address book to import into.
  3. An MDM platform for automatic deployment (Intune, Jamf Pro, MaaS360, Workspace ONE or Mosyle), or none at all: How to Sync the GAL to iPhone and Android Without Intune covers the routes that don't need one.
Tip 💡 Whether devices are personally owned or company-owned changes how you'll want to roll this out, and how much end users can be prevented from touching the setup. If that's not already decided, see BYOD vs COPE: choosing the right mobile device policy.

Step 1: Connect Contactzilla to Microsoft Entra ID

From the address book you want this data to land in, for example a dedicated "Staff Directory" address book, choose Import and select Microsoft Entra ID. Contactzilla then walks you through Microsoft's own OAuth consent flow, scoped to read-only directory access, so no credentials are stored outside Microsoft's system. The first time, an Entra admin also grants admin consent directly in Entra (under Enterprise Applications, against the Contactzilla connector), so the connection covers the whole tenant rather than one user at a time.

Microsoft Entra admin center All users list showing demo staff with job title, department and +1 416 555 mobile numbers.
The Global Address List starts here: Microsoft Entra ID users with their mobile numbers and departments, the directory data Contactzilla reads for the iPhone sync.
Contactzilla's Import screen showing Standard Importers (CSV, vCard) and Premium Importers with Microsoft Entra ID selected alongside Google Workspace, SharePoint lists and Odoo.
Microsoft Entra ID sits under Premium Importers, started from inside the address book that will hold the imported contacts.

Step 2: Choose which Entra ID users to import and how often

Paste in your Microsoft tenant ID, found on the Entra admin center overview page. If your Entra tenant is already organised into a group that matches who you want, such as a staff or all-employees group, you can scope the import to just that group. Otherwise it's usually simpler to bring in everyone and filter out what you don't want at the mapping stage next. Set how often the import checks Entra for changes, from manual up to monthly; manual is worth keeping while you're testing. From here on, this address book, not any individual mailbox, is the shared company contact list every device pulls from.

Contactzilla's Entra ID import sync settings showing the tenant ID field and a sync interval dropdown with Manual, hourly, daily, weekly and monthly options.
Set the Entra ID tenant and how often the GAL import runs, from manual to hourly, daily, weekly or monthly.

Step 3: Map Entra ID fields and handle joiners, leavers and duplicates

Entra typically returns far more columns than belong on a phone, so mapping is also where you decide what's actually shown: map name, phone number and department onto Contactzilla's contact fields, and leave anything you don't want visible on the device, such as a home address or job title, unmapped. Crucially, the Entra ID field itself gets mapped to a Hidden Custom Unique field: it never reaches the device, but it's what lets every future sync, on whatever interval you set, recognise the same contact again rather than creating a duplicate.

Contactzilla's field mapping screen with the Entra ID column mapped to Hidden Custom Unique, the setting that lets future syncs recognise the same contact instead of duplicating it.
Mapping Entra ID to Hidden Custom Unique is what lets a repeat sync recognise the same contact instead of duplicating it.
Entra user properties for Aaron Blake with the Mobile phone field, +1 416 555 1144, highlighted under Contact Information.
Caller ID on iPhone depends on this: the Mobile phone in a user's Entra ID contact information has to be mapped to a phone field for the synced GAL contact to match incoming calls.

Filters then decide which records reach that address book in the first place. If your tenant has a mix of real people and service or shared-mailbox accounts, a filter can require a mobile number before a record is imported, exclude specific Entra groups, or match on company name for a multi-tenant setup. Deletion handling comes next: disabling someone's Entra account can be set to remove their contact on the next sync, so leavers drop off automatically instead of lingering. Duplicate handling then decides what happens on every other sync. Replace keeps the address book an exact mirror of Entra, while Merge or Skip suit setups where Contactzilla also holds data added by hand, so the list keeps reflecting who has actually joined, moved or left.

Contactzilla's mapping screen showing an active filter that excludes 26 records with no mobile phone number from the import.
A mobile-number filter in action: 26 records without one are excluded from this import.

Step 4: Deploy the GAL address book to iPhone through your MDM

Create a device connection for the address book, and the platform generates an iOS configuration profile you can upload directly to your chosen MDM. Set the connection to read-only: end users can't edit or delete what they see on their device, so the address book in Contactzilla stays the one source of truth instead of drifting as people make their own changes on-device.

Contactzilla's device connection setup for iOS, with Access Type set to Full Read Only so contacts can't be edited or deleted on-device.
Setting the device connection to Full Read Only is what stops end users editing or deleting the shared contacts on their phone.

That configuration profile follows Apple's own format for adding a managed contacts account to a device, called a Contacts payload, the same format every MDM builds on, which is why the same profile works whichever platform sits underneath it.

A Contactzilla device connection's menu open on Download Profile, the option that downloads the .mobileconfig file to upload to your MDM.
Download Profile is where the .mobileconfig file for the MDM upload comes from.

On Microsoft Intune, for example, a policy is created and assigned to a device group, the downloaded .mobileconfig file is uploaded directly to that policy, and the contacts appear in the native Contacts app on the next check-in. The same file installs the same way through Jamf Pro, Workspace ONE, MaaS360 or any other MDM, just under that platform's own custom-profile upload screen; the platform guides below have the exact clicks. Once installed, the shared contact list shows up in the native iOS Contacts app, with automatic updates and caller ID.

Step 5: Check the GAL contacts and caller ID on a test iPhone

On a test device, open Settings > Apps > Contacts > Contacts Accounts and confirm the account is listed under the name of your address book (Staff Directory in this example), with the dav.contactzilla.app server. Check that a known contact appears correctly in the Contacts app, then place a test call from that number and confirm the name resolves instead of showing just a number.

iPhone Settings path to the Staff Directory CardDAV account: Contacts Accounts, the Staff Directory account, then server dav.contactzilla.app.
A successful deployment shows the Staff Directory CardDAV account under Settings on the iPhone (iOS 26.6.2), with the dav.contactzilla.app server.
iPhone Contacts showing the Staff Directory list with 62 contacts, colleagues listed A to Z, and Aaron Blake's synced mobile number.
After the sync, Global Address List contacts sit in the iPhone's own Contacts app (iPhone 15, iOS 26.6.2): the Staff Directory list, each colleague, and the mobile number from Entra ID.
iPhone incoming call banner showing Aaron Blake on mobile, and the Phone app Recents list logging a missed call from Aaron Blake.
An incoming call from a colleague shows their name through caller ID, and the missed call is logged under their name in Recents.

Tested on an iPhone 15 running iOS 26.6.2, October 2026. On iOS 17 and earlier, the Contacts settings sit under Settings > Contacts rather than Settings > Apps > Contacts.

Tip 💡 Contactzilla's CardDAV delivery isn't tied to Intune specifically. If you're on Jamf Pro, Workspace ONE, MaaS360, or no MDM at all, the same managed address book deploys the same way. How to Sync the GAL to iPhone and Android Without Intune walks through each of those paths.
Tip 💡 Contactzilla integrates with leading MDM platforms by generating standard iOS configuration profiles for deployment. If you're rolling out contacts at scale, follow the step-by-step setup guides for Microsoft Intune, Mosyle MDM, Jamf Pro, Workspace ONE or IBM MaaS360.

Can the Global Address List sync to Android phones too?

Yes. Contactzilla delivers the same shared address book into the native Android Contacts app through its Contactzilla Sync app, with the same read-only or read-write control, and the option to limit a deployment to specific labels or groups. How to Sync the Global Address List (GAL) to Android Phones covers the Android side in full, including Samsung and Pixel behaviour and the QR-code pairing step the Sync app uses in place of iPhone's built-in CardDAV support.

Android GAL deployment guides by MDM

Row of Android phones displaying CardDAV contact sync interface with user profiles
The same Global Address List address book can reach Android phones through the Contactzilla Sync app, alongside the iPhones in your fleet.

When syncing the GAL to iPhone with Contactzilla is the right fit

  • You want your organisation's Entra ID directory, the whole tenant, to be the shared contact list your team's devices use.
  • Contacts need to appear natively on the device for calling, caller ID and messaging, not just as a searchable directory.
  • People join, move roles or leave often enough that a one-off export won't stay accurate.
  • Devices are managed through an MDM, or few enough to set up by hand.

Troubleshooting: GAL contacts or caller ID missing on iPhone

Most problems trace back to one of a few places: Entra admin consent, the MDM-deployed profile and its device assignment, or field mapping.

If the import doesn't bring in any contacts: check that an Entra admin has granted admin consent for the Contactzilla connector under Enterprise Applications in the tenant. That consent is a one-off, tenant-wide step, and without it the connection can complete while the import itself has nothing to read.

Entra's Enterprise Applications permissions screen for Contactzilla Entra Import, with Grant admin consent highlighted alongside the Microsoft Graph directory read permissions requested.
Grant admin consent here, in Entra's Enterprise Applications, if imports aren't returning any contacts.

If contacts don't appear after the profile installs: confirm the profile shows as installed under Settings on the device, then check in your MDM that the policy carrying the device connection is actually assigned to the device group containing the affected phones. A correctly built profile can still miss devices sitting in the wrong group. Also check the address book actually contains contacts in Contactzilla, since an empty or still-syncing address book will deploy an empty account.

iPhone Settings path to the Staff Directory CardDAV account: Contacts Accounts, the Staff Directory account, then server dav.contactzilla.app.
The same on-device check used to confirm a working deployment also rules out a missing or failed profile install.

If contacts appear but caller ID doesn't work: check the phone number is mapped to a phone field (mobile, work, home or custom) on the mapping screen. A number left unmapped or mapped to the wrong field type won't match against an incoming call.

If duplicate contacts show up alongside the GAL: check whether Outlook's own "Save Contacts" setting is also active on the same devices, since it can create a second, separate copy of the same people. If you manage Outlook with Intune, Sync Policy Managed App Data With Native Apps explains the setting behind that copy.

Next steps

Frequently Asked Questions

Why can't I see the GAL in my iPhone's Contacts app?

Because the GAL is a directory lookup, not a contacts account. iOS can search it through a linked Exchange or Outlook connection without ever creating entries in the Contacts app. Only contacts stored in a synced contacts account, such as CardDAV, iCloud or a mailbox's own Contacts folder, appear there.

Does Exchange ActiveSync sync the GAL to iPhone Contacts?

No. ActiveSync syncs a mailbox's own Contacts folder to the device, not the Global Address List itself. If GAL entries need to reach the Contacts app, they first have to be copied into a mailbox or delivered through a separate contacts account.

Will caller ID work when the GAL is synced to iPhone?

Yes, provided the contacts are delivered as real entries in the native Contacts app rather than left as a directory lookup. When a contact is deployed through a CardDAV account or profile via MDM, iOS can match an incoming call's number against it and show the name.

How often does the GAL update on iPhone?

As often as you set the import to run: manually, hourly, daily, weekly or monthly. Each run reads the latest Microsoft Entra ID data into the address book, and the change follows on to staff iPhones the next time they sync. Leavers can be removed automatically when their Entra account is disabled.

Can I sync the GAL to iPhone without Intune?

Yes. The same Contactzilla profile works in Jamf Pro, Workspace ONE, MaaS360, Mosyle and other MDMs, and small teams with no MDM can install the contacts account directly on each phone. How to Sync the GAL to iPhone and Android Without Intune covers each route.

Can Outlook for iOS sync Microsoft 365 contacts to the native Contacts app?

Yes, partially. Enabling Outlook's "Save Contacts" setting can copy mailbox contacts into the iPhone Contacts app, but it doesn't sync the GAL as a managed list, and results vary and can create duplicates in mixed environments.

Can Intune or another MDM sync the Global Address List to iPhone on its own?

No, not directly. MDM platforms don't read the Microsoft GAL themselves. What they can do is deploy a configuration profile that adds a managed contacts account to the device, and that account will show GAL data only if something has already delivered it into the address book backing that account.

Can the GAL sync to both iPhone and Android at once?

Yes. Once directory contacts are in a shared address book rather than left as a GAL lookup, both platforms can use it: iPhones through an iOS configuration profile, and Android phones through the Contactzilla Sync app. Updates reach both from the same address book.

Can I choose which GAL contacts reach staff iPhones?

Yes. An import can be filtered before it ever reaches a device, for example requiring a mobile number, excluding specific Entra groups such as service accounts and shared mailboxes, or matching on company name. This keeps the address book to real, reachable people rather than every object the directory happens to contain.

Ready to supercharge your contact book?

Grow sales and stay organized with better contact management for your team.

No credit card required • 14-day free trial

Contactzilla contact management dashboard on a laptop