Seguimiento y analítica de WhatsApp
Joryio ofrece seguimiento integral de mensajes de WhatsApp, incluido el estado de entrega, las aperturas, los clics y las interacciones con botones. Estos datos alimentan la analítica en tiempo real.
Resumen
El seguimiento de WhatsApp te permite:
- Registrar la entrega de mensajes: estados de enviado, entregado y leído.
- Supervisar la interacción: clics en botones y enlaces.
- Analizar campañas: atribuir conversiones a campañas concretas.
- Activar flujos: usar mensajes entrantes de WhatsApp para activar recorridos de Canvas.
Eventos registrados
Eventos de mensajes salientes
Al enviar mensajes de WhatsApp mediante campañas o Canvas, se registran los siguientes eventos:
| Nombre del evento | Descripción | Propiedades |
|---|---|---|
whatsapp.message.sent | El mensaje se envió a la API de WhatsApp | messageId, templateName, recipientPhone |
whatsapp.message.delivered | El mensaje se entregó al destinatario | messageId, campaignId, variantId |
whatsapp.message.read | El destinatario leyó el mensaje | messageId, campaignId, variantId |
whatsapp.message.failed | No se pudo enviar el mensaje | messageId, errorCode, errorMessage |
message.clicked | El usuario hizo clic en un botón del mensaje | campaignId, buttonId, buttonTitle |
Eventos de mensajes entrantes
Cuando los usuarios envían mensajes a tu cuenta de WhatsApp Business:
| Nombre del evento | Descripción | Propiedades |
|---|---|---|
whatsapp.message.received | Se recibió un mensaje entrante | messageType, content, phoneNumber, wabaId |
Seguimiento de clics en botones
Cuando los usuarios hacen clic en botones de tus mensajes de plantilla de WhatsApp, Joryio automáticamente:
- Asocia los clics con campañas: vincula el clic en el botón al mensaje saliente original.
- Registra el evento: registra el evento
message.clickedcon todo su contexto. - Actualiza la analítica de campañas: incrementa los recuentos de clics de los informes de campaña.
Cómo funciona
1. Envías una plantilla de WhatsApp con botones
2. Almacenamos el mensaje con atribución de campaña (tabla whatsapp_messages)
3. El usuario hace clic en un botón → WhatsApp envía un webhook
4. Buscamos el mensaje original para obtener el contexto de campaña
5. Registramos el evento message.clicked con campaignId, variantId y buttonId
Datos registrados de botones
buttonId: carga útil/ID del botón.buttonTitle: texto del botón.campaignId: campaña asociada.variantId: variante de prueba A/B (si corresponde).messageId: ID del mensaje de WhatsApp.
Seguimiento de clics en enlaces
El seguimiento de enlaces de WhatsApp usa el sufijo dinámico de URL de un botón URL de plantilla, el único espacio de URL por destinatario que Meta autoriza. Joryio completa ese sufijo con un token firmado que apunta a tu dominio de seguimiento; el clic se registra y después se redirige al destino real. Como la URL base del botón forma parte de la plantilla aprobada, no se reescribe nada del mensaje al enviarlo y la plantilla sigue siendo válida.
Configuración
1. Configura tu dominio de seguimiento. Hazlo una sola vez en Configuración → Dominio de seguimiento (por ejemplo, track.yourbrand.com). Consulta Dominio de seguimiento.
2. Crea la plantilla de Meta con un botón URL de dominio de seguimiento. Asigna al botón una URL dinámica cuya base sea tu dominio de seguimiento:
URL del botón: https://track.yourbrand.com/wa/{{1}}
Envía la plantilla para su aprobación como de costumbre. Meta la aprueba con tu dominio de seguimiento; el sufijo dinámico {{1}} es la parte variable autorizada.
3. Asigna el destino en la campaña. Al elegir la plantilla en el editor de campañas, cualquier botón URL con sufijo dinámico muestra el campo Enlace del botón. Se marca como con seguimiento cuando su base es una URL de seguimiento …/wa/{{1}}. Introduce el destino real, una URL fija o una expresión Liquid:
{{ user.custom.offerUrl }}
Eso es todo, sin código. En el momento de enviar, Joryio:
- Resuelve el destino por destinatario (funcionan Liquid, los feeds de catálogo y los bloques de contenido).
- Genera un token de seguimiento firmado con el destino y la atribución (campaña o recorrido, variante y usuario).
- Envía el token como sufijo dinámico, de modo que el destinatario recibe
https://track.yourbrand.com/wa/<token>.
Flujo de seguimiento
1. Botón de plantilla (aprobado): https://track.yourbrand.com/wa/{{1}}
2. Envío: sufijo ← token firmado { destino, organización, usuario, campaña/canvas, variante }
3. El destinatario toca → GET /wa/:token en tu dominio de seguimiento
4. Token verificado (HMAC) → se registra message.clicked (canal = whatsapp) → 302 al destino
El token está firmado con HMAC, por lo que se rechaza cualquier sufijo manipulado o falsificado, y el destino viaja dentro del token. No hace falta consultar una base de datos para atribuir el clic.
Un botón URL cuya base no es tu dominio de seguimiento (por ejemplo, https://shop.com/{{1}}) se trata como un sufijo dinámico normal de Meta: el valor que asignas se envía tal cual y el clic no se envuelve. Solo los botones con dominio de seguimiento se convierten en enlaces con seguimiento; Joryio nunca reescribe una URL que Meta no haya aprobado.
Disparadores de mensajes de WhatsApp para Canvas
Puedes usar mensajes entrantes de WhatsApp como disparadores de flujos de Canvas.
Configuración
Al crear un Canvas, selecciona «Mensaje de WhatsApp» como tipo de disparador de entrada.
Opciones del disparador
| Opción | Descripción |
|---|---|
| Cuenta de WhatsApp | WABA específica que se escucha (o todas las cuentas) |
| Tipos de mensaje | Filtra por tipo de mensaje (texto, imagen, button_reply, etc.) |
| Condiciones | Condiciones basadas en contenido (el texto contiene, es igual a, regex) |
Tipos de condición
| Propiedad | Descripción | Ejemplo |
|---|---|---|
content.text | Contenido de texto del mensaje | Contiene "support" |
messageType | Tipo de mensaje | Es igual a "button_reply" |
phoneNumber | Número de teléfono del remitente | Empieza por "+1" |
Operadores
equals: coincidencia exacta.not equals: no coincide exactamente.contains: el texto contiene el valor.starts with: el texto empieza por el valor.ends with: el texto termina con el valor.matches regex: coincidencia con expresión regular.
Variables de plantilla en Canvas
Cuando un mensaje de WhatsApp activa un Canvas, puedes usar estas variables en los nodos posteriores:
{{ trigger.messageType }} # 'text', 'image', 'button_reply', etc.
{{ trigger.content.text }} # Contenido de texto del mensaje
{{ trigger.content.type }} # Content type
{{ trigger.phoneNumber }} # Sender's phone number
{{ trigger.messageId }} # WhatsApp message ID
{{ trigger.timestamp }} # Cuándo se recibió el mensaje
{{ trigger.wabaId }} # ID de cuenta de WhatsApp Business
{{ trigger.context }} # Contexto de respuesta (si responde a un mensaje)
Ejemplo: Canvas de bot de soporte
Disparador de entrada: Mensaje de WhatsApp
- Tipo de mensaje: text
- Condición: content.text contiene "help" O "support"
Flujo:
→ Enviar respuesta de WhatsApp: "Hola {{ user.firstName }}, ¿cómo podemos ayudarte?"
→ Bifurcación de comportamiento: esperar respuesta (24 h)
→ Ha respondido: dirigir a un agente de soporte
→ Sin respuesta: enviar mensaje de seguimiento
Dashboard de analítica
Consulta la analítica de WhatsApp en:
-
Analítica de campañas: métricas por campaña.
- Mensajes enviados, entregados y leídos.
- Tasas de clic en botones.
- Tasas de conversión.
-
Analítica de Canvas: métricas a nivel de recorrido.
- Usuarios activados por WhatsApp.
- Tasas de finalización por ruta.
- Tasas de respuesta.
-
Exportación de eventos / analítica personalizada: crea tus propios informes.
- Consulta los eventos sin procesar (
whatsapp.message.sent,whatsapp.message.delivered,whatsapp.message.read,message.clicked) en el Explorador de eventos. - Exporta eventos mediante la API para alimentar dashboards personalizados.
- Consulta los eventos sin procesar (
Prácticas recomendadas
1. Usa plantillas con botones
- Los botones generan más interacción que el texto simple.
- Los clics en botones se registran automáticamente.
- Usa texto de botón significativo para mejorar la analítica.
2. Activa el seguimiento de enlaces
- Usa tu dominio de seguimiento para envolver las URL.
- Obtén atribución completa de los clics en enlaces externos.
- Mide las tasas de conversión reales.
3. Configura disparadores de Canvas
- Automatiza respuestas a consultas habituales.
- Dirige a los usuarios a flujos adecuados según el contenido del mensaje.
- Usa patrones regex para coincidencias flexibles.
4. Supervisa las tasas de entrega
- Registra la proporción entre
deliveredysent. - Identifica problemas de calidad de números de teléfono.
- Supervisa los mensajes que fallan.
5. Analiza los patrones de respuesta
- Registra el tiempo entre el envío del mensaje y la acción del usuario.
- Identifica los horarios de envío óptimos.
- Mide el uso de la sesión de 24 horas.
Solución de problemas
No se registran los clics en botones
- Comprueba la configuración de webhooks: asegúrate de que los webhooks de WhatsApp estén bien configurados.
- Verifica el almacenamiento de mensajes: el mensaje original debe existir en la tabla
whatsapp_messages. - Comprueba la atribución de la campaña: el mensaje debe incluir
campaignIdpara un seguimiento completo.
Los mensajes entrantes no activan Canvas
- Verifica que el Canvas esté activo: debe estar en estado "active".
- Comprueba las condiciones del disparador: asegúrate de que el mensaje coincida con las condiciones configuradas.
- Verifica la conexión WABA: la cuenta debe estar activa y conectada.
Faltan datos de analítica
- Comprueba el Explorador de eventos: confirma que los eventos de WhatsApp siguen llegando. Si se han detenido por completo, contacta con soporte.
- Verifica la emisión de eventos: revisa los registros del backend para comprobar el seguimiento de eventos.
- Comprueba el intervalo de tiempo: la analítica tiene un retraso de procesamiento.