Los Operadores de Tiempo te permiten enviar mensajes relativos a un momento específico en el tiempo—como después de que ocurra una acción o antes de una fecha próxima.Almacenas ese momento como una marca de tiempo Unix (en segundos) en el usuario usando una Etiqueta. OneSignal luego compara el tiempo actual con esa marca de tiempo y te permite dirigirte a usuarios basándote en cuánto tiempo ha pasado (o cuánto tiempo queda).Esto facilita automatizar mensajes como recordatorios, seguimientos y fechas límite sin programar mensajes manualmente.Casos de uso comunes:
Carrito abandonado: Recordar a usuarios que no han finalizado la compra después de cierto tiempo
Recordatorios de eventos: Enviar mensajes a usuarios antes de una cita programada o fecha de renovación
Hitos: Hacer seguimiento cuando los usuarios no han completado una acción antes de una fecha límite
Cumpleaños: Enviar mensajes automáticos en (o alrededor de) el cumpleaños de un usuario
Los Operadores de Tiempo solo están disponibles en planes de pago. Los planes gratuitos aún pueden usar filtros de segmentos basados en tiempo por defecto como Primera Sesión y Última Sesión.
Puedes resolver muchos casos de uso de “recordatorios” con Etiquetas o Eventos Personalizados. La mejor opción depende de lo que necesites almacenar y cómo quieras disparar la automatización.
Usa Etiquetas cuando quieras almacenar la última marca de tiempo conocida (por ejemplo, cart_updated_at o subscription_expires_at) en el usuario y segmentar basándote en ese valor a lo largo del tiempo.
Usa Eventos Personalizados cuando quieras registrar cada ocurrencia de evento (con propiedades) y disparar Journeys basándote en comportamiento en tiempo real.
En la práctica, muchas implementaciones pueden usar ambos: Eventos Personalizados para seguimiento en tiempo real y Etiquetas para el estado del usuario que quieres segmentar más tarde.
Las etiquetas y los eventos personalizados son ambas formas de agregar datos a sus usuarios. Sin embargo, existen algunas diferencias clave:
Característica
Etiquetas
Eventos personalizados
Uso de datos
Segmentación y personalización
Activar journeys sin un segmento, pasos de esperar hasta, personalización directamente dentro de journeys
Journeys y personalización de plantillas de mensajes de journey, segmentación (Próximamente)
La distinción clave entre etiquetas y eventos personalizados está en su profundidad y casos de uso. Las etiquetas son propiedades de un usuario, como nombre, estado de cuenta o ubicación. Los eventos son cosas que el usuario ha hecho, como comprar un artículo, completar un nivel o invitar a un amigo. Tanto las etiquetas como los eventos pueden usarse para segmentación y personalización.En la práctica, probablemente usará ambos:
Etiquetas para propiedades de usuario que son estáticas y no cambian con frecuencia
Eventos personalizados para escenarios en tiempo real, segmentación compleja y flujos de trabajo de journey más sofisticados
Convierte la fecha del evento a una marca de tiempo Unix en segundos.
Establece una Etiqueta donde la clave sea el nombre del evento y el valor sea la marca de tiempo como cadena (ej., 'event_date': '1739145600').
Crea un segmento usando el operador Time Elapsed Greater Than:
Después de una fecha pasada usando el operador Time Elapsed Greater Than con un valor positivo
Antes de una fecha futura usando el operador Time Elapsed Greater Than con un valor negativo
Un error común es establecer marcas de tiempo en milisegundos (13 dígitos) en lugar de segundos (10 dígitos). Los Operadores de Tiempo requieren segundos.
Usa este patrón cuando quieras enviar mensajes a usuarios después de que haya pasado cierto tiempo desde que algo ocurrió.Ejemplo: Recordatorio de carrito abandonado 24 horas después de que el usuario actualizó su carrito
1
Almacenar la marca de tiempo cuando ocurre el evento
Cuando el usuario actualiza su carrito, guarda el tiempo actual como una marca de tiempo Unix (en segundos):
Envía mensajes de cumpleaños almacenando el próximo cumpleaños de cada usuario como una marca de tiempo.
1
Almacenar la marca de tiempo del próximo cumpleaños
Calcula y almacena el próximo cumpleaños del usuario:
function getNextBirthday(month, day) { // month: 0-11 (Jan=0), day: 1-31 const now = new Date(); let birthday = new Date(now.getFullYear(), month, day); if (birthday <= now) { birthday = new Date(now.getFullYear() + 1, month, day); } return String(Math.floor(birthday.getTime() / 1000));}// Ejemplo: cumpleaños del 15 de eneroOneSignal.User.addTag("birthday", getNextBirthday(0, 15));
2
Crear un segmento de cumpleaños
User Tag: birthday
Time Elapsed Greater Than: 0 segundos
Los usuarios ingresan al segmento una vez que pasa su marca de tiempo de cumpleaños.
Segmento de cumpleaños
3
Configurar un Journey recurrente
Crea un Journey dirigido a tu segmento de cumpleaños
Establece la reentrada a 52 semanas para que los usuarios puedan reingresar el próximo año
Actualiza la etiqueta birthday a la fecha del próximo año después de enviar (en tu backend o Journey)
Calcula las marcas de tiempo de cumpleaños usando la zona horaria local del usuario cuando sea posible. Usar solo el tiempo del servidor puede hacer que los mensajes se envíen más temprano o más tarde de lo esperado.
Si quieres que los mensajes se mantengan precisos año tras año, actualiza la etiqueta birthday del usuario al próximo cumpleaños después de enviar el mensaje (por ejemplo, en tu backend o en un paso del Journey). Ten en cuenta que, si haces esto, puede ser más fácil usar Eventos Personalizados en su lugar.
Los mensajes de cumpleaños se enviarán a los usuarios alrededor de la fecha de su etiqueta birthday.
Los Operadores de Tiempo existen para permitirte crear ventanas relativas y móviles en lugar de fechas fijas.OneSignal calcula el tiempo transcurrido usando esta fórmula:
time_elapsed = current_time - tag_timestamp
Marcas de tiempo pasadas → valores positivos
Marcas de tiempo futuras → valores negativos
Operadores:
Time Elapsed Greater Than X: coincide cuando elapsed > X
Time Elapsed Less Than X: coincide cuando elapsed < X
Por qué las marcas de tiempo futuras coinciden inmediatamente con Less Than:Cualquier número negativo es menor que cualquier número positivo. Por lo tanto time_elapsed_lt 2 days (172,800 segundos) coincidirá con una marca de tiempo 30 días en el futuro porque:
-2,592,000 < 172,800 → true (coincide)
Como las marcas de tiempo futuras siempre producen tiempo transcurrido negativo, debes usar valores negativos para definir cuándo los usuarios deben ingresar y salir de segmentos antes de un evento próximo. Los valores positivos no pueden representar tiempo antes de una fecha futura.
Encuentra tu usuario mediante el ID Externo, ID de Suscripción, Email o número de teléfono. Consulta Encontrar y establecer suscripciones de prueba para detalles sobre encontrar tu usuario.
Obtén una marca de tiempo en segundos de la fecha actual y una fecha futura (5 minutos desde ahora).
Establece dos etiquetas con las claves ‘current_time’ y ‘future_time’ y los valores como las marcas de tiempo en segundos.
Crea un segmento current_time con los siguientes filtros:
User Tag: current_timeTime Elapsed Greater Than: 2 minutos
Y User Tag: current_timeTime Elapsed Less Than: 5 minutos
Crea un segmento future_time con los siguientes filtros:
User Tag: future_timeTime Elapsed Greater Than: -5 minutos
Y User Tag: future_timeTime Elapsed Less Than: -2 minutos
Deberías ver que tu usuario:
Ingresa al segmento current_time 2 minutos después de la fecha de tiempo actual y sale del segmento 5 minutos después de la fecha de tiempo actual.
Ingresa al segmento future_time 5 minutos antes de la fecha de tiempo futuro y sale del segmento 2 minutos antes de la fecha de tiempo futuro.