Los Custom Events te permiten personalizar mensajes de Journey usando propiedades de eventos (nombres de productos, precios, URLs, arrays, etc.). Las propiedades de eventos están disponibles en las plantillas solo si el evento: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.
- Activa la entrada al Journey, o
- Coincide con una condición Wait Until dentro del Journey
Cómo funciona la personalización con Custom Events
Agrega propiedades de eventos a tus mensajes de Journey siguiendo estos pasos:Enviar un Custom Event con propiedades
Referencia las propiedades del evento en las plantillas de mensajes de tu Journey
Patrones comunes de acceso con Liquid
| Qué necesitas | Liquid | Resultado |
|---|---|---|
| Nombre del evento | {{ journey.first_event.name }} | purchase |
| Propiedad | {{ journey.first_event.properties.item }} | Blue Sweater |
| Propiedades anidadas | {{ journey.first_event.properties.details.first.manufacturer }} | Company A |
| Propiedad con caracteres especiales | {{ journey.last_event.properties["order status"] }} | pending |
| Marca de tiempo | {{ journey.last_event.timestamp | date: "%B %d, %Y at %I:%M %p" }} | October 21, 2025 at 07:09 PM |
Patrones de acceso Liquid anidados
También puedes acceder a propiedades anidadas usando notación de punto y corchetes:Crear un Journey
- Consulta Configuración de Journeys para las reglas de entrada.
- Consulta Acciones de Journeys para las condiciones Wait Until.
Reglas de almacenamiento de propiedades de eventos
- Puedes usar múltiples eventos en tu Journey combinando reglas de entrada y pasos Wait Until.
- Máximo: 100 propiedades de eventos almacenadas por usuario por instancia de Journey (las más antiguas se eliminan).
- Las propiedades de eventos se almacenan por usuario, por instancia de Journey.
- Los eventos enviados antes de la entrada no son accesibles.
- Las propiedades de eventos se borran cuando el usuario sale del Journey.
Referencia Liquid de Custom Events
Usa estos objetos para acceder a los eventos almacenados dentro del Journey.- Si usas una regla de entrada de Custom Event, este es el evento que causó la entrada al Journey.
- Si no usas una regla de entrada de Custom Event, este es el primer evento almacenado al coincidir con una condición Wait Until.
- Si solo hay un evento almacenado,
first_eventylast_eventdevuelven lo mismo.
- Reemplaza
EVENT_NAMEcon el nombre de tu evento (por ejemplo,purchase). - Si el mismo nombre de evento se usa varias veces, esto devuelve la instancia más reciente.
"name": "order status"- Usa bucles for para iterar sobre ellos.
journey.first_eventes una abreviación dejourney.all_events[0].journey.last_eventes una abreviación del evento más reciente en el array.
Ejemplo: Plantillas de carrito abandonado usando Custom Events
Este ejemplo muestra cómo personalizar mensajes de carrito abandonado usando Custom Events. Se basa en el tutorial de Carrito abandonado. Conjunto de Custom Events de ejemplo:Plantilla de correo electrónico
Este ejemplo muestra cómo crear una plantilla de correo electrónico que muestra:- La cantidad de artículos en el carrito
- Cada producto con imagen, nombre, cantidad y precio usando un bucle for
- Un botón que enlaza a la URL única del carrito del cliente

Crear la plantilla de correo electrónico
Agregar la estructura del diseño
- Filas 1, 2 y 4: una columna con un bloque Paragraph
- Fila 3: cuatro columnas con HTML | Paragraph | Paragraph | Paragraph
- Fila 5: una columna con un bloque Button

Mostrar la cantidad de artículos
Iniciar el bucle for
- Inicia un bucle que itera sobre cada objeto en el array
cart - Crea una variable temporal
productque representa el artículo actual - Todo lo que está entre
{% for %}y{% endfor %}se repite una vez por cada artículo del carrito - Puedes nombrar
productcomo quieras (por ejemplo,item,cartItem), solo mantén la consistencia
Mostrar los detalles del producto
- Columna 2:
{{product.product_name}} - Columna 3:
{{product.product_quantity}} - Columna 4:
{{product.product_price}}
- En la primera iteración,
product= primer objeto en el array del carrito {{product.product_image}}obtiene la imagen del primer artículo- En la segunda iteración,
product= segundo objeto - La fila se repite automáticamente para todos los artículos del carrito
Cerrar el bucle for
{% for %} debe tener un {% endfor %} correspondiente. Si falta, el renderizado del correo electrónico se romperá.Agregar el botón con la URL del carrito

Probar la plantilla
- Agrega la plantilla a un Journey en blanco y establece la regla de entrada a un Custom Event.
- Habilita el Journey e ingrésate a ti mismo a través de la API de Custom Events.
- Verifica que los datos se muestren correctamente.
Plantilla de push
Las notificaciones push tienen espacio limitado, así que muestra un artículo y menciona la cantidad total. Campo de mensaje: Muestra el artículo y la cantidad con gramática correcta usando declaraciones condicionales.
Solución de problemas y mejores prácticas
Errores comunes:| Error | Por qué falla | Sintaxis correcta |
|---|---|---|
{{ journey.first_event.item }} | Falta .properties | {{ journey.first_event.properties.item }} |
{{ journey.event.purchase.item }} | Falta .properties | {{ journey.event.purchase.properties.item }} |
{{ journey.first_event.properties.Item }} | Mayúsculas incorrectas (debe ser item) | {{ journey.first_event.properties.item }} |
{{ event.properties.item }} | Falta el prefijo journey. | {{ journey.first_event.properties.item }} |
- Siempre prueba las plantillas antes de ponerlas en producción
- Usa filtros default para propiedades opcionales
- Valida que el esquema del evento coincida con las expectativas de la plantilla
Páginas relacionadas
Personalización de mensajes
Custom Events
Resumen de Journeys
Configuración de Journeys
Acciones Wait Until
Uso de sintaxis Liquid
Templates
support@onesignal.comPor favor incluya:- Detalles del problema que está experimentando y pasos para reproducir si están disponibles
- Su ID de aplicación de OneSignal
- El ID externo o ID de suscripción si corresponde
- La URL del mensaje que probó en el panel de OneSignal si corresponde
- Cualquier registro o mensaje de error relevante