Saltar al contenido principal
Event Streams te permite enviar datos de mensajes fuera de OneSignal en tiempo real al destino que elijas. Los event streams son una excelente manera de conectar OneSignal con otros productos dentro de tu ecosistema de marketing. Permiten a tu equipo activar mensajería correspondiente, mantener registros y mucho más.

Casos de uso comunes

  1. Mapeo y personalización del recorrido del cliente: transmite eventos a un CRM o Plataforma de Datos de Clientes (CDP) para construir perfiles de clientes completos y adaptar campañas en varios puntos de contacto.
  2. Análisis e informes: envía eventos de mensajes (por ejemplo, envíos, aperturas, clics) a un almacén de datos para analizar patrones de compromiso o tendencias a largo plazo en todos los canales.
  3. Cumplimiento e informes regulatorios: transmite todos los datos de mensajes enviados a un almacén de datos para propósitos de auditoría y cumplimiento.
  4. IA y modelos predictivos: envía datos de eventos de mensajes a modelos de IA o predictivos internos para crear cohortes de clientes completas y comprender riesgos de abandono, como cancelaciones de suscripción de email o descartes de mensajes, que pueden indicar un posible abandono.
  5. Automatización de marketing: envía eventos de compromiso (como aperturas o clics de mensajes) a otras herramientas para activar automáticamente los siguientes pasos en el recorrido del usuario o actualizar perfiles de clientes y actividad reciente.
  6. Fragmentación de datos: los datos valiosos de clientes a menudo residen en herramientas separadas (como plataformas de compromiso de clientes, CRMs, herramientas de análisis y almacenes de datos). La transmisión de eventos ayuda a centralizar estos datos, aumentando la visibilidad en datos valiosos de primera parte y permitiendo resultados de ingresos más rápidos.
  7. Comunicación lenta entre sistemas: al enviar eventos de compromiso en vivo a otros sistemas, puedes activar acciones inmediatamente después de que ocurra un evento, en lugar de esperar horas o días por actualizaciones por lotes. Esto elimina la dependencia de importaciones manuales o sincronizaciones de datos.
  8. Inflación de gastos y deuda técnica: en lugar de gestionar múltiples herramientas intermediarias, puedes conectar directamente OneSignal con tu almacén de datos. Esto reduce los costos de gestionar múltiples integraciones o pipelines de datos personalizados, disminuye la deuda técnica y preserva recursos técnicos valiosos para producto y marketing.

Cómo asociarte con tu equipo técnico

Configurar Event Streams requiere colaboración con tu equipo técnico. Aquí hay algunos consejos para facilitar la conversación:
  1. Explica los beneficios: comparte tu estrategia para usar estos datos y cómo pueden mejorar las campañas de marketing, personalizar experiencias de usuario, consolidar datos y reducir la deuda técnica.
  2. Define el alcance: identifica dónde quieres que se envíen los datos, qué eventos quieres rastrear y el volumen de datos estimado. Esto ayudará a configurar el endpoint apropiado.
  3. Proporciona documentación técnica: comparte la documentación técnica e instrucciones de configuración de OneSignal. Tu equipo de desarrollo necesitará configurar los endpoints receptores y el event stream en OneSignal, asegurando que los datos se enruten correctamente.
  4. Discute el volumen y gestión de datos: confirma que tus sistemas pueden manejar flujos de datos en tiempo real. Se recomienda que el manejador de API registre eventos sin procesamiento adicional en línea para mantener tiempos de respuesta bajos.
  5. Prueba y soluciona problemas: realiza pruebas para asegurar que todo funcione sin problemas antes de entrar en producción.
Al trabajar estrechamente con tu equipo técnico, puedes desbloquear el poder de la transmisión de eventos para mejorar tu estrategia de crecimiento.

Configuración

Puedes configurar un nuevo event stream para tu aplicación de OneSignal bajo Data > Event Streams.

Requisitos

Los eventos no se pueden enviar a menos que se cumplan los siguientes requisitos:
  • Una URL o dirección IP válida que apunte a tu servidor HTTP(S)
  • Las URLs y direcciones IP deben ser enrutables públicamente
  • Los dominios deben incluir un dominio de nivel superior reconocido (por ejemplo, “.com”, “.net”)

Selección de eventos

Haz clic en “Select Events” para seleccionar tu elección de eventos para activar un event stream.

Activar Webhook

Los datos que pueden enviarse con estos eventos son lo suficientemente similares como para que puedas enviar eventos activados por múltiples canales a través del mismo event stream. Otro enfoque sería definir múltiples event streams, cada uno para un solo canal o evento, para un control más granular o para reducir la escala de datos enviados.

Selección de eventos

Filtros de event stream

Puedes refinar opcionalmente los eventos especificando los identificadores de uno o más mensajes o plantillas, lo que te permite recibir solo eventos relacionados con mensajes específicos dentro de tu aplicación. Consulta las instrucciones a continuación para habilitar el filtrado de event stream.

Filtrado de eventos por plantilla

Los identificadores de mensajes y plantillas se pueden copiar navegando a Messages > Push, Email, SMS, or Templates, haciendo clic en el botón de acción del mensaje o plantilla deseada, y seleccionando Copy Message ID o Copy Template ID del menú de acciones.

Copiando el Template ID de una plantilla

Alternativamente, puedes copiar el identificador de mensaje/plantilla de lo que estás viendo directamente desde la URL:
  • Template – https://dashboard.onesignal.com/apps/{APP_ID}/templates/{TEMPLATE_ID}
  • Push – https://dashboard.onesignal.com/apps/{APP_ID}/notifications/{MESSAGE_ID}
  • Email – https://dashboard.onesignal.com/apps/{APP_ID}/email/{MESSAGE_ID}
  • SMS – https://dashboard.onesignal.com/apps/{APP_ID}/sms/{MESSAGE_ID}

Configurar el Event Stream

Selecciona el método HTTP, la URL y agrega encabezados para el event stream. Aquí es donde debe configurarse la autenticación para asegurar la comunicación segura entre OneSignal y tus sistemas. La URI y los encabezados pueden contener sintaxis liquid que provendrá tanto de las propiedades del usuario como de las propiedades del event stream.

Encabezados de autenticación

Puedes agregar encabezados de autenticación para validar que las solicitudes a tu endpoint son genuinamente de OneSignal. Los métodos de autenticación comunes incluyen:
  • Encabezado de autorización: Agrega un encabezado Authorization, donde YOUR_TOKEN es proporcionado por tu sistema o un tercero como:
    • Basic {{YOUR_TOKEN}}
    • Bearer {{YOUR_TOKEN}}
    • ApiKey {{YOUR_API_KEY}}
  • Encabezados personalizados: También puedes agregar encabezados personalizados como:
    • X-API-Key: {{YOUR_API_KEY}}
Nota: OneSignal no proporciona servicios de encriptación

Probando tu configuración

Si buscas una forma fácil de probar, usa webhook.site. Encuentra “Your unique URL” en el centro de la página. Copia esa URL y úsala en el campo URL de tu configuración de event stream.

Configurar Webhook

Encabezados no permitidos

Los siguientes encabezados están restringidos y no se pueden establecer.
  • content-length
  • referer
  • metadata-flavor
  • x-google-metadata-request
  • host
  • x-onesignal*

Cuerpo

El cuerpo de un event stream será JSON. El JSON del cuerpo puede definirse como pares clave/valor individuales o como un bloque de código editable. Para cambiar el método de entrada, usa el primer menú desplegable bajo el encabezado del cuerpo y selecciona el cuerpo personalizado.

Opciones de cuerpo del Event Stream

A la derecha, puedes ver una solicitud cURL de ejemplo construida a partir de lo que se ha ingresado durante la configuración del event stream

Vista previa cURL del Event Stream

Personalización

Puedes personalizar todos los campos en tu Event Stream con Datos de Event Streams predefinidos. Estos datos se pueden agregar usando Sintaxis Liquid. Esto te da la flexibilidad de usar event streams para casi cualquier caso de uso.
Consulta Datos de Event Streams para una lista de todos los datos de eventos, mensajes y usuarios disponibles para personalización.

Ejemplo de cuerpo

Selecciona el “Custom Body” en el menú desplegable:
{
  "Event Data": {
    "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 }}"
  },
  "Message Data": {
    "message.id": "{{ message.id }}",
    "message.name": "{{ message.name }}",
    "message.title": "{{ message.title.en }}",
    "message.contents": "{{ message.contents.en }}",
    "template_id": "{{ message.template_id }}",
    "message.template_id": "{{ message.template_id }}",
    "message.url": "{{ message.url }}",
    "message.app_url": "{{ message.app_url }}",
    "message.web_url": "{{ message.web_url }}"
  }
}

Cuerpo personalizado

Usando Sintaxis Liquid en JSON

Cuando usas sintaxis Liquid dentro de JSON, el uso apropiado de comillas depende del tipo de datos: Directrices para formateo JSON
  • CadenasDeben envolverse en comillas.
  • NúmerosNo envolver en comillas.
  • ObjetosNo deben envolverse en comillas.
Ejemplos

Cadenas

✅ Correcto
// Wrap string values in quotes
{
  "user_id": "{{ user.onesignal_id }}"
}
❌ Incorrecto
{
  "user_id": {{ user.onesignal_id }}
}

Números y Booleanos

✅ Correcto
// Don't wrap numbers or booleans in quotes
{
  "user_score": {{ user.tags.score }}
}
❌ Incorrecto
{
  "user_score": "{{ user.tags.score }}"
}

Objetos

✅ Correcto
// Don't wrap objects in quotes.
{
  "user_data": {{ user.tags }}
}
❌ Incorrecto
{
  "user_data": "{{ user.tags }}"
}
Mejores prácticas para manejar condicionales multilingües en sintaxis liquid Para evitar problemas con condicionales basados en idioma
  1. Usa verificaciones directas de idioma: Siempre verifica user.language directamente en los condicionales, no en variables como userLang, para mejor compatibilidad.
  2. Comienza simple: Empieza con frases básicas, luego agrega complejidad gradualmente.
  3. Evita el anidamiento excesivo: Mantén los condicionales planos para prevenir problemas de análisis.
  4. Prueba la puntuación básica primero: Comienza con oraciones simples y puntuación antes de usar caracteres especiales.
  5. Usa respaldos: Asegura un idioma predeterminado (por ejemplo, inglés) en caso de traducciones faltantes.
  6. Apégate a claves estándar: Usa claves estándar de OneSignal como content/title/en para confiabilidad.
Este enfoque minimiza los errores de análisis y asegura la compatibilidad con el sistema.
Para detalles y opciones sobre cómo personalizar tus mensajes usando sintaxis Liquid, consulta nuestra Guía de Uso de Sintaxis Liquid.

Resultados y depuración

Puedes ver cómo se desempeña tu event stream durante un período de tiempo en la página de informe de event stream bajo la pestaña Report. Esto incluirá números históricos, el estado actual de tu event stream y datos de series temporales que muestran qué tipo de respuestas ha estado recibiendo el hook. Cualquier respuesta HTTP en el rango 200 indica que un evento se recibió exitosamente, mientras que las respuestas en los 400 y 500 indican errores. Un timeout significa que el servidor del otro lado no logró responder dentro de un tiempo razonable, por lo que OneSignal cerró la conexión y asumió que falló. Puedes ver un muestreo de solicitudes recientes bajo la pestaña Logs para aún más detalles. Esto mostrará las solicitudes reales y las respuestas del otro lado (si aplica). Si tu event stream tiene problemas, este es un excelente lugar para buscar primero. Si necesitas cambiar/actualizar tu event stream, puedes editarlo en la página del formulario y enviar solicitudes de prueba para ver los detalles completos que necesitas hasta que lo hagas correctamente.

Registros y métricas del Event Stream

Reintentos / Deshabilitación

Cuando una solicitud de Event Stream falla por cualquier razón recuperable (por ejemplo, código de estado 429), OneSignal reintentará enviar el evento nuevamente después de un breve retraso. Esto ocurrirá algunas veces con retrasos crecientes entre solicitudes. Si suficientes reintentos fallan seguidos, el hook se marcará como ‘failed permanently’ y ya no se reintentará. Si demasiadas solicitudes separadas fallan seguidas, probablemente sea debido a un problema en el extremo receptor; el extremo receptor podría tener errores o haber cambiado/deshabilitado algo. OneSignal continuará enviando solicitudes hasta cierto punto, pero si las solicitudes continúan fallando, el event stream podría ser deshabilitado por OneSignal. Si esto ocurre, asegúrate de dedicar tiempo a solucionar problemas, corregir y luego probar el event stream antes de volver a habilitarlo. Una API con mal rendimiento podría llevar a la deshabilitación del event stream. Es importante que la API que ingiere un event stream pueda manejar el volumen de eventos que produce el envío de mensajes. Revisar el volumen de envíos de mensajes que produce tu aplicación reflejará el rendimiento requerido de tu API. Recomendamos que la API que recibe el event stream registre un evento sin ningún otro procesamiento en línea. Esto mantendrá tiempos de respuesta bajos y prevendrá problemas relacionados con latencia. Un tiempo de respuesta lento o respuestas con código de estado 429 de tu API pueden causar un retraso de eventos. Un retraso consistente de eventos llevará a OneSignal a deshabilitar el event stream para que puedas actualizar tu API para manejar el rendimiento requerido. OneSignal enviará correos electrónicos a los administradores de aplicaciones y administradores de organización cuando un event stream comience a experimentar un volumen significativo de eventos fallidos (pero aún no ha sido deshabilitado), así como un correo electrónico cuando el event stream sea deshabilitado cuando demasiados eventos hayan fallado al enviarse. También habrá un banner en la página de índice de event streams notificando a un usuario de OneSignal sobre problemas con uno de sus event streams. Cada Event Stream tiene un event.id único para cada evento. Esto puede usarse como encabezado o en el cuerpo del mensaje como una forma de verificar y potencialmente desduplicar solicitudes si ves las mismas llegando.

Consejos para el éxito

  • Normalmente querrás que los event streams se conecten a tus propios servidores, no a servicios de terceros.
    • Si bien no hay nada malo en conectarse directamente a un tercero, lo siguiente puede ser más difícil de gestionar: Será más desafiante configurar/depurar
  • El volumen de solicitudes no se gestionará en OneSignal.
    • Los eventos de event stream se enviarán tan rápido como los usuarios alcancen los pasos en tu journey y esto podría abrumar otros servicios, alcanzar límites de tasa o aumentar TU factura inesperadamente. Esto es especialmente común cuando se intenta usar otro canal de mensajería para algo como SMS. La flexibilidad de los event streams significa que OneSignal no sabe qué estás tratando de lograr con ellos, por lo que es posible que desees crear un servicio simple propio que acepte las solicitudes de event stream y luego maneje correctamente los límites de conexión de terceros, límites de tasa y cola.
  • Muchos servicios tienen APIs HTTP públicas, lo que significa que puedes conectarte a ellos con un event stream; busca su documentación de API y ejemplos de cómo hacer una solicitud HTTP para encontrar el lugar correcto para comenzar.

Limitaciones de datos de eventos de mensajes

Los datos de mensajes enviados mediante nuestros Journeys o API solo están disponibles en nuestro sistema durante 30 días. Esto significa que cualquier evento de mensaje (como clics, aperturas, cancelaciones de suscripción, etc.) que ocurra 30+ días después de que se envió el mensaje de Journey o API, no estará disponible en el event stream. Esto puede aparecer como datos en blanco o faltantes en tus análisis. Para solucionar esta limitación, puedes correlacionar el message_id de estos eventos de clic/apertura/cancelación de suscripción con el evento de envío original que tiene el mismo message_id. El evento sent original debería tener los datos de mensaje relevantes (título, plantilla, etc.).

Pruebas

Usa una herramienta como https://webhook.site/ y establece la Your unique URL proporcionada en el parámetro URL en el Event Stream con el método POST.

La URL coincide con la "Your unique URL" de webhook.site

Establece los eventos que deseas rastrear. En este ejemplo, usaremos los eventos push, pero cualquiera funcionará.

Eventos de mensajes push seleccionados, pero cualquiera puede usarse para pruebas.

En este ejemplo, usaremos el Ejemplo de cuerpo anterior. Guarda el evento y póngalo en vivo. Envía un mensaje para activar el evento. En webhook.site veremos el evento con los siguientes datos:

Ejemplo usando webhook.site

Esto muestra lo siguiente:
  • Host: la dirección IP de donde provino la solicitud. Consulta Descripción general de la API REST para una lista de IPs posibles.
  • Request Content los datos enviados dentro del cuerpo del event stream.