Extrae datos en tiempo real desde tus APIs a los mensajes de correo electrónico de OneSignal en el momento del envío usando Feeds de datos, con sintaxis Liquid para personalización.
Use this file to discover all available pages before exploring further.
Los Feeds de datos te permiten extraer datos en tiempo real desde tus APIs directamente a los mensajes en el momento del envío. Esto te permite entregar contenido altamente personalizado sin precargar datos en OneSignal.Usa Feeds de datos cuando tus datos cambien con frecuencia, como:
El saldo actual de recompensas de un usuario
El estado más reciente del pedido
Recomendaciones de productos personalizadas
Otros métodos de personalización (como Etiquetas o Contenido dinámico) son excelentes para datos estáticos. Los Feeds de datos son mejores para valores en vivo que cambian rápidamente.
Los Feeds de datos están disponibles actualmente solo para mensajes de correo electrónico enviados a través de Journeys.
¿Necesitas otro canal? Completa esta breve encuesta.
Supongamos que deseas mostrar a cada cliente su saldo de recompensas:
Hola {{ first_name }},¡Tienes {{ data_feed.rewards.points }} puntos!Tu estado de membresía es {{ data_feed.rewards.status_level }}.¡Sigue comprando para ganar más puntos!
Cuando Sarah reciba este correo electrónico, las variables Liquid serán reemplazadas con su saldo real de puntos y estado de membresía. Las siguientes secciones describen cómo configurar este ejemplo paso a paso.
Navega a Data > Data Feeds en la barra lateral para ver la lista de Feeds de datos existentes y crear uno nuevo.Cada Feed de datos debe tener:
Name: Un nombre descriptivo como “Customer Rewards API” para ayudarte a distinguirlo en tu lista de feeds. Se recomienda que sean únicos, pero no es obligatorio.
Alias: Un identificador corto como rewards que se usa en la sintaxis Liquid (p. ej., {{ data_feed.rewards.points }}). Debe ser único, en minúsculas, alfanumérico, sin espacios ni caracteres especiales.
Method: El método HTTP que OneSignal usa para contactar tu API. Por lo general es GET, pero también se admite POST.
URL: Tu endpoint de API. Admite sintaxis Liquid para que OneSignal pueda obtener datos específicos del usuario.
Por ejemplo, tu endpoint de recompensas podría aceptar el external_id del usuario (almacenado en OneSignal) como parámetro de URL:
Una configuración completa de Feed de datos se ve así:
Prueba tu feed antes de usarlo en producción. Las pruebas del Feed de datos se ejecutan contra tus suscripciones de prueba, así que verifica que esas suscripciones tengan atributos que devuelvan un resultado real de tu API.
Finalmente, activa tu nuevo Feed de datos para que esté listo para usar.
Usa sintaxis Liquid para insertar los datos de respuesta en cualquier lugar de tu mensaje. Continuando con el ejemplo de recompensas, la respuesta de la API para Sarah (cuyo external_id es a1-b2c3) podría verse así:
Si necesitas incluir un cuerpo en la solicitud, tu API debe aceptar JSON. Esto puede significar que tus encabezados necesiten incluir Content-Type: application/json.
Asegúrate de que estos datos existan en OneSignal (generalmente como etiquetas, pero hay otras opciones disponibles como propiedades de eventos personalizados).
Considera los límites de tasa de tu API. Enviar a 10,000 usuarios significa 10,000 llamadas API en rápida sucesión. Asegúrate de que tu API pueda manejar este volumen.
Si tu API devuelve un error o no tiene datos para un usuario, el mensaje no se enviará a ese destinatario. Asegúrate de que tu API devuelva datos para todos los usuarios esperados.
Antes de implementar Feeds de datos, responde estas preguntas:
¿Qué datos quiero mostrar en mi mensaje? Trabajar hacia atrás desde un esquema simple con los elementos que se poblarán desde tu API identificados te ayudará a organizar tu pensamiento.
¿Estos datos están disponibles a través de un único endpoint de API?
¿Cómo autenticaré las solicitudes de API?
¿Qué identificador u otro elemento de datos usaré para obtener datos personalizados?
¿Ese identificador ya está almacenado en OneSignal? Si no, ¿cómo se poblará?
¿Puede mi API manejar el volumen de solicitudes que generaré?
¿Qué sucede si mi API no tiene datos para un usuario?
Los Feeds de datos se pueden usar con sintaxis Liquid o en combinación con otras características de maneras creativas para producir una personalización más compleja.
Iterar con bucles: carrito abandonado
Propiedades de eventos personalizados
Visualización condicional: estado del pedido
Automatización sin personalización
Códigos de cupón personalizados
Digamos que tienes un Feed de datos cart que devuelve un array de artículos en el carrito del usuario, más el monto total del carrito en dólares:
Si deseas mostrar cada artículo en el carrito, más el total del carrito, puedes usar un bucle for en Liquid:
<ul> {% for item in data_feed.cart.items %} <li> <strong>{{ item.name }}</strong><br> ${{ item.price }}<br> <img src="{{ item.image_url }}" alt="{{ item.name }}"> </li> {% endfor %}</ul><p>Total del carrito: ${{ data_feed.cart.total }}</p>
Esto resultará en:
- Blue Running Shoes- $84.00- <imagen de zapatos para correr>- Protein Bar- $5.99- <imagen de barra de proteína>Total del carrito: $89.99
Si estás usando el editor de bloques de correo electrónico, al insertar este tipo de sintaxis Liquid compleja, particularmente si necesitas incluir imágenes o enlaces, para mejores resultados usa el elemento de bloque HTML personalizado.
¿Quieres ver cómo activar este correo electrónico de carrito abandonado usando eventos personalizados? Consulta la pestaña Propiedades de eventos personalizados para el flujo de trabajo completo.
Continuando con el ejemplo anterior de carrito abandonado, ¿cómo podríamos saber cómo obtener ese carrito en particular en primer lugar?Un método podría ser crear un Journey activado por un evento personalizadocart_abandoned, donde las propiedades incluyen un cart_id. En este ejemplo, ese evento se está enviando a OneSignal a través de API:
El usuario user_12345 entra al journey cuando se dispara este evento, luego llega a un nodo que envía un correo electrónico. Esa plantilla de correo electrónico está configurada con el Feed de datos cart, donde la URL está configurada para recuperar el contenido de un carrito en particular así:
Por lo tanto, cuando este evento particular se ingiere y activa el Journey:
El valor cart_id de 98765 se almacenará en el Journey
Cuando se alcance el paso de correo electrónico, el Feed de datos cart hará referencia a ese valor cart_id y lo usará para llamar a la API del carrito
Las propiedades JSON devueltas se analizarán e insertarán en el correo electrónico como en el ejemplo anterior
¿Quieres ver cómo mostrar condicionalmente el contenido del Feed de datos según el estado del pedido? Consulta la pestaña Visualización condicional: estado del pedido para obtener más información.
Digamos que deseas incluir el estado del pedido de un cliente, pero solo incluir un enlace de número de seguimiento si el pedido ha sido enviado. Puedes usar una declaración if para hacerlo:
¡Tu pedido está {{data_feed.order.status}}!{% if data_feed.order.tracking_number != empty %}Rastréalo aquí: {{data_feed.order.tracking_url}}{% endif %}
Aquí, el enlace de seguimiento solo se mostrará si el tracking_number existe.
Los Feeds de datos se pueden usar para insertar automáticamente información actualizada en tus mensajes sin necesariamente necesitar ser personalizada por destinatario.Por ejemplo, tal vez insertes una imagen de banner en la parte superior de tus correos electrónicos y la cambies mensualmente para mantenerte al día con las festividades y otros eventos mensuales. En lugar de recordar subir una nueva imagen a OneSignal y cambiar todas tus plantillas cada mes, podrías configurar un Feed de datos que obtenga la URL de la imagen de banner actual desde tu CMS u otra ubicación de gestión de activos.Configurarías un Feed de datos banner que apunte a un endpoint sin ninguna variable en la URL así:
https://acme.com/assets/email-banner
Que devuelve una respuesta con la URL del banner actual:
Configurarías tu plantilla de correo electrónico para usar {{ data_feed.banner.banner_url }} como la URL de fuente de imagen, automatizando este proceso en adelante.
Este ejemplo cubre cómo enviar códigos de cupón personalizados de un solo uso en correos electrónicos usando un Feed de datos que obtiene un valor único de tu API para cada destinatario.
Hola George,Completa tu reserva en las próximas 2 horas y ahorra 10% con tu código personal: XYZ123ABC
Cada usuario recibe un código de cupón único, generado en vivo a través de una llamada API externa cuando se envía el correo electrónico, válido para la ventana de tiempo dada y limitado a ese usuario.
Una API externa que acepta un identificador de usuario (por ejemplo, external_id) e identificador de campaña, y devuelve JSON con el código de cupón, descuento y vencimiento
Un identificador único (como external_id) para cada usuario que tu API pueda usar para generar cupones
Un segmento o activador (por ejemplo, “búsqueda abandonada en las últimas 24h”) utilizado para enviar el correo electrónico a través de un Journey de OneSignal
Puedes referenciar sus valores en tu plantilla de correo electrónico como:
{{ data_feed.coupon.code }}
{{ data_feed.coupon.discount_percent }}
{{ data_feed.coupon.expires_in_hours }}
4
Probar y activar el Feed de datos
Haz clic en Send Test para verificar tu configuración, luego haz clic en Activate para hacer que el Feed de datos esté disponible para usar en plantillas.
En OneSignal, ve a Messages → Email → New Template
Usa el alias del Feed de datos y los campos dentro del cuerpo de tu mensaje. Por ejemplo:
<h2>Hi {{ first_name }},</h2><p>Complete your booking in the next {{ data_feed.coupon.expires_in_hours }} hours and save{{ data_feed.coupon.discount_percent }} with your personal code:<strong>{{ data_feed.coupon.code }}</strong></p><p><a href="https://example.com/checkout?coupon={{ data_feed.coupon.code }}">Use Code Now →</a></p>
Usa la sintaxis Liquid en la forma {{ data_feed.<alias>.<field> }}
Asegúrate de que el Feed de datos esté adjunto a la plantilla
Si usas el editor de arrastrar y soltar con lógica Liquid personalizada, usa un bloque HTML
Paso 3: Adjuntar el Feed de datos y activar el correo electrónico
En el compositor de plantillas, bajo Personalization, activa Data Feeds y selecciona tu feed (coupon_code_generator)
Esto asegura que OneSignal haga la llamada a la API en el momento del envío para cada destinatario, complete los datos y los inyecte en el correo electrónico
Configura un Journey para automatizar el mensaje:
Condición de entrada: Segmento como “búsqueda abandonada en las últimas 24 horas”
Wait until: Crea un evento personalizado booking_completed. Configura la espera para salir del Journey si este evento se activa, o continuar después de 1 hora. Si completan una reserva, salen sin recibir el correo electrónico; de lo contrario, continúan para recibir el cupón.
Enviar correo electrónico: Usa la plantilla de correo electrónico de cupón personalizado
Asegúrate de que el Journey use el canal de correo electrónico y que los destinatarios estén suscritos al correo electrónico
Las llamadas a la API del Feed de datos se ejecutan en el momento del envío para cada destinatario. Si tu API responde lentamente o no puede manejar solicitudes simultáneas, la entrega de mensajes se ralentiza proporcionalmente. Apunta a un tiempo de respuesta inferior a 250ms y asegúrate de que tu infraestructura pueda manejar tu volumen de envío.
¿Por qué algunos destinatarios no reciben mensajes?
Si la llamada a la API del Feed de datos falla para un destinatario — debido a un 404, tiempo de espera agotado o datos faltantes — OneSignal omite ese destinatario por completo. Verifica el registro de errores en la configuración de tu Feed de datos y tus propios registros de API para detectar fallos. Verifica que esos usuarios tengan los identificadores requeridos en OneSignal.
¿Puedo usar más de un Feed de datos en una plantilla?
No actualmente. Cada plantilla admite un Feed de datos. Obtén todos los datos que necesitas en una sola respuesta de API. Si necesitas varios feeds, comparte tu caso de uso.
¿Los Feeds de datos están disponibles para notificaciones push o SMS?
No. Los Feeds de datos están disponibles actualmente solo para mensajes de correo electrónico enviados a través de Journeys. El soporte para canales adicionales está planificado — comparte tu caso de uso para ayudar a priorizar.
¿Qué sucede si mi API está caída cuando se envía el mensaje?
OneSignal omite a cualquier destinatario cuya llamada al Feed de datos falle. El mensaje no se envía a ese destinatario y no se inserta ningún valor de respaldo. Monitorea el tiempo de actividad y las tasas de error de tu API durante los envíos programados.