> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modelo de usuario y guía de migración

> Aprende cómo migrar del modelo centrado en dispositivos de OneSignal a las nuevas APIs y SDKs centrados en usuario para compromiso multi-canal más personalizado.

OneSignal ha migrado de un modelo centrado en dispositivos (Player ID) a un modelo centrado en usuario construido alrededor del concepto de un usuario unificado. Esta guía explica el nuevo modelo, cómo difiere del enfoque anterior, y cómo migrar tu aplicación de manera segura y exitosa.

<Note>
  Esta guía es para clientes que han estado usando OneSignal durante mucho tiempo en versiones 2, 3, o 4 de nuestros SDKs Móviles o v15 de nuestro SDK Web.

  Si eres un cliente nuevo o ya has migrado a la versión 5 de nuestros SDKs Móviles o v16 de nuestro SDK Web, puedes omitir esta guía e ir a:

  * [Usuarios](./users)
  * [Suscripciones](./subscriptions)
  * [Referencia del SDK móvil](./mobile-sdk-reference)
  * [Referencia del SDK web](./web-sdk-reference)
</Note>

<Frame caption="Mensajería multi-canal con el Modelo de Usuario">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/aafd98a-small-header-user-model.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=6d6b720a52fb316510a09653bae94385" alt="Ilustración multi-canal del Modelo de Usuario" width="1280" height="720" data-path="images/docs/aafd98a-small-header-user-model.png" />
</Frame>

## ¿Qué es el Modelo de Usuario?

El Modelo de Usuario te permite dirigirte a usuarios reales a través de todos los canales de mensajería a los que se suscriben (push móvil, push web, email, SMS y in-app) en lugar de dirigirte a dispositivos individuales.

Cada Usuario:

* Tiene uno o más Alias de Identidad (por ejemplo, external\_id, alias personalizado)
* Puede tener múltiples Suscripciones, una para cada canal o dispositivo
* Incluye metadatos como tags, idioma e historial de actividad

Este modelo simplifica la segmentación de audiencia, soporta mensajería multi-canal personalizada y desbloquea características avanzadas como Journeys, Analytics a Nivel de Usuario y Resolución de Identidad en Tiempo Real.

<Frame caption="Player vs. Modelo de Usuario">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/201ccdd-User_Model_Office_Visuals.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=d7910b524fb166050871f47ea344141f" alt="Diagrama mostrando diferencia entre modelos Player y Usuario" width="4064" height="5214" data-path="images/docs/201ccdd-User_Model_Office_Visuals.png" />
</Frame>

***

## Conceptos clave

<Tabs>
  <Tab title="Users">
    Un **Usuario** representa a una persona real. Puedes identificar a un usuario usando alias generados por el sistema o personalizados.

    * `onesignal_id`: Auto-generado por OneSignal
    * `external_id`: Establecido mediante `login()` del SDK o la API (alias reservado)
    * Aliases Personalizados: por ejemplo, `user_id`, `email`, `facebook`, etc.

    Aprende más: [Usuarios](./users)
  </Tab>

  <Tab title="Subscriptions">
    Una **Suscripción** representa un canal al que el usuario está suscrito. Esto incluye metadatos como información del dispositivo, tokens, historial de sesión y estado de opt-in.

    * Móvil e In-app
    * Push Web
    * Email
    * SMS

    Aprende más: [Suscripciones](./subscriptions)
  </Tab>

  <Tab title="Aliases">
    Los Aliases mapean identificadores externos (por ejemplo, ID de usuario de tu aplicación, ID de Mixpanel) a un usuario de OneSignal. Puedes asignar múltiples aliases para unificar identidades fragmentadas entre plataformas.

    * Aliases especiales:
      * `onesignal_id`: Auto-gestionado, solo lectura
      * `external_id`: Escribible, compatible con legacy

    Aprende más: [Aliases y External ID](./users)
  </Tab>
</Tabs>

***

## Beneficios de migrar

* **Identidad Unificada**: Un usuario a través de todos los dispositivos y canales
* **Mensajería Avanzada**: Potencia características como Journeys, seguimiento de inicio de sesión in-app y campañas de ciclo de vida
* **Segmentación Limpia**: Agrupa usuarios por tags, estado de suscripción, compromiso con el canal y más
* **API Simplificada**: Menos endpoints, modelo de datos más consistente

***

## Pasos de migración

<Warning>
  El Modelo de Usuario no es retrocompatible. La migración es **unidireccional** del Modelo Player al Modelo de Usuario.

  Antes de migrar:

  * Prueba exhaustivamente con un entorno de staging
  * Migra solo después de que todos los SDKs y servicios de backend estén actualizados
</Warning>

<Steps>
  <Step title="Unificar usuarios con external_id">
    Usa aliases de identidad para vincular registros de player existentes en usuarios unificados.

    **Opciones**:

    * SDK `login(externalId)`
    * API: [Create User](/reference/create-user), [Update User](/reference/update-user)
    * CSV: [Importar](./import)

    OneSignal auto-fusionará las suscripciones bajo el mismo External ID.
  </Step>

  <Step title="Actualizar tus SDKs de OneSignal">
    Todos los SDKs móviles de OneSignal v5+ y el SDK web v16+ soportan el Modelo de Usuario.

    Despliega actualizaciones del SDK usando estrategias de implementación por fases para minimizar el riesgo:

    * [Apple Phased Rollout](https://developer.apple.com/help/app-store-connect/update-your-app/release-a-version-update-in-phases)
    * [Google Play Staged Rollout](https://support.google.com/googleplay/android-developer/answer/6346149)

    Consulta la [tabla de soporte de SDK abajo](#sdk-support).
  </Step>

  <Step title="Actualizar tu backend para usar las nuevas APIs de Usuario">
    Reemplaza llamadas de API del Modelo Player obsoletas con los equivalentes del Modelo de Usuario.

    Usa nuestra [Referencia de API](/reference/rest-api-overview) y las tablas abajo para mapear endpoints antiguos a nuevos.
  </Step>
</Steps>

## Soporte de SDK y guías de migración

<Tabs>
  <Tab title="Mobile SDKs">
    | Plataforma   | SDK                                                                 | Guía de Migración                                                                                         |
    | ------------ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
    | Android      | [v5+](https://github.com/OneSignal/OneSignal-Android-SDK/releases)  | [Guía](https://github.com/OneSignal/OneSignal-Android-SDK/blob/user-model/main/MIGRATION_GUIDE.md)        |
    | iOS          | [v5+](https://github.com/OneSignal/OneSignal-iOS-SDK/releases)      | [Guía](https://github.com/OneSignal/OneSignal-iOS-SDK/blob/major_release_5.0.0/MIGRATION_GUIDE.md)        |
    | Unity        | [v5+](https://github.com/OneSignal/OneSignal-Unity-SDK/releases)    | [Guía](https://github.com/OneSignal/OneSignal-Unity-SDK/blob/user-model/main/MIGRATION_GUIDE_v3_to_v5.md) |
    | Flutter      | [v5+](https://github.com/OneSignal/OneSignal-Flutter-SDK/releases)  | [Guía](https://github.com/OneSignal/OneSignal-Flutter-SDK/blob/user_model/main/MIGRATION_GUIDE.md)        |
    | React Native | [v5+](https://github.com/OneSignal/react-native-onesignal/releases) | [Guía](https://github.com/OneSignal/react-native-onesignal/blob/major_release_5.0.0/MIGRATION_GUIDE.md)   |
    | .NET MAUI    | [v5+](https://github.com/OneSignal/OneSignal-DotNet-SDK/releases)   | [Guía](https://github.com/OneSignal/OneSignal-DotNet-SDK/blob/user-model/main/MIGRATION_GUIDE.md)         |

    <Note>
      Para un mapa de métodos antiguos del modelo player a métodos nuevos del modelo usuario, consulta [Mapeo del SDK móvil](./device-user-model-mobile-sdk-mapping).
    </Note>
  </Tab>

  <Tab title="Web SDKs">
    | Plataforma | SDK                                                                 | Guía de Migración                                                                         |
    | ---------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
    | Web        | [v16+](https://github.com/OneSignal/OneSignal-Website-SDK/releases) | [Guía](https://github.com/OneSignal/OneSignal-Website-SDK/blob/160000/MIGRATION_GUIDE.md) |
    | React      | [v3+](https://www.npmjs.com/package/react-onesignal)                | [Guía](https://github.com/OneSignal/react-onesignal/blob/main/MigrationGuide.md)          |
    | Vue 2 & 3  | [v2+/v3+](https://www.npmjs.com/package/@onesignal/onesignal-vue3)  | [Guía](https://github.com/OneSignal/onesignal-vue/blob/HEAD/MigrationGuide.md)            |
    | Angular    | [v2+](https://www.npmjs.com/package/onesignal-ngx)                  | [Guía](https://github.com/OneSignal/onesignal-ngx/blob/HEAD/MigrationGuide.md)            |

    <Note>
      Para un mapa de métodos antiguos del modelo player a métodos nuevos del modelo usuario, consulta [Mapeo del SDK web](./device-user-model-web-sdk-mapping).
    </Note>
  </Tab>

  <Tab title="Backend SDKs">
    | Lenguaje | SDK                                                                                  |
    | -------- | ------------------------------------------------------------------------------------ |
    | Node     | [@onesignal/node-onesignal](https://www.npmjs.com/package/@onesignal/node-onesignal) |
    | Python   | [onesignal-python-api](https://pypi.org/project/onesignal-python-api/)               |
    | Go       | [onesignal-go-api](https://pkg.go.dev/github.com/OneSignal/onesignal-go-api/v2)      |
    | .NET     | [OneSignalApi](https://www.nuget.org/packages/OneSignalApi)                          |
    | Rust     | [onesignal-rust-api](https://crates.io/crates/onesignal-rust-api)                    |
    | Ruby     | [onesignal](https://rubygems.org/gems/onesignal)                                     |
    | PHP      | [onesignal-php-api](https://packagist.org/packages/onesignal/onesignal-php-api)      |
  </Tab>
</Tabs>

***

## Referencia de API

<Tabs>
  <Tab title="Player Model (Obsoleto)">
    | API Antigua                                    | Reemplazo                                                                                     |
    | ---------------------------------------------- | --------------------------------------------------------------------------------------------- |
    | [Add Device](/reference/add-a-device)          | [Create User](/reference/create-user) o [Create Subscription](/reference/create-subscription) |
    | [Edit Device](/reference/edit-device)          | [Update User](/reference/update-user) o [Update Subscription](/reference/update-subscription) |
    | [Delete Player](/reference/delete-user-record) | [Delete User](/reference/delete-user) o [Delete Subscription](/reference/delete-subscription) |
  </Tab>

  <Tab title="User Model (Nuevo)">
    | Acción        | API                                     |
    | ------------- | --------------------------------------- |
    | Crear         | [Create User](/reference/create-user)   |
    | Ver           | [View User](/reference/view-user)       |
    | Actualizar    | [Update User](/reference/update-user)   |
    | Eliminar      | [Delete User](/reference/delete-user)   |
    | Agregar Alias | [Create Alias](/reference/create-alias) |
    | Remover Alias | [Delete Alias](/reference/delete-alias) |

    ### APIs de Suscripción

    | Acción     | API                                                       |
    | ---------- | --------------------------------------------------------- |
    | Crear      | [Create Subscription](/reference/create-subscription)     |
    | Actualizar | [Update Subscription](/reference/update-subscription)     |
    | Eliminar   | [Delete Subscription](/reference/delete-subscription)     |
    | Transferir | [Transfer Subscription](/reference/transfer-subscription) |
  </Tab>
</Tabs>

***

## Siguientes pasos

* 📘 Consulta nuestra documentación de [Usuarios](./users) y [Suscripciones](./subscriptions)
* 🛠️ Actualiza SDKs y prueba en staging antes de lanzar
* 💬 ¿Necesitas ayuda? Contacta `support@onesignal.com`

<Check>
  ¡Ahora estás listo para construir experiencias de mensajería multi-canal personalizadas potenciadas por el nuevo Modelo de Usuario!
</Check>

***
