Saltar al contenido principal
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, pero 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.

Cómo funcionan los Feeds de datos

  1. Crea un Feed de datos – Configura cómo OneSignal se conecta a tu API.
  2. Adjunta el Feed de datos a una plantilla de mensaje.
  3. Inserta campos de respuesta en tu mensaje usando sintaxis Liquid.
  4. En el momento del envío, OneSignal hace una llamada a la API para cada destinatario, analiza la respuesta e inyecta los datos en tu mensaje.

Ejemplo: Mostrar puntos de recompensa

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, verá su saldo real de puntos y estado de membresía en lugar de {{ data_feed.rewards.points }} y {{ data_feed.rewards.status_level }}. Usaremos este ejemplo para mostrarte cómo configurar un Feed de datos paso a paso a continuación.

Crear y usar un Feed de datos

1. Configurar tu Feed de datos

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. Recomendamos que estos sean únicos, pero no es obligatorio.
  • Alias: Un nombre corto como rewards que usarás en la sintaxis Liquid. Estos deben ser únicos, no contener espacios y solo pueden contener caracteres alfanuméricos en minúsculas sin símbolos especiales.
  • Method: Cómo debemos contactar tu API. Por lo general, esto es GET, pero también se admite POST.
  • URL: La dirección de la API. Puedes incluir sintaxis Liquid, lo que nos permite llamar a la API para obtener datos específicos del usuario.
Por ejemplo, tal vez tu endpoint de recompensas podría estar formateado de esta manera, donde usarías una etiqueta de datos para insertar el ID externo (almacenado en OneSignal) para obtener los datos de recompensas de ese usuario:
https://acme.com/customers/user_id={{ external_id }}/rewards
  • Headers: Ingresa pares clave-valor de encabezado según lo requieran las especificaciones de tu API. Un uso importante típico será incluir información de autenticación. Estos campos también admiten sintaxis Liquid en caso de que sea necesario.
  • Body: Si tu API lo requiere, puedes incluir un cuerpo en la solicitud en formato JSON. Este editor admite sintaxis Liquid, al igual que Webhooks de Journey.
Por ejemplo, en lugar de en la cadena de URL como arriba, tu API podría necesitar que especifiques el ID del usuario en el cuerpo de la solicitud:
{
	"customer_id": "{{ external_id }}"
}
Una configuración completa de Feed de datos podría verse algo así:

Ejemplo de configuración de Feed de datos

Recomendamos probar tu feed antes de usarlo. Lo pruebas usando suscripciones de prueba, así que asegúrate de que los atributos de tu suscripción de prueba devolverán un resultado real de tu API. Finalmente, activa tu nuevo Feed de datos para que esté listo para usar.

2. Adjuntar el Feed de datos a tu plantilla de mensaje

Adjunta tu Feed de datos a tu plantilla de mensaje para que OneSignal sepa usarlo.
  1. Navega a Messages > Templates
  2. En la sección Message, selecciona el botón Personalization

Opciones del botón de personalización

  1. Activa Data Feeds y selecciona tu feed

Sección de Feeds de datos en el compositor de mensajes

  1. Guarda tu plantilla

3. Usar los datos en tu mensaje

Usa sintaxis Liquid para insertar los datos de respuesta en cualquier lugar de tu mensaje. En nuestro ejemplo, digamos que la respuesta para Sarah, cuyo external_id es 1a1-b2c3, es un blob JSON simple como este:
{
	"external_id": a1-b2c3,
	"points": 193,
	"status_level": "Gold"
}
Queremos insertar el número de puntos y el nivel de estado en el mensaje, lo cual se logra a través de la notación de puntos típica:
¡Tienes {{ data_feed.rewards.points }} puntos!
Tu estado de membresía es {{ data_feed.rewards.status_level }}.
Esto le dice a OneSignal:
  • Usa un Feed de datos
  • Usa el Feed de datos rewards
    • Recuerda: el feed rewards sabe llamar a la API con el external_id del destinatario
  • De la respuesta, inserta el valor del elemento points (193) y el elemento status_level (Gold)

Requisitos y límites

Tu API necesita:
  • Aceptar autenticación de un solo paso con tokens de autenticación en encabezados
  • Responder rápidamente. Se recomienda menos de 250ms (esto afecta directamente la velocidad de envío)
  • Devolver JSON. Otros formatos no están soportados en este momento.
    • Si tienes un caso de uso que depende de un formato alternativo, ¡queremos escucharte! Completa esta breve encuesta aquí.
  • Manejar tu volumen y tasa de envíos de mensajes. Si tu API tiene un límite de tasa bajo, esto evitará que entreguemos tus mensajes rápidamente.
  • Devolver cargas útiles de tamaño razonable. Recomendamos mantener las respuestas por debajo de 50kb para un mejor rendimiento.
Límites actuales:
  • Un Feed de datos por plantilla. Esperamos aumentar este límite en el futuro. Completa esta breve encuesta aquí para hacernos saber que necesitas esto.
  • Una llamada API por Feed de datos por mensaje. Obtén todo lo que necesitas en una llamada.
  • Solo Journeys. Aún no disponible para otros métodos de envío. Completa esta breve encuesta aquí para hacernos saber que necesitas esto.
  • No se permiten llamadas encadenadas. La carga útil de un Feed de datos no puede usarse para llamar a otro.

Configurar tu API

Antes de crear un Feed de datos, asegúrate de que tu API pueda manejar estos requisitos:

Autenticación

Tu API debe aceptar autenticación a través de encabezados:
Authorization: Bearer YOUR_TOKEN
o
X-API-Key: YOUR_KEY

Cuerpo de solicitud JSON

Si necesitas incluir un cuerpo en la solicitud, tu API debe aceptar JSON. Esto puede significar que tus encabezados necesitan incluir Content: application/json.

Respuesta JSON

Tu API debe devolver un objeto JSON. Típicamente esto significa que tus encabezados incluirán Accept: application/json.

Parámetros de personalización

Típicamente pasarás identificadores de usuario en la URL como esto:
https://api.example.com/users/{{external_id}}/data
https://api.example.com/rewards?email={{email | url_encode}}
Y/o en el cuerpo:
JSON
{
	"customer_id": "{{ external_id }}",
	"email": "{{ subscription.email }}"
}
Asegúrate de que estos datos existan en OneSignal (generalmente como etiquetas de datos, pero hay otras opciones disponibles como propiedades de eventos personalizados).

Límites de tasa

Considera los límites de tasa de tu API. Si estás enviando a 10,000 usuarios en rápida sucesión, haremos 10,000 llamadas API. Asegúrate de que tu API pueda manejar este volumen.

Manejo de errores

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.

Lista de verificación para comenzar

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 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?

Ejemplos y casos de uso avanzados

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

Iterar con bucles: carrito abandonado

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:
JSON
{
  "items": [
    {
      "name": "Blue Running Shoes",
      "price": 84.00,
      "image_url": "https://acme.com/blue-running-shoes.png"
    },
    {
      "name": "Protein Bar",
      "price": 5.99,
      "image_url": "https://acme.com/protein-bar.png"
    }
  ],
  "total": 89.99
}
Si deseas mostrar cada artículo en el carrito, más el total del carrito, puedes usar un bucle for en Liquid:
HTML
<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.

Solución de problemas

Mis datos no se están mostrando

  1. Verifica que tu Feed de datos esté adjunto a la plantilla
  2. Verifica que tu sintaxis Liquid coincida exactamente con tu estructura JSON
  3. Prueba tu endpoint de API manualmente para asegurarte de que devuelve datos
  4. Verifica que el usuario tenga las etiquetas de datos requeridas (como external_id)

Los mensajes se están enviando lentamente

  1. Verifica el tiempo de respuesta de tu API
  2. Asegúrate de que tu API pueda manejar solicitudes simultáneas

Algunos destinatarios no están recibiendo mensajes

  1. Tu API podría no tener datos para esos usuarios
  2. Verifica el registro de errores en la configuración del Feed de datos para 404s o errores
  3. Verifica los registros de tu API para 404s o errores
  4. Verifica que esos usuarios tengan los identificadores requeridos en OneSignal