Cómo sincronizar la Global Address List (GAL) con los contactos del iPhone | Guía completa

¿Tu iPhone dejó de mostrar a todo el personal de tu organización y sólo conserva los contactos personales de Outlook? Tranquilo: no es fallo del teléfono sino una característica de Exchange ActiveSync. A continuación descubrirás por qué sucede y la forma más completa, segura y escalable de reponer la Global Address List (GAL) en iOS.

Índice

Por qué desapareció la GAL del iPhone

Cuando configuramos una cuenta de correo corporativo de Microsoft 365 o Exchange Server en iOS mediante Exchange ActiveSync (EAS), el sistema crea un vínculo directo entre la aplicación Contactos del iPhone y la carpeta Contactos del buzón del usuario. Esa carpeta no incluye la GAL sino sólo las entradas personales que el usuario haya creado o que alguna automatización haya copiado previamente. De ahí que, tras restaurar el teléfono, cambiar de cuenta o ser migrados a otro entorno, la libreta global pueda «desaparecer», dejando el directorio interno vacío.

Entender la limitación de Exchange ActiveSync

EAS está optimizado para minimizar el uso de datos móviles y preservar la privacidad. Por diseño:

  • Sincroniza correo, calendario, tareas, notas y una sola carpeta de contactos: la que aparece en Outlook como «Contactos». 
  • La GAL reside en el servidor como un directorio LDAP y, en entornos locales, se distribuye a Outlook mediante la Offline Address Book (OAB); iOS carece de un cliente OAB.
  • Para completar nombres al redactar un mensaje, iOS consulta al servidor en línea y muestra coincidencias de la GAL, pero no las guarda en la aplicación Contactos.

En consecuencia, el teléfono puede buscar personas de la GAL al enviar correos, mas no exhibirlas en Contactos ni compartirlas con otras apps (WhatsApp, Teams, etc.)… salvo que las copiemos a la carpeta Contactos.

Copiar la GAL a la carpeta Contactos

Con Outlook para Windows

  1. Abre Outlook y pulsa Ctrl + Mayús + B o el icono de Libreta de direcciones.
  2. En la lista desplegable superior elige Global Address List.
  3. Haz clic en la primera entrada, mantén ⇧ Shift y selecciona la última para marcar todo el directorio (pueden ser miles de registros).
  4. Con el botón derecho selecciona Agregar a Contactos. Todas las tarjetas se copiarán a la carpeta.
  5. (Opcional) Si la GAL es muy grande, realiza una búsqueda por departamento o ubicación y copia sólo los grupos relevantes.

Con Outlook en la web (OWA)

  1. Inicia sesión en el portal Outlook y haz clic en el icono  Personas.
  2. Selecciona Directorios > GAL.
  3. Activa la casilla sobre el primer contacto, desplázate hasta el final y marca también el último (OWA soporta selección múltiple paginada).
  4. En la barra superior, elige Agregar a contactos

Buenas prácticas al seleccionar contactos

  • Clasifica antes de copiar: departamentos demasiado grandes saturarán la carpeta y alargarán la réplica inicial.
  • Evita duplicados: si ya hiciste un volcado anterior, ordena la vista por Nombre completo y elimina repetidos antes de sincronizar.
  • Campos personalizados: Outlook añadirá teléfono de trabajo, móvil, extensión, cargo, dirección y nombre para mostrar. Si tu organización usa campos extendidos (p. ej. ID de empleado) crea un formulario personalizado o recurre a PowerShell (abajo) para rellenarlos.

Sincronizar al iPhone paso a paso

  1. En el iPhone abre Ajustes › Contactos › Cuentas y toca tu cuenta Exchange.
  2. Activa el interruptor Contactos. Si ya estaba activado, apágalo, espera diez segundos y vuelve a encenderlo: forzarás un refresh.
  3. Conecta el dispositivo a Wi‑Fi y mantenlo con la pantalla encendida. La primera réplica puede tardar de unos minutos a más de una hora en organizaciones con miles de registros.
  4. Comprueba el progreso desde la app Contactos. Verás cómo aparecen tarjetas en bloques de 50‑100 registros.

Verificar el tipo de cuenta y políticas MDM

Un fallo frecuente es configurar la cuenta corporativa como IMAP/POP para el correo y CalDAV/CardDAV para contactos. Ese método funciona con proveedores genéricos, pero no replica la GAL.  

Además, muchas compañías gestionan los iPhone mediante soluciones MDM (Intune, Jamf, MobileIron, etc.). Pide al administrador que revise:

Ajuste de Intune / MDMImpacto en la GALAcción recomendada
Contact Sync DisabledBloquea la exportación de contactos EAS a iOS.Habilitar o crear grupo de excepción.
Prevent Outlook contact writebackImpide que Outlook copie contactos al contenedor nativo.Desactivar para el perfil afectado.
Allow open-in to unmanaged appsSi está prohibido, WhatsApp/Teams no verán los contactos.Permitir solo libros de direcciones.

Automatizar la sincronización para un solo usuario

Copiar manualmente la GAL cada vez que entra un nuevo empleado es tedioso. Con un pequeño script de PowerShell local desde un equipo con Outlook puedes programar una tarea que refresque la carpeta Contactos cada noche:


Add-Type -AssemblyName "Microsoft.Office.Interop.Outlook"
$outlook = New-Object -ComObject Outlook.Application
$ns       = $outlook.GetNamespace("MAPI")
$gal      = $ns.AddressLists | Where-Object { $_.Name -eq "Global Address List" }
$contacts = $ns.GetDefaultFolder(10) # 10 = olFolderContacts

foreach ($entry in $gal.AddressEntries) {
    if (-not ($contacts.Items | Where-Object { $_.Email1Address -eq $entry.Address })) {
        $entryDetails = $entry.GetExchangeUser()
        $contact      = $contacts.Items.Add()
        $contact.FirstName     = $entryDetails.FirstName
        $contact.LastName      = $entryDetails.LastName
        $contact.CompanyName   = $entryDetails.CompanyName
        $contact.JobTitle      = $entryDetails.Title
        $contact.BusinessTelephoneNumber = $entryDetails.BusinessTelephoneNumber
        $contact.Save()
    }
}

Guarda el archivo como Sync-GAL.ps1 y programa la tarea con el Programador de tareas de Windows según tu horario de mantenimiento.

Automatizar a nivel de organización

Exchange Online con PowerShell


Conecta a Exchange Online
Connect-ExchangeOnline -Organization contoso.com
Exporta la GAL a un objeto
$gal = Get-Recipient -RecipientPreviewFilter '((RecipientType -eq "UserMailbox") -or (RecipientType -eq "MailUser"))'
foreach ($mbx in Get-Mailbox -Filter "RecipientTypeDetails -eq 'UserMailbox'") {
    foreach ($user in $gal) {
        Add-MailboxFolderPermission -Identity "$($mbx.PrimarySMTPAddress):\Contacts" -User $user.PrimarySMTPAddress -AccessRights Editor -ErrorAction SilentlyContinue
        # Usa Set-Contact o New-MailboxContact si quieres crear elementos completos
    }
}

El ejemplo anterior otorga permisos de editor sobre la carpeta Contactos de cada buzón a los miembros de la GAL. Posteriormente, un job con Graph API puede crear los contactos con metadatos extendidos. Ajusta filtros y scopes (p. ej. por OU o grupo) para limitar la exportación.

Microsoft Graph (Azure AD)

Usar Graph es ideal si tu organización tiene apps que ya gestionan acceso delegando scopes Contacts.ReadWrite:


POST https://graph.microsoft.com/v1.0/users/{userId}/contacts
Content-Type: application/json
{
  "givenName": "Carlos",
  "surname": "Romero",
  "companyName": "Contoso Ltd.",
  "mobilePhone": "+34 600 555 123",
  "emailAddresses": [
      {
        "address": "cromero@contoso.com",
        "name": "Carlos Romero"
      }
  ],
  "businessPhones": ["+34 915 555 987"]
}

Inserta un for‑each sobre todos los usuarios para replicar la GAL en paralelo y monitoriza el throttling con Retry-After.

Escenarios comunes de error y solución

Síntoma en iOSPosible causaSolución práctica
No aparecen las fotos de los contactos.Las imágenes superan los 100 KB o no se copiaron al crear el contacto.Redimensiona a 96×96 px y vuelve a sincronizar.
Se muestra el nombre pero no el número móvil.El campo MobilePhone está vacío en el atributo AD mobile.Completa AD o edita el contacto manualmente.
Contactos duplicados en WhatsApp.iCloud y Exchange tienen la misma tarjeta.Fusiona desde Contactos › Tarjeta › Enlazar.
El conmutador «Contactos» en Ajustes aparece en gris.Perfil MDM bloquea la función.Solicita excepción o política BYOD.
Al copiar toda la GAL Outlook se congela.Más de 25 000 registros exceden la RAM disponible.Segmenta por grupos o usa PowerShell.

Preguntas frecuentes (FAQ)

  • ¿Debo repetir el volcado cuando alguien cambia de puesto?
    Solo si necesitas el nuevo cargo en la tarjeta. El correo y el teléfono se actualizan automáticamente gracias a la resolución en línea al enviar mensajes.
  • ¿Qué límite de contactos impone iOS?
    No existe tope oficial, pero en la práctica más de 50 000 ralentizan Spotlight y generan consumo excesivo de batería en la indexación inicial.
  • ¿La copia a Contactos viola la GDPR?
    Al permanecer dentro del entorno corporativo y en dispositivos gestionados, la base legal suele ser «interés legítimo» o «ejecución de contrato». Consulta a tu DPO si tu empresa permite BYOD sin cifrado.
  • ¿Cómo forzar la descarga sin borrar la cuenta de Exchange?
    Puedes desactivar Contactos, reiniciar el iPhone y volver a activarlo; iOS elimina la base local y la reconstruye.
  • ¿Outlook para iOS sincroniza contactos internos en segundo plano?
    Solo si el administrador habilita Save Contacts en la app y la política MDM lo permite.

Buenas prácticas de mantenimiento

Para evitar sorpresas en futuras migraciones o cambios de dispositivo, sigue estas recomendaciones:

  1. Repite la copia cada trimestre o automatízala con los scripts anteriores. Así mantendrás números y cargos al día.
  2. Depura duplicados — Outlook tiene una vista “Contactos duplicados” y terceros como Scrubly facilitan la limpieza.
  3. Etiqueta con categorías: usa colores o etiquetas personalizadas (VIP, Soporte TI, etc.) para filtrar más rápido en el iPhone.
  4. Documenta el proceso en la wiki interna para el self‑service de los usuarios sin elevar tickets al help desk.
  5. Revisa políticas MDM tras cada actualización de iOS; Apple y Microsoft añaden opciones que podrían anular tu configuración.

Resumen final

La Global Address List no se replica de forma nativa a iOS porque Exchange ActiveSync sólo sincroniza la carpeta Contactos. Copiar la GAL a dicha carpeta —ya sea a mano o mediante scripts PowerShell/Graph— habilita la sincronización bidireccional con el iPhone, devolviendo la experiencia completa a los usuarios. Implementa la solución de modo planificado, controla el tamaño del directorio y automatiza refrescos periódicos para que tu organización nunca vuelva a perder un número crítico en movilidad.

Índice