Zenovay muestra uno de tres badges junto a cada visitante — Anonymous, Identified o Paying. Los badges aparecen en el Globo 3D (en una popup al pasar sobre un visitante) y dentro de la pestaña Journeys → Users. Este artículo explica qué significa cada estado, cómo un visitante pasa de uno a otro y cómo enmascarar los datos al compartir el dashboard externamente.
Los tres badges
| Badge | Qué significa | Cuándo lo recibe el visitante |
|---|---|---|
| Anonymous (gris) | El visitante navega sin iniciar sesión. Zenovay conoce su dispositivo, país y comportamiento, pero no su identidad. | Por defecto para cualquier pageview no identificada. No se establecen cookies en modo cookieless. |
| Identified (azul) | El visitante está conectado a tu producto. Zenovay conoce su email, nombre y cualquier trait personalizado que hayas enviado. | Después de que tu sitio llame a zenovay('identify', userId, { email, name }) — normalmente justo tras login o signup. |
| Paying (verde) | El registro del visitante está vinculado a una suscripción de pago o tiene ingresos de por vida mayores que cero. | Automáticamente, cuando Zenovay recibe un webhook de pago de Stripe, LemonSqueezy, Polar o PayPal — sin llamada extra al tracker. |
Cómo marcar visitantes como "Identified"
La identificación es opt-in: tu sitio debe llamar a zenovay('identify', ...) cuando un usuario inicia sesión. La llamada más simple:
// Justo después de login, signup o cuando tengas un usuario conocido
zenovay('identify', user.id, {
email: user.email,
name: user.name
});
Eso es todo. La siguiente pageview se asocia con esa identidad, y el badge cambia de Anonymous a Identified. Error frecuente: llama a identify() solo con IDs estables (la primary key de tu base de datos) — no pases un email o username como userId, porque los usuarios pueden cambiarlos.
Para configuración paso a paso con ejemplos de código para Next.js, React, Vue, HTML plano, Shopify y WordPress, consulta la documentación de Visitor Identification.
¿Trabajas con Claude Code, Cursor, ChatGPT o GitHub Copilot? Indica a tu asistente de IA la doc de Visitor Identification y pídele que conecte zenovay('identify') para tu stack. La doc tiene snippets listos para copiar y pegar para los frameworks principales.
Cómo se convierten los visitantes en "Paying"
No conviertes a un visitante en Paying con una llamada al tracker. Zenovay recibe eventos webhook de los proveedores de pago que conectes (Stripe, LemonSqueezy, Polar, PayPal) y vincula el registro de cliente automáticamente. En cuanto llega un pago, el badge del visitante cambia a Paying. Su lifetime revenue y conteo de pedidos aparecen en el panel de detalle del visitante.
Si un visitante cancela su suscripción más tarde, conserva el badge Paying mientras total_revenue siga siendo mayor que cero — el valor pasado del cliente sigue siendo relevante para tu equipo.
¿Y si solo tengo un customer ID, sin email?
Algunas integraciones (por ejemplo apps móviles con un user ID interno pero aún sin email) pueden llamar:
zenovay('identify', user.id, {
customer_id: 'cus_internal_123'
});
Ese visitante cuenta como Identified — aparece el badge, y la tarjeta de detalle del visitante muestra ID only en la fila de email. Se convierte en Paying en el momento en que un webhook de pago vincule ese customer ID a una cuenta de Stripe / LemonSqueezy / Polar / PayPal.
Ocultar identificadores en capturas de pantalla y demos
Abre /profile → Preferences → activa Blur identifiers. Los emails se renderizan con todo excepto los primeros caracteres y el dominio de primer nivel enmascarados (por ejemplo jo••••@ex••.com) y los nombres mantienen solo la primera letra de cada parte (por ejemplo J••• D•) en todo tu dashboard. El toggle persiste por navegador — no necesitas reactivarlo tras recargar.
El blur es una ayuda de presentación, no un control de acceso. Un usuario con DevTools del navegador puede ver los datos sin enmascarar incluso con el toggle ENCENDIDO. Para restringir realmente el acceso a los identificadores, gestiona tu membresía de equipo en Settings → Team.
Los dashboards públicos siempre enmascaran
Cuando compartes un dashboard público de solo lectura, los identificadores se enmascaran independientemente del estado del toggle. Los emails se renderizan con todo excepto los primeros caracteres y el dominio de primer nivel enmascarados (por ejemplo jo••••@ex••.com) y los nombres como J••• D• incluso para el propietario del dashboard si accede vía la URL pública. La Globe API también omite por completo los campos identity_email, identity_name e identity_plan de la respuesta pública — los datos no solo están ocultos en la UI, no se transmiten nunca.
Esta es una garantía dura: puedes compartir un enlace público sin filtrar emails reales de clientes a quien lo recibas.
Dónde aparecen los badges
- Globo 3D: haz clic en un marcador de visitante para abrir su popup — el popup muestra el badge (verde para Paying, azul para Identified).
- Pestaña Journeys → Users: cada fila en la lista de Users muestra el badge, más una tarjeta de identidad completa en el panel de detalle del visitante mostrando email, nombre, plan y cualquier trait personalizado enviado con
identify(). Puedes filtrar la lista con los filtros de goal, device, OS, país y source encima de la tabla.
Preguntas frecuentes
P: ¿Necesito cookies para usar identify()?
R: No. El modo cookieless de Zenovay usa un visitor ID en memoria con scope de ventana — identify() vincula la sesión existente al usuario sin establecer ninguna cookie ni entrada en localStorage.
P: ¿identify() requiere consentimiento bajo GDPR / ePrivacy?
R: Depende de tu base de procesamiento. El tracker cookieless en sí no almacena nada en el dispositivo del usuario, así que no activa el artículo 5(3) de ePrivacy. Sin embargo, la llamada identify() procesa datos personales (email, nombre) — necesitas una base legal bajo el artículo 6 GDPR para eso. Para la mayoría de productos, "ejecución de un contrato" (el usuario está conectado a tu producto) es la base.
P: ¿Puedo usar identify() para marcar un visitante como pagante directamente, sin webhook?
R: No por diseño. El estado Paying se deriva de total_revenue > 0 o de un customer ID de proveedor de pago, ambos establecidos por webhooks. Esto mantiene el valor verificable — tu equipo de finanzas confía en el badge porque está vinculado a dinero real. Si necesitas marcar un visitante manualmente para pruebas, ejecuta un pago de prueba de $0 a través de Stripe Test Mode.
P: ¿Qué pasa si llamo a identify() con un ID diferente para la misma sesión de navegador?
R: Zenovay lo trata como un cambio de cuenta — la nueva identidad reemplaza a la antigua para ese registro de visitante. El evento identify previo permanece en la timeline para que puedas auditar los cambios de cuenta.
Artículos relacionados
- ¿Cómo comparto un dashboard público? — enmascaramiento y control de acceso para enlaces compartidos
- ¿Usa Zenovay cookies? — cómo funciona la identificación sin cookies
- Integración Stripe Revenue — conectar webhooks de pago para badges Paying