Referencia de eventos de plataforma
Joryio emite estos eventos automáticamente como parte de la plataforma - canalización de mensajes, pases Wallet, integraciones de tienda y SDK. Aparecen en tu flujo de eventos junto a tus eventos personalizados; esta página es la referencia canónica de lo que significa cada uno. El Asistente de IA conoce estas definiciones y usa las señales al sugerir recorridos y segmentos. Para tus propios eventos y atributos, añade descripciones en las páginas Eventos y Atributos: la IA también las lee.
Mensajería
| Evento | Descripción | Señal |
|---|---|---|
message.sent | Joryio envió un mensaje - cualquier canal - a esta persona. | |
message.delivered | El proveedor confirmó la entrega. | |
message.opened | El destinatario abrió un email. | interacción |
message.clicked | El destinatario hizo clic en un enlace con seguimiento. | interacción intensa |
message.bounced | La entrega rebotó - duro o leve. | problema de higiene de lista |
message.auto_replied | El buzón del destinatario envió una respuesta automática (fuera de la oficina). El email se entregó: no es un rebote. | |
message.unsubscribed | El destinatario se dio de baja mediante un enlace o encabezado de Joryio, al guardar la página de preferencias o con una respuesta STOP. scope indica de qué salió: channel (solo el canal del mensaje), list o global (todo - una elección explícita). Lleva campaignId, canvasId, nodeId, variantId. unsubscribeSource indica cómo llegó (header_one_click = el botón de la app de correo, page_button = el botón de la página alojada, preferences_page, page_everything, keyword; desde el 2026-10-15), junto con userAgent y sinceSendMs (ms después del envío). Desde 2026-11-02 también se escribe cuando un miembro del equipo (admin) o una clave de API (api) da de baja un canal, en una baja desde el SDK (sdk) y en una baja de una tienda (store_sync, incluida una casilla sin marcar cuando el ajuste opcional de la tienda está activado); estas no llevan campaña. | baja |
message.subscribed | Una persona pasó a estar suscrita - la contrapartida de message.unsubscribed (desde 2026-10-25). Una vez por cambio real (de ningún estado, unsubscribed o pending a suscrito), nunca cuando la persona ya estaba suscrita. scope: channel (el propio canal) o list (una lista, con listId). Lleva channel, source (cómo ocurrió - ver El evento de suscripción), platform para una suscripción desde una tienda, optInSource, status, previousStatus, resubscribe. Un journey puede empezar con él. No se registra en importaciones, sincronizaciones de almacén de datos, altas masivas en listas ni en la sincronización inicial de una tienda. | alta |
Unsubscribe Page Viewed | El destinatario abrió la página de baja o de preferencias desde un enlace de un mensaje. No es una baja. Propiedades: campaignId, canvasId, nodeId, variantId, channel, page (unsubscribe o preferences), position (qué enlace de baja del email). Sin bots; una vez por enlace cada 24 horas. | intención de baja |
message.failed | El envío falló en el proveedor. | |
message.spam_complaint | No es un nombre de evento que se envíe: las quejas de spam llegan como message.spamreport. No se ofrece en los selectores de eventos. | riesgo de entregabilidad |
message.queued | El proveedor aceptó el mensaje y lo puso en cola. | |
message.deferred | El proveedor aplazó temporalmente la entrega; se volverá a intentar. | |
message.skipped | Un control de Joryio omitió el envío - supresión, límite de frecuencia, horas de silencio o consentimiento. | |
message.held | Retenido por Joryio: la puerta de compromiso retuvo un mensaje del recorrido un rato porque la persona acababa de recibir otro, o lo descartó al caducar; reason dice por qué y nombra el mensaje competidor cuando lo hubo. | outcome, reason, nodeId |
message.complained | Alias aceptado de message.spamreport al contar quejas (filas históricas); hoy no lo envía ningún origen. No se ofrece en los selectores de eventos. | riesgo de entregabilidad |
message.spamreport | Reclamación de spam comunicada por el proveedor - alias de spam_complaint en algunos proveedores. | riesgo de entregabilidad |
Pases Wallet
| Evento | Descripción | Señal |
|---|---|---|
pass.issued | Se emitió un pase Wallet para la persona - Joryio Wallet Passes. | |
pass.installed | La persona añadió el pase a su Wallet de Apple o Google. | opt-in del canal Wallet |
pass.updated | Se envió una actualización de contenido a los pases instalados. | |
pass.removed | La persona ELIMINÓ el pase de su Wallet - Joryio Wallet Passes. | intención de abandono; una reactivación desencadenada aquí es una señal valiosa |
pass.downloaded | Se descargó el archivo del pase - paso previo a la instalación. | |
pass.scanned | Se escaneó el código de barras o QR del pase - por ejemplo, al canjearlo en caja. | interacción intensa: uso en el mundo real |
pass.expired | El pase alcanzó su fecha de caducidad. | oportunidad de renovación |
pass.update_pushed | Se envió una actualización de contenido a los pases instalados - Push explícito al editar. | |
pass.voided | El negocio anuló o desactivó el pase. |
E-commerce
| Evento | Descripción | Señal |
|---|---|---|
purchase | No es un evento que envíe Joryio: una compra completada llega como Order Completed. No se ofrece en los selectores de eventos. | - |
Order Completed | Pedido completado desde una tienda conectada, la Orders API o el SDK - evento de comercio canónico. También lleva el carrito del que vino y si lo recuperó: cartRef, recoveredCart (true cuando recuperó un carrito abandonado - la misma decisión que la etiqueta Carrito recuperado de la página Pedidos), recoveredVia (recovery_link, same_cart, contact_cart, reported), y la atribución de llegada que informó la tienda: utm_source, utm_medium, utm_campaign, utm_term, utm_content, campaign_id, canvas_id. Consulta Propiedades de Order Completed. | compra - un carrito recuperado es la conversión del recorrido de recuperación |
Order Refunded | Una tienda conectada (Shopify, WooCommerce, Magento) o la API de pedidos registró un reembolso nuevo en un pedido: un evento por reembolso, total o parcial. total es el importe que devolvió este reembolso (total_base en la moneda base), no el total del pedido. Además: order_id, currency, refund_type (full o partial), refund_amount, refund_id, reason, products, coupon_codes. Los ingresos ya son netos de reembolsos, así que este evento nunca los reduce por segunda vez. Consulta Eventos de reembolso y cancelación. | insatisfacción tras la compra |
Order Cancelled | Una tienda conectada o la API de pedidos canceló un pedido: una vez por pedido. Propiedades: order_id, total, currency, reason, cancelled_at, coupon_codes. | venta perdida |
Coupon Issued | Un programa de cupones emitió un código a la persona (propiedades: program, program_id, campaign_id, canvas_id, node_id, source, expires_at). El código en sí nunca va en un evento. | - |
Coupon Redeemed | Un pedido usó un código emitido por Joryio (añade order_id, revenue, redeemed_by_someone_else). Se emite sobre la persona a la que se emitió el código. | conversión desde un mensaje |
Coupon Expired | Un código caducó sin usarse (program, program_id, campaign_id, canvas_id, expires_at). | oportunidad de recuperación |
Checkout Started | El checkout comenzó, pero aún no ha terminado. | |
cart_abandoned | No es un evento: es el ESTADO de carrito abandonado que comprueba una condición de segmento o de Ramificación (E-commerce: carrito abandonado). Para iniciar un recorrido cuando se abandona un carrito, usa Cart Abandoned. No se ofrece en los selectores de eventos y un recorrido que se inicia con él no se puede publicar. | - |
Cart Abandoned | Lo envían las tiendas conectadas (Shopify, WooCommerce, Magento, PrestaShop) cuando un carrito queda sin pedido durante el plazo de abandono del espacio de trabajo. checkoutUrl es el enlace de recuperación de la tienda para ese carrito - enlázalo como {{ cart.checkoutUrl }}. Aparece en los selectores de eventos como "enviado por tiendas conectadas". cartId identifica este carrito: el siguiente carrito del contacto recibe uno nuevo (antes del 2026-10-27 se repetía entre los carritos de un mismo contacto). cartRef es la referencia del carrito en la propia tienda (quote_33 de Magento, una sesión de WooCommerce, el id de carrito de PrestaShop, el token de checkout de Shopify). No se envía para un carrito cuyo dueño no se puede contactar (sin email, teléfono, id de cliente ni identidad de app) - se envía una vez si se vuelve contactable - y una vez por abandono: un carrito cuyos artículos cambiaron después de abandonarse (vaciado y vuelto a llenar, artículos añadidos o quitados), o que vuelve sin cambios un día o más después, y se abandona de nuevo, es un abandono nuevo con un cartId nuevo (El mismo carrito abandonado de nuevo); una repetición del mismo abandono no se vuelve a enviar. value es el total del carrito que envió la tienda (puede incluir el envío); subtotal es el subtotal de los artículos, antes de envío e impuestos. recoveryLink es true cuando checkoutUrl es el enlace de recuperación de la tienda y false cuando es solo la página de pago o del carrito (desde 2026-11-01). source es plugin_event cuando la tienda informó del abandono y cart_abandonment_scan cuando Joryio marcó el carrito por su cuenta (Cuando la tienda no informa del abandono). | desencadenante clásico de recuperación |
Cart Updated | Se añadieron o eliminaron artículos del carrito. | |
Product Added | Se añadió un producto al carrito. | intención de compra |
back_in_stock | Un producto que la persona vio recientemente o añadió al carrito - sin comprarlo - volvió a estar disponible. Se emite por persona en la transición del catálogo de agotado a disponible - Shopify y WooCommerce. | desencadenante de retail con alta conversión |
price_drop | Un producto visto o añadido al carrito recientemente - sin comprar - bajó de precio más allá del umbral configurado. Se emite por persona en una transición de bajada de precio del catálogo. | desencadenante de retail con alta conversión |
entity_back_in_stock | Evento predeterminado de una alerta de relación entre entidades - reposición de catálogo personalizado, episodio nuevo, etc.. Se emite por persona cuando cambia un campo vigilado de un registro de entidad personalizada. Las alertas se pueden configurar para emitir otro nombre de evento. | desencadenante de catálogo personalizado |
Product Viewed | Se vio la página de producto. | interés de navegación |
SDK / Web
| Evento | Descripción | Señal |
|---|---|---|
session_start | No es el nombre que envían los SDK: el inicio de sesión llega como Session Start. No se ofrece en los selectores de eventos. | - |
Page Viewed | Se vio una página - SDK web. | |
signup | No es un evento que envíe Joryio: las apps registran su propio evento de alta (por ejemplo Signed Up). No se ofrece en los selectores de eventos. | - |
In-app
| Evento | Descripción | Señal |
|---|---|---|
in_app.served | Marcador del servidor: se entregó un mensaje in-app a un dispositivo para mostrarlo - uno por entrega. Reserva un lugar en el límite de frecuencia durante dos minutos hasta que el dispositivo confirme que lo mostró; solo in_app.displayed, la impresión confirmada por el cliente, cuenta para el límite. | |
in_app.viewed | No es el nombre que envían los SDK: una impresión in-app llega como in_app.displayed. No se ofrece en los selectores de eventos. | - |
in_app.clicked | La persona hizo clic en una CTA dentro de un mensaje in-app. | interacción |
in_app.displayed | Se mostró un mensaje in-app - impresión. | |
in_app.dismissed | La persona cerró el mensaje in-app sin actuar. | |
in_app.converted | La persona realizó la acción objetivo del mensaje in-app. | conversión |
In-App Form Submitted | Se envió un formulario dentro de un mensaje in-app y se escribió en esta persona: atributos, suscripciones a listas, etiquetas - propiedades: campaignId, campaignName, variantId, fields, listsSubscribed, y el email, el phone y phoneUpdated del formulario - ver Form Submitted. | conversión |
Recorridos
Los escribe el motor de recorridos por cada paso al que una persona llega y del que sale, en todos los tipos de nodo. Se registran desde la versión del 2026-10-13 - las ejecuciones anteriores no tienen eventos de paso. Registro interno del recorrido: nunca cuenta como actividad propia de la persona y nunca se factura.
| Evento | Descripción | Señal |
|---|---|---|
canvas.step.entered | La persona llegó a un paso del recorrido (disparador, espera, rama, experimento, mensaje - cualquier nodo). Uno por visita; un mensaje retenido por horas de silencio o un límite de envío y reintentado es la misma visita. Propiedades: canvasId, canvasVersion, nodeId, nodeType, executionId. | - |
canvas.step.left | La persona salió de un paso del recorrido. outcome es lo que decidió el paso - la etiqueta de la rama, el id de la ruta del experimento (o no_winner cuando el experimento terminó sin ganador y liberó su grupo en espera - el recorrido termina entonces como completed), success / on_error en un webhook, did / timed_out / un nombre de grupo en una división por comportamiento, issued / not_issued, sent / skipped, elapsed en una espera, y si no next. nextNodeId indica a dónde fue; está vacío cuando el recorrido terminó en este paso, y entonces exitReason dice por qué (completed, exited, exit_criteria, restart, error). durationMs es el tiempo pasado en el paso. | - |
Recomendaciones
| Evento | Significado | Señal |
|---|---|---|
recommendation.served | Un modelo de recomendaciones resolvió artículos para esta persona en un mensaje enviado - propiedades: modelId, itemIds. | impresión de personalización |
Páginas de destino
| Evento | Significado | Señal |
|---|---|---|
Landing Page Viewed | Una persona conocida (llegó por un enlace de Joryio con su token) abrió una página de destino publicada - propiedades: pageId, pageSlug, pageName, referrer, valores UTM. | interés |
Landing Page Form Submitted | Se envió el formulario de una página de destino y se escribió en esta persona: atributos, suscripciones a listas, etiquetas - propiedades: pageId, pageSlug, pageName, fields, listsSubscribed, referrer, valores UTM, y el email, el phone y phoneUpdated del formulario - ver Form Submitted. | conversión |
Formularios del sitio web
| Evento | Significado | Señal |
|---|---|---|
Form Submitted | Se envió un formulario de tu propio sitio y se escribió en esta persona: un formulario de Contact Form 7 o Elementor Pro en WordPress (a través del plugin de Joryio), o el formulario de contacto u otro formulario asignado en PrestaShop (a través del módulo de Joryio). Se registra tanto si dio su consentimiento de marketing como si no - propiedades: source (cf7, elementor, prestashop_contact o prestashop_form), formId, formName, pageUrl, consentGiven, consentText (el texto de la casilla de consentimiento que marcó la persona, cuando el formulario lo envía), listsSubscribed, listsPending para listas con doble opt-in pendientes de confirmación, y el email y el phone propios del formulario, con el formato con que el contacto los guarda, con phoneUpdated cuando el teléfono del formulario difería del del contacto: true cuando el contacto lo tiene ahora, false cuando el contacto conservó el suyo. El formulario de un visitante solo rellena un email o un teléfono vacío; el formulario de un cliente de la tienda con sesión iniciada puede actualizar su propio teléfono. email y phone son datos personales: ocultos para los miembros del equipo que no pueden ver datos personales y borrados junto con la persona. Los demás valores enviados no van en el evento. | conversión |