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

# Referencia de datos de Event Stream

> Referencia de esquema para todas las propiedades de evento, mensaje, usuario y suscripción disponibles en Event Streams y Webhooks, con sintaxis Liquid para cada campo.

Accede a los datos de event stream [usando sintaxis Liquid](./using-liquid-syntax). Envuelve cualquier campo en `{{ }}` para incluirlo en el cuerpo de tu Event Stream. Ver [Ejemplos](./event-streams#example-body).

<Warning>
  Los datos de mensajes para Journeys y envíos vía API se retienen durante 30 días. Los eventos de interacción (clics, aperturas, cancelaciones de suscripción) que ocurran después de 30 días pueden tener propiedades de mensaje en blanco. Para recuperar los datos, correlaciona el `message.id` del evento de interacción con el evento `sent` original, que contiene los datos completos del mensaje.
</Warning>

## Propiedades de `event`

Cada evento incluye los campos principales a continuación. Los campos específicos de canal bajo `event.data.*` se incluyen solo cuando corresponde — ver [Campos específicos de canal](#channel-specific-fields).

<ParamField body="event.kind" type="string">
  El tipo de evento, combinando canal y acción (ej.: `message.push.clicked`, `message.email.bounced`). Ver la lista completa de valores en la [referencia de event kind](#event-kind-reference) a continuación. **Liquid:** `{{ event.kind }}`
</ParamField>

<ParamField body="event.id" type="UUID">
  Un identificador único generado por OneSignal para cada evento individual en formato UUID v4. Usa este ID para rastreo de entrega idempotente. Para el identificador de mensaje o plantilla, usa [`message.id`](#message-id) o [`message.template_id`](#template-id). **Liquid:** `{{ event.id }}`
</ParamField>

<ParamField body="event.timestamp" type="integer">
  Marca de tiempo UNIX del evento. **Liquid:** `{{ event.timestamp }}`
</ParamField>

<ParamField body="event.datetime" type="string">
  Hora legible del evento en UTC como cadena ISO 8601 (ej.: "2024-02-21T23:45:15.228Z"). **Liquid:** `{{ event.datetime }}`
</ParamField>

<ParamField body="event.app_id" type="UUID">
  El [App ID](./keys-and-ids) de OneSignal. **Liquid:** `{{ event.app_id }}`
</ParamField>

<ParamField body="event.subscription_device_type" type="string">
  El tipo de suscripción (ej.: `iOS`, `Android`, `Chrome`, `Email`, `SMS`). **Liquid:** `{{ event.subscription_device_type }}`
</ParamField>

<ParamField body="event.subscription_id" type="UUID">
  El [Subscription ID](./subscriptions) de OneSignal. **Liquid:** `{{ event.subscription_id }}`
</ParamField>

<ParamField body="event.onesignal_id" type="UUID">
  El [User ID](./users) de OneSignal. **Liquid:** `{{ event.onesignal_id }}`
</ParamField>

<ParamField body="event.external_id" type="string">
  Tu User ID establecido como el alias [External ID](./users) de OneSignal. Puede estar vacío si no se estableció. **Liquid:** `{{ event.external_id }}`
</ParamField>

### Campos específicos de canal

Estos campos `event.data.*` solo están presentes para ciertos tipos de evento.

#### Eventos de mensajes in-app

Incluidos con eventos `message.iam.*`. Ver [Event Streams de mensajes in-app](./iam-event-streams) para detalles.

<ParamField body="event.data.page_name" type="string">
  El nombre de la página o tarjeta del mensaje in-app que se mostró. **Liquid:** `{{ event.data.page_name }}`
</ParamField>

<ParamField body="event.data.page_id" type="string">
  Identificador único para la página o tarjeta del mensaje in-app que se mostró. **Liquid:** `{{ event.data.page_id }}`
</ParamField>

<ParamField body="event.data.target_name" type="string">
  El nombre del botón o elemento de bloque de imagen en el que se hizo clic. El elemento debe contener una [acción de clic in-app](./iam-click-actions). **Liquid:** `{{ event.data.target_name }}`
</ParamField>

<ParamField body="event.data.target_id" type="string">
  Identificador único para el botón o elemento de bloque de imagen en el que se hizo clic. **Liquid:** `{{ event.data.target_id }}`
</ParamField>

#### Eventos de Live Activity

Incluidos con eventos `message.live_activity.*`.

<ParamField body="event.data.live_activity_id" type="string">
  Identificador único para una Live Activity específica (ej.: "Knicks vs Cavs - Oct 22 7PM"). **Liquid:** `{{ event.data.live_activity_id }}`
</ParamField>

<ParamField body="event.data.live_activity_type" type="string">
  Etiqueta de agrupación para categorías de Live Activity (ej.: "Knicks\_games"). **Liquid:** `{{ event.data.live_activity_type }}`
</ParamField>

#### Eventos fallidos

Incluidos con eventos `message.push.failed` y `message.email.failed`.

<ParamField body="event.data.failure_reason" type="string">
  El motivo por el que el mensaje no se pudo enviar. Ver [Informes de mensajes Push](./push-notification-message-reports#failure-message-troubleshooting) o [Informes de mensajes de Email](./email-message-reports#why-are-my-emails-marked-as-failed) para razones comunes. **Liquid:** `{{ event.data.failure_reason }}`
</ParamField>

### Referencia de event kind

Para definiciones detalladas de cada métrica, ver el [Glosario de métricas](./analytics-metrics-glossary).

| Tipo de evento de mensaje (OneSignal) | Nombre del evento (en conjunto de datos) | Descripción del evento                                                                                                                                                                             |
| ------------------------------------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Push enviado                          | `message.push.sent`                      | Notificación push enviada exitosamente a los servicios push (FCM, APNS, etc.).                                                                                                                     |
| Push recibido                         | `message.push.received`                  | Notificación push recibida por el destinatario. No disponible en todas las plataformas. Ver [Entrega confirmada](./confirmed-delivery) para más detalles.                                          |
| Push con clic                         | `message.push.clicked`                   | El usuario tocó la notificación push para abrir la aplicación en el dispositivo.                                                                                                                   |
| Push fallido                          | `message.push.failed`                    | El push falló al enviarse. Ver los [Informes de mensajes Push](./push-notification-message-reports) para detalles.                                                                                 |
| Push cancelado                        | `message.push.unsubscribed`              | El usuario canceló la [suscripción](./subscriptions) push. Ver [¿Cuándo se actualizan los estados de suscripción push?](./subscriptions#when-do-push-subscription-statuses-update%3F).             |
| Impresión In-App                      | `message.iam.impression`                 | Mensaje In-App mostrado exitosamente en el dispositivo.                                                                                                                                            |
| In-App con clic                       | `message.iam.clicked`                    | El usuario tocó un elemento en el mensaje In-App.                                                                                                                                                  |
| Página In-App mostrada                | `message.iam.page_displayed`             | Se mostró la página del mensaje In-App. Útil para rastrear carruseles.                                                                                                                             |
| Email enviado                         | `message.email.sent`                     | Email enviado exitosamente.                                                                                                                                                                        |
| Email recibido                        | `message.email.received`                 | Email recibido por el destinatario.                                                                                                                                                                |
| Email abierto                         | `message.email.opened`                   | El email fue abierto por el destinatario. Ver [Informes de mensajes de Email](./email-message-reports) para detalles.                                                                              |
| Enlace de Email con clic              | `message.email.clicked`                  | El usuario tocó un enlace en el email.                                                                                                                                                             |
| Email cancelado                       | `message.email.unsubscribed`             | El usuario canceló la suscripción del email mediante el [enlace de cancelación](./unsubscribe-links-email-subscriptions).                                                                          |
| Email reportado como spam             | `message.email.reported_as_spam`         | El usuario reportó el email como spam. Gmail requiere [Google Postmaster Tools](./google-postmaster-tools) para rastrear. Ver [Entregabilidad de email](./email-deliverability) para más detalles. |
| Email rebotado                        | `message.email.bounced`                  | Email devuelto al remitente debido a error permanente. Ver [Informes de mensajes de Email](./email-message-reports) para detalles.                                                                 |
| Email fallido                         | `message.email.failed`                   | El email no pudo ser entregado. Ver [Informes de mensajes de Email](./email-message-reports) para detalles.                                                                                        |
| Email suprimido                       | `message.email.suppressed`               | El email no pudo ser enviado porque la dirección de email está en la [lista de supresión](./email-deliverability).                                                                                 |
| SMS enviado                           | `message.sms.sent`                       | SMS enviado al destinatario.                                                                                                                                                                       |
| SMS fallido                           | `message.sms.failed`                     | El SMS falló al enviarse. Ver [Informes de mensajes SMS](./sms-message-reports) para detalles.                                                                                                     |
| SMS entregado                         | `message.sms.delivered`                  | SMS entregado exitosamente.                                                                                                                                                                        |
| SMS no entregado                      | `message.sms.undelivered`                | El SMS no pudo ser enviado. Ver [Informes de mensajes SMS](./sms-message-reports) para detalles.                                                                                                   |
| Live Activity enviada                 | `message.live_activity.sent`             | Live Activity enviada exitosamente a FCM/APNS.                                                                                                                                                     |
| Live Activity entregada               | `message.live_activity.delivered`        | Live Activity recibida por el destinatario.                                                                                                                                                        |
| Live Activity cancelada               | `message.live_activity.unsubscribed`     | Usuario canceló la suscripción a Live Activities.                                                                                                                                                  |
| Live Activity fallida                 | `message.live_activity.failed`           | La Live Activity falló al enviarse.                                                                                                                                                                |
| Live Activity clicada                 | `message.live_activity.clicked`          | Live Activity clicada por el usuario.                                                                                                                                                              |

### Ejemplo de objeto de evento

Copia este template Liquid en el cuerpo de tu Event Stream para capturar todos los campos de evento:

```json JSON theme={null}
{
  "event.kind": "{{ event.kind }}",
  "event.id": "{{ event.id }}",
  "event.timestamp": "{{ event.timestamp }}",
  "event.datetime": "{{ event.datetime }}",
  "event.app_id": "{{ event.app_id }}",
  "event.subscription_device_type": "{{ event.subscription_device_type }}",
  "event.subscription_id": "{{ event.subscription_id }}",
  "event.onesignal_id": "{{ event.onesignal_id }}",
  "event.external_id": "{{ event.external_id }}",
  "event.data.page_name": "{{ event.data.page_name }}",
  "event.data.page_id": "{{ event.data.page_id }}",
  "event.data.target_name": "{{ event.data.target_name }}",
  "event.data.target_id": "{{ event.data.target_id }}",
  "event.data.failure_reason": "{{ event.data.failure_reason }}"
}
```

<Accordion title="Ejemplo de salida renderizada">
  Cómo se ve un evento de clic en push después del renderizado Liquid:

  ```json JSON theme={null}
  {
    "event.kind": "message.push.clicked",
    "event.id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "event.timestamp": 1708559115,
    "event.datetime": "2024-02-21T23:45:15.228Z",
    "event.app_id": "your-onesignal-app-id",
    "event.subscription_device_type": "iOS",
    "event.subscription_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "event.onesignal_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "event.external_id": "user_12345",
    "event.data.page_name": "",
    "event.data.page_id": "",
    "event.data.target_name": "",
    "event.data.target_id": "",
    "event.data.failure_reason": ""
  }
  ```

  Los campos específicos de canal como `event.data.page_name` están vacíos para los tipos de evento que no los incluyen.
</Accordion>

***

## Propiedades de `message`

El objeto `message` describe el mensaje enviado al usuario final, incluyendo su ID, plantilla, contenido y URLs.

<ParamField body="message.id" type="UUID">
  El ID de mensaje generado por OneSignal. **Liquid:** `{{ message.id }}`
</ParamField>

<ParamField body="message.name" type="string">
  El nombre del mensaje tal como se estableció en el dashboard o usando la propiedad `name` de la API. **Liquid:** `{{ message.name }}`
</ParamField>

<ParamField body="message.title" type="object">
  El título del mensaje push o asunto de email. Para push, devuelve un objeto localizado como `{'en':'Your title'}`. Para email, devuelve la línea de asunto como cadena simple. Establecido via dashboard o propiedades `headings` / `email_subject` de la API. **Liquid:** `{{ message.title }}`
</ParamField>

<ParamField body="message.contents" type="object">
  El contenido del mensaje push o SMS (recortado a 50 caracteres). El contenido de email (`email_body`) no se proporciona. Establecido via dashboard o propiedad `contents` de la API. **Liquid:** `{{ message.contents }}`
</ParamField>

<ParamField body="message.template_id" type="UUID">
  El ID de plantilla para un mensaje enviado mediante Journeys o la propiedad `template_id` de la API. **Liquid:** `{{ message.template_id }}`
</ParamField>

<ParamField body="message.url" type="string">
  La URL de lanzamiento del mensaje cuando se usa una sola URL agnóstica para web y app. Ver [URLs, Links y Deep Links](./links). **Liquid:** `{{ message.url }}`
</ParamField>

<ParamField body="message.app_url" type="string">
  La URL de lanzamiento específica de la app cuando se usan URLs separadas de web y app. Ver [URLs, Links y Deep Links](./links). **Liquid:** `{{ message.app_url }}`
</ParamField>

<ParamField body="message.web_url" type="string">
  La URL de lanzamiento específica de la web cuando se usan URLs separadas de web y app. Ver [URLs, Links y Deep Links](./links). **Liquid:** `{{ message.web_url }}`
</ParamField>

<ParamField body="message.live_activity_event_kind" type="string">
  El tipo de acción de Live Activity: `start`, `update` o `end`. Solo presente para eventos `message.live_activity.*`. **Liquid:** `{{ message.live_activity_event_kind }}`
</ParamField>

### Ejemplo de objeto de mensaje

Copia este template Liquid en el cuerpo de tu Event Stream para capturar todos los campos de mensaje:

```json JSON theme={null}
{
  "message.id": "{{ message.id }}",
  "message.name": "{{ message.name }}",
  "message.title": "{{ message.title }}",
  "message.contents": "{{ message.contents }}",
  "message.template_id": "{{ message.template_id }}",
  "message.url": "{{ message.url }}",
  "message.app_url": "{{ message.app_url }}",
  "message.web_url": "{{ message.web_url }}"
}
```

<Accordion title="Ejemplo de salida renderizada">
  Una notificación push:

  ```json JSON theme={null}
  {
    "message.id": "f3c9cd09-10d7-4f59-b9bc-66e16607f1d5",
    "message.name": "weekly-promo-push",
    "message.title": "{'en':'Flash Sale: 50% Off Today'}",
    "message.contents": "{'en':'Shop now and save on select items'}",
    "message.template_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "message.url": "https://example.com/sale",
    "message.app_url": "",
    "message.web_url": ""
  }
  ```

  Un mensaje de email — `message.title` es la línea de asunto como cadena simple, y `message.contents` está vacío porque el contenido del cuerpo del email no se incluye en los datos del Event Stream:

  ```json JSON theme={null}
  {
    "message.id": "e2d3c4b5-a6f7-8901-bcde-f12345678901",
    "message.name": "onboarding-welcome-email",
    "message.title": "Welcome to Acme — here's how to get started",
    "message.contents": "",
    "message.template_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "message.url": "",
    "message.app_url": "",
    "message.web_url": ""
  }
  ```
</Accordion>

***

## Propiedades de `user`

El objeto `user` contiene datos a nivel de perfil del usuario que recibió el mensaje.

<ParamField body="user.onesignal_id" type="string">
  El OneSignal ID del usuario. **Liquid:** `{{ user.onesignal_id }}`
</ParamField>

<ParamField body="user.external_id" type="string">
  El External ID del usuario. **Liquid:** `{{ user.external_id }}`
</ParamField>

<ParamField body="user.tags" type="object">
  Las [etiquetas](./add-user-data-tags) del usuario. Accede al objeto completo con `{{ user.tags }}` o a una etiqueta específica con `{{ user.tags.your_tag }}`. Usa un valor predeterminado para manejar etiquetas faltantes: `{{ user.tags.your_tag | default: '' }}`.
</ParamField>

<ParamField body="user.language" type="string">
  El código de idioma del usuario. **Liquid:** `{{ user.language }}`
</ParamField>

***

## Propiedades de `subscription`

Estas propiedades describen la [suscripción](./subscriptions) que recibió el mensaje.

<ParamField body="user.subscription.id" type="string">
  El OneSignal ID de la suscripción. **Liquid:** `{{ user.subscription.id }}`
</ParamField>

<ParamField body="user.subscription.app_id" type="string">
  El OneSignal App ID. **Liquid:** `{{ user.subscription.app_id }}`
</ParamField>

<ParamField body="user.subscription.subscription_token" type="string">
  El token específico de plataforma de la suscripción. Para **Email**, es la dirección de email. Para **SMS**, un número de teléfono en formato E.164. Para **Push**, el token push. **Liquid:** `{{ user.subscription.subscription_token }}`
</ParamField>

<ParamField body="user.subscription.session_count" type="number">
  Total de sesiones registradas para esta suscripción. **Liquid:** `{{ user.subscription.session_count }}`
</ParamField>

<ParamField body="user.subscription.language" type="string">
  El código de idioma establecido en la suscripción. **Liquid:** `{{ user.subscription.language }}`
</ParamField>

<ParamField body="user.subscription.game_version" type="string">
  La versión de app o juego reportada por la suscripción. **Liquid:** `{{ user.subscription.game_version }}`
</ParamField>

<ParamField body="user.subscription.last_active" type="number">
  Timestamp UNIX de la sesión más reciente de la suscripción. **Liquid:** `{{ user.subscription.last_active }}`
</ParamField>

<ParamField body="user.subscription.play_time" type="number">
  Tiempo total de juego registrado para esta suscripción, en segundos. **Liquid:** `{{ user.subscription.play_time }}`
</ParamField>

<ParamField body="user.subscription.amount_spent" type="number">
  Monto total de compras in-app registrado para esta suscripción. **Liquid:** `{{ user.subscription.amount_spent }}`
</ParamField>

<ParamField body="user.subscription.created_at" type="number">
  Timestamp UNIX de cuando se creó la suscripción. **Liquid:** `{{ user.subscription.created_at }}`
</ParamField>

<ParamField body="user.subscription.subscribed" type="boolean">
  Si la suscripción está actualmente activa. **Liquid:** `{{ user.subscription.subscribed }}`
</ParamField>

<ParamField body="user.subscription.sdk" type="string">
  La versión del OneSignal SDK en el dispositivo de la suscripción. **Liquid:** `{{ user.subscription.sdk }}`
</ParamField>

<ParamField body="user.subscription.device_model" type="string">
  El modelo de hardware del dispositivo (ej.: "iPhone14,2", "Pixel 7"). **Liquid:** `{{ user.subscription.device_model }}`
</ParamField>

<ParamField body="user.subscription.device_os" type="string">
  El sistema operativo y versión del dispositivo (ej.: "iOS 17.2", "Android 14"). **Liquid:** `{{ user.subscription.device_os }}`
</ParamField>

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Event Streams" icon="bolt" href="./event-streams">
    Configura Event Streams, incluyendo setup, templates de cuerpo y depuración.
  </Card>

  <Card title="Uso de sintaxis Liquid" icon="code" href="./using-liquid-syntax">
    Referencia de sintaxis Liquid para personalizar cuerpos de Event Stream.
  </Card>

  <Card title="Event Streams de mensajes in-app" icon="message" href="./iam-event-streams">
    Detalles sobre datos de eventos de mensajes in-app y rastreo de carruseles.
  </Card>

  <Card title="Glosario de métricas" icon="chart-bar" href="./analytics-metrics-glossary">
    Definiciones de todas las métricas de eventos de mensaje entre canales.
  </Card>
</Columns>

***

## Preguntas frecuentes

### ¿Por qué faltan o están en blanco algunos datos de evento?

Los datos de mensajes para Journeys y envíos vía API se retienen durante 30 días. Si un usuario interactúa con un mensaje (clic, apertura, cancelación de suscripción) más de 30 días después de enviarse, las propiedades de mensaje asociadas pueden estar en blanco. Para solucionar esto, correlaciona el `message.id` del evento de interacción con el evento `sent` original, que contiene los datos completos del mensaje.

### ¿Cuál es la diferencia entre `event.id` y `message.id`?

`event.id` es un identificador único para el evento individual (ej.: un clic específico). `message.id` es el identificador del mensaje que fue enviado — múltiples eventos pueden compartir el mismo `message.id` (por ejemplo, un evento `sent` y un evento `clicked` para la misma notificación push).

### ¿Cuál es el formato de `message.title` para push vs email?

Para notificaciones push, `message.title` devuelve un objeto localizado como `{'en':'Your title'}`. Para email, devuelve la línea de asunto como cadena simple. El formato depende del canal.

### ¿Los Eventos Personalizados están incluidos en Event Streams?

No. Event Streams contiene **eventos de mensaje** (enviado, clicado, abierto, rebotado, etc.) — no [Eventos Personalizados](./custom-events). Los Eventos Personalizados son acciones del usuario que envías *a* OneSignal. Event Streams exporta datos de entrega y participación de mensajes *desde* OneSignal.

### ¿Cómo hago referencia a una etiqueta específica en el cuerpo de mi Event Stream?

Usa `{{ user.tags.your_tag_key }}` con la clave de etiqueta exacta. Para evitar errores cuando una etiqueta no está definida, agrega un valor predeterminado: `{{ user.tags.your_tag_key | default: '' }}`. Ver [Uso de sintaxis Liquid](./using-liquid-syntax) para más detalles.

***
