> ## 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.

# Segment (Twilio)

> Integra OneSignal con Twilio Segment para datos de usuario y eventos de mensajería.

<Frame caption="Descripción general de la integración OneSignal Segment">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0fe35d2-onesignal-segment-integration_1.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=f70d1f0b0ea879b548b634bb253ecacf" width="1280" height="720" data-path="images/docs/0fe35d2-onesignal-segment-integration_1.png" />
</Frame>

## Descripción general

La integración OneSignal + Segment te permite:

* Enviar características de usuario y eventos desde Segment a OneSignal para enriquecer perfiles de usuario, potenciar la segmentación y activar mensajería.
* Enviar eventos de entrega de mensajes y participación desde OneSignal a Segment para análisis centralizados y almacenamiento de datos.

Esta configuración bidireccional soporta todos los canales principales de OneSignal: Push, In-App, Email y SMS.

***

## Requisitos

* Una [Cuenta OneSignal](https://onesignal.com/pricing) Growth, Professional o Enterprise.
* Permisos de Administrador de Segment
* El [Mobile SDK](./mobile-sdk-setup) y/o [Web SDK](./web-push-setup) de OneSignal desde el cual quieres enviar datos. Las integraciones solo de [Email](./email-setup) o [SMS](./sms-setup) no requieren el SDK.
* La Propiedad de OneSignal: [External ID](./users) que se mapea al `userId` de Segment.com.

***

## Configuración

### 1. Configurar OneSignal

Usa una app existente o crea una nueva en el dashboard de OneSignal. Luego configura tus canales preferidos:

* [Configuración Web Push](./web-push-setup)
* [Configuración Mobile Push](./mobile-sdk-setup)
* [Configuración SMS](./sms-setup)
* [Configuración Email](./email-setup)

### 2. Conectar Segment a OneSignal

Dentro del Dashboard de OneSignal, navega a **Data > Integrations** y haz clic en **Active** dentro de la tarjeta Segment.com. Luego continúa con las opciones de configuración.

#### Entrada de datos

"Data In" a OneSignal te permite enviar [segmentos de OneSignal](./segmentation), [etiquetas](./add-user-data-tags) y [eventos personalizados](./custom-events) desde tu cuenta de Segment.com a OneSignal. Haz clic en **Authenticate** bajo la sección *Data In* de la página de configuración de Segment.com en el Dashboard de OneSignal.

<Warning>
  Una vez habilitado para rastrear eventos personalizados, la integración de Segment.com enviará tanto Etiquetas de Datos como Eventos, por lo que no necesitarás actualizar ninguna plantilla existente que haga referencia a etiquetas de datos.
</Warning>

<Frame caption="Configuración de autenticación Data In">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/48031e3-Data_in.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=3985a85e39ed139234cf81b3f29a0290" width="1182" height="428" data-path="images/docs/48031e3-Data_in.png" />
</Frame>

Una vez que hagas clic en Authenticate, se abrirá una página web de Segment.com y se te pedirá que inicies sesión en tu cuenta de Segment.com. Luego se te pedirá que configures un nuevo destino de datos desde tu cuenta de Segment.com.

<Frame caption="Pantalla de configuración de Segment">
  <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/85c6577-segment_set_up.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=a8a554790d8c80595116aca43093627b" width="898" height="916" data-path="images/docs/85c6577-segment_set_up.png" />
</Frame>

#### Salida de datos

Habilitar "Data Out" a Segment.com sincroniza eventos de mensajes generados de vuelta a tu cuenta de Segment.com. Estos eventos de mensajes se generan al enviar mensajes a tus usuarios en la plataforma OneSignal. Más detalles sobre qué tipo de eventos se pueden generar, y las propiedades con las que se envían se pueden encontrar [abajo](./segment-onesignal-integration#message-events).

Primero, necesitas agregar OneSignal como una fuente desde tu cuenta de Segment.com. Puedes hacer eso navegando al [listado de Fuente OneSignal](https://segment.com/docs/connections/sources/catalog/cloud-apps/onesignal/) en el Catálogo de Conexiones de Segment.

Desde allí, puedes agregar tu token API de Segment.com en el Dashboard de OneSignal. Por favor navega a **Data > Integrations > Segment** en el Dashboard de OneSignal para agregar la clave API de Segment.

<Frame caption="Configuración de clave API Data Out">
  <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9d8eb5f-data_out_3.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=56098282da219dd7eb274b183b271362" width="1604" height="1052" data-path="images/docs/9d8eb5f-data_out_3.png" />
</Frame>

Después de configurar la clave API, asegúrate de verificar tu configuración de Política de Datos en Segment.com para determinar si necesitas enviar eventos al Endpoint de Residencia UE de Segment.

Una vez que todos esos ajustes estén completados, puedes seleccionar qué eventos quieres sincronizar con tu Cuenta de Segment dependiendo de qué canales utilizas con OneSignal.

### 3. Agregar destino OneSignal en Segment

Dentro de **Segment.com Dashboard > Destinations** deberías ver **OneSignal**. Si no, agrega OneSignal como un nuevo destino.

Habilita el Destino OneSignal, también deberías ver tu Clave API de OneSignal y App ID ya configurados.

<Frame caption="Configuración de destino OneSignal en Segment">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b191d42-turn-on-configuration-in-segment.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=aebe97a4fbfe4775b502b2c3186ff5fb" width="2046" height="946" data-path="images/docs/b191d42-turn-on-configuration-in-segment.png" />
</Frame>

Si la clave API y el App ID no están configurados, navega al [dashboard de OneSignal](https://app.onesignal.com/apps/), selecciona la App, y ve a **Settings > Keys & IDs**. Copia y pega el "App ID" y la "API key" en Segment.com.

#### Múltiples Fuentes de Segment.com

Si tienes múltiples fuentes, puedes utilizar [la función **Personas > Spaces** de Segment](https://segment.com/docs/personas/#personas-spaces) para vincular múltiples fuentes a un destino.

### 4. Enviar datos desde Segment a OneSignal

OneSignal almacena registros a nivel de canal: Push/IAM, Email y SMS. Estos registros ya deben estar creados en OneSignal y también debes establecer el alias [External ID](./users) en OneSignal para que coincida con el campo `userID` enviado por Segment.com.

<Warning>
  Los registros que no tengan un mapeo **Segment User ID \<--> OneSignal External ID** serán descartados.
</Warning>

## Características o propiedades de usuario

Puedes agregar datos a través de cada punto de contacto del cliente en Segment y luego enviar estas propiedades de usuario en tiempo real a OneSignal como [Etiquetas de Datos](./add-user-data-tags).

**Nota**: OneSignal no puede aceptar objetos anidados o arrays como propiedades de usuario.

[Identify](https://segment.com/docs/connections/spec/identify) - Las características o propiedades de usuario enviadas usando la *llamada Identify de Segment* se almacenan como etiquetas de datos en OneSignal. Por ejemplo:

<Frame caption="Ejemplo de llamada identify de usuario">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/docs/0209647-Screenshot_2024-05-08_at_11.44.24_AM.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=423258a2b318e017771eb7a0586a88d9" width="2360" height="632" data-path="images/docs/0209647-Screenshot_2024-05-08_at_11.44.24_AM.png" />
</Frame>

[Track](https://segment.com/docs/connections/spec/track/) - Para eventos y propiedades asociadas enviadas usando la *llamada Track de Segment*, OneSignal almacenará todas las *propiedades del evento* como etiquetas de datos, pero *descartará* el *nombre del evento* al almacenar las etiquetas. Si quieres mantener los *nombres de eventos* en las etiquetas de datos, puedes agregar el nombre del evento a las propiedades antes de enviarlos a OneSignal. Por ejemplo:

<CodeGroup>
  ```javascript track example theme={null}
  let timestampInSeconds = Int(NSDate().timeIntervalSince1970).toString()//convertir a string ya que Segment agrega decimales al final
  //el nombre se descartará y solo las propiedades se enviarán a OneSignal como etiqueta "last opened: timestampInSeconds"
  analytics.track(
    name: "iOS App Last Opened",
    properties: ["last opened": timestampInSeconds]
  )
  ```
</CodeGroup>

<Frame caption="Ejemplo de propiedades de llamada Track">
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/ce2b574-Screenshot_2024-05-08_at_11.49.34_AM.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=0a32647a69bae9078fa785b6df4a7d24" width="2360" height="632" data-path="images/docs/ce2b574-Screenshot_2024-05-08_at_11.49.34_AM.png" />
</Frame>

<Frame caption="Interfaz de características y propiedades de usuario">
  <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/565e212-user-traits-or-properties.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=a18d3a422c087b32ce05d702b51b2e6b" width="1773" height="1209" data-path="images/docs/565e212-user-traits-or-properties.png" />
</Frame>

## Audiencia Personas y Rasgos Computados

Las [Audiencias Personas](https://segment.com/docs/personas/) aparecen automáticamente como un [segmento en OneSignal](./segmentation).

Los rasgos computados se actualizan como [Etiquetas de Datos](./add-user-data-tags) en los registros de usuario de OneSignal.

**Audiencia**

<Frame caption="Interfaz de audiencia Personas y rasgos computados">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c494a4b-persona-audience-or-computed-traits.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=2a858790b04fbcbc6676e894efd3254b" width="1773" height="1209" data-path="images/docs/c494a4b-persona-audience-or-computed-traits.png" />
</Frame>

Las audiencias enviadas usando la [llamada Track](https://segment.com/docs/connections/spec/track/) de Segment crearán un segmento de OneSignal con el *Nombre de Audiencia*.

Las audiencias enviadas usando la [llamada Identify](https://segment.com/docs/connections/spec/identify/) de Segment:

* crearán un segmento de OneSignal con el *Nombre de Audiencia*
* agregarán etiquetas de datos (si hay propiedades adicionales en la llamada Identify) en todos los registros de usuario coincidentes.

<Frame caption="Segmentos creados en OneSignal desde Segment">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e5ad7f4-segments-in-onesignal.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=21e0f73a8bf21f50311b1c6e11535c51" width="1773" height="1209" data-path="images/docs/e5ad7f4-segments-in-onesignal.png" />
</Frame>

Las llamadas Identify y Track se envían automáticamente a OneSignal cuando un usuario entra o sale de la Audiencia.

**Rasgos Computados** Los Rasgos Computados de Personas se almacenan como [Etiquetas de Datos](./add-user-data-tags) en los registros de usuario de OneSignal ya sea que se pasen a OneSignal como una llamada Identify o una llamada Track. Luego puedes usar estas etiquetas de datos para crear manualmente segmentos de OneSignal y automatizar tus flujos de trabajo de mensajería.

***

## Eventos de Mensajes

## Tipos de Eventos

Estos son los tipos de eventos de mensajes que OneSignal envía a Segment

| Tipo de MessageEvent          | Descripción del Evento                                     |
| ----------------------------- | ---------------------------------------------------------- |
| Push Sent                     | Notificación push enviada exitosamente                     |
| Push Received                 | Notificación push recibida exitosamente                    |
| Push Clicked                  | Notificación push tocada en dispositivo                    |
| In-App Message Displayed      | Mensaje In-App mostrado exitosamente en dispositivo        |
| In-App Message Clicked        | Mensaje In-App clicado en dispositivo                      |
| In-App Message Page Displayed | Página de Mensaje In-App mostrada                          |
| Email Sent                    | Email enviado exitosamente                                 |
| Email Opened                  | Email abierto por destinatario                             |
| Email Unsubscribed            | Email desuscrito por destinatario                          |
| Email Received                | Email recibido por destinatario                            |
| Email Reported As Spam        | Email reportado como spam por destinatario                 |
| Email Bounced                 | Email devuelto al remitente debido a error permanente      |
| Email Failed                  | No se pudo entregar el email a la bandeja del destinatario |
| SMS Sent                      | SMS enviado a destinatario                                 |
| SMS Delivered                 | SMS entregado exitosamente                                 |
| SMS Failed                    | SMS falló al enviar                                        |

### Propiedades de Eventos

Estas son las propiedades que están presentes en eventos enviados desde OneSignal a Segment.com

| NOMBRE DE PROPIEDAD | DESCRIPCIÓN                                                        |
| ------------------- | ------------------------------------------------------------------ |
| `userId`            | El `external_id` asociado con el mensaje                           |
| `anonymousId`       | El `subscription_id`                                               |
| `messageId`         | El identificador del mensaje discreto                              |
| `campaign_id`       | El mismo valor que `messageId`                                     |
| `message_name`      | El nombre del mensaje                                              |
| `message_title`     | El título del mensaje                                              |
| `message_contents`  | Los contenidos del mensaje                                         |
|                     |                                                                    |
| `subscription_type` | El canal a través del cual se envió el mensaje                     |
| `template_id`       | La plantilla de mensaje usada                                      |
| `subscription_id`.  | El identificador de dispositivo/email/sms establecido en OneSignal |
| `device_type`       | El tipo de dispositivo que recibió el mensaje                      |
| `language`          | El código de idioma de dos caracteres del dispositivo              |
| `message_type`      | El tipo de mensaje enviado, push, in-app, email, SMS               |

## FAQ

### ¿Cómo podemos pasar eventos de Suscripción?

Los eventos de suscripción no se están enviando automáticamente actualmente. Esto se puede hacer con los Métodos de Observador de Suscripción del SDK de OneSignal. Consulta [Rastreo de Suscripción](./analytics-overview#subscription-tracking) para más detalles.

### Gestión de Propiedades de Usuario Reservadas y Personalizadas de Segment en OneSignal

* Todas las características de usuario de Segment se envían a OneSignal como etiquetas de datos. El número de etiquetas de datos permitidas en OneSignal depende de tu plan de precios de OneSignal. Las etiquetas que excedan el número permitido serán descartadas.
* OneSignal siempre actualiza las propiedades firstName y lastName para usuarios coincidentes. Todas las demás características se agregan/actualizan por orden de llegada. Las etiquetas *firstName* y *lastName* se almacenan como "first\_name" y "last\_name".
* Las propiedades de usuario enviadas a OneSignal con valores en blanco/nulos se eliminan del registro de usuario de OneSignal. Esto se hace para asegurar que estés dentro de tus límites de etiquetas de datos.

***
