Resumen
Cuando envías mensajes de plantilla usando la API de Wati, es posible que desees rastrear su estado, como enviado, entregado, leído, respondido o fallido, utilizando webhooks en lugar de depender únicamente de los análisis de campaña integrados de Wati.
Después de enviar campañas a través de la API, siempre puedes ver su rendimiento en Visión general de la campaña en Wati. Sin embargo, también puedes usar webhooks de Wati para rastrear el estado de los mensajes y los eventos de entrega de esas campañas en tiempo real a través de tus propios sistemas.
Este enfoque te ayuda a supervisar el rendimiento de los mensajes, solucionar problemas de entrega y gestionar las interacciones con los clientes a través de tus aplicaciones. Esta guía explica cómo enviar un mensaje de plantilla y realizar un seguimiento de su ciclo de vida mediante webhooks.
Instrucciones
Enviar un mensaje de plantilla
Para enviar un mensaje de plantilla usando la API de Wati, usa el endpoint sendTemplateMessage V2.
Solicitud cURL de ejemplo
curl --location 'https://live-mt-server.wati.io/{tenant_id}/api/v2/sendTemplateMessage?whatsappNumber=<whatsappNumber>' \
--header 'Authorization: Bearer <Token>' \
--header 'Content-Type: application/json' \
--data '{
"template_name": "update_for_you",
"broadcast_name": "JPTestBroadcast",
"parameters": []
}'Respuesta de la API de ejemplo
{
"result": true,
"error": null,
"templateName": "update_for_you",
"receivers": [
{
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"waId": "<whatsappNumber>",
"isValidWhatsAppNumber": true,
"errors": []
}
],
"parameters": []
}Campo clave
localMessageId: Un identificador único que se utiliza para rastrear el mensaje a través de los eventos de webhook. Guarda este valor, ya que vincula todas las actualizaciones de estado del mensaje.
Rastrea el estado del mensaje usando webhooks
Una vez que se envía el mensaje, Wati envía eventos de webhook para cada actualización de estado. Usa el localMessageId para hacer coincidir estos eventos con el mensaje original.
1. Mensaje de plantilla enviado
Se activa cuando: El mensaje se envía correctamente desde Wati
Evento:
templateMessageSent_v2Estado:
SENT
Carga útil de Webhook de ejemplo
{
"eventType": "templateMessageSent_v2",
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"id": "640c8fd48b67615f886237b8",
"whatsappMessageId": "gBEGkXmJQZVJAgkRHwjjZsITS6M",
"templateId": "63766ae83b2e064905789c63",
"templateName": "update_for_you",
"created": "2023-03-11T14:27:32.9655388Z",
"statusString": "SENT",
"sourceType": "API"
}2. Mensaje entregado
Se activa cuando: El mensaje se entrega al destinatario
Evento:
sentMessageDELIVERED_v2Estado:
Delivered
Carga útil de Webhook de ejemplo
{
"eventType": "sentMessageDELIVERED_v2",
"statusString": "Delivered",
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"id": "640c8fd48b67615f886237b8",
"whatsappMessageId": "gBEGkXmJQZVJAgkRHwjjZsITS6M",
"timestamp": "1678544854",
"operatorEmail": "[email protected]"
}3. Mensaje leído
Se activa cuando: El destinatario lee el mensaje
Evento:
sentMessageREAD_v2Estado:
Read
Carga útil de Webhook de ejemplo
{
"eventType": "sentMessageREAD_v2",
"statusString": "Read",
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"id": "640c8fd48b67615f886237b8",
"whatsappMessageId": "gBEGkXmJQZVJAgkRHwjjZsITS6M",
"timestamp": "1678545043",
"operatorEmail": "[email protected]"
}4. Mensaje respondido
Se activa cuando: El destinatario responde al mensaje
Evento:
sentMessageREPLIED_v2Estado:
Replied
Carga útil de Webhook de ejemplo
{
"eventType": "sentMessageREPLIED_v2",
"statusString": "Replied",
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"id": "640c8fd48b67615f886237b8",
"whatsappMessageId": "gBEGkXmJQZVJAgkRHwjjZsITS6M",
"timestamp": "1678545074",
"operatorEmail": "[email protected]"
}5. Mensaje recibido
Se activa cuando: Un usuario envía un mensaje a tu número de Wati
Evento:
messageReceivedEstado:
Received
Caso práctico:
Rastrear las respuestas de los usuarios
Capturar los clics en los botones de respuesta rápida de los mensajes de plantilla
Carga útil de Webhook de ejemplo
{
"eventType": "messageReceived",
"statusString": "Received",
"localMessageId": "fd29c1f-9033-59b2-7d72-5ac964c4c8a7",
"whatsappMessageId": "wamid.HBgMOAE4NjY4NDkzNjAxFAIAERgSOTEENzFCNjEwMkNDNENGQUJGAA==",
"text": "Hello, I need help!",
"timestamp": "1665645642",
"operatorEmail": "[email protected]"
}6. Fallo del mensaje de plantilla
Se activa cuando: El mensaje no se puede enviar
Evento:
templateMessageFailedEstado:
Failed
Carga útil de Webhook de ejemplo
{
"eventType": "templateMessageFailed",
"statusString": "Failed",
"localMessageId": "fd29c1f-9033-59b2-7d72-5ac964c4c8a7",
"failedCode": "131026",
"failedDetail": "Message undeliverable",
"id": "66b2531d4931581381944612",
"whatsappMessageId": "wamid.HBgMOAE4NjY4NDkzNjAxFAIAERgSOTEENzFCNjEwMkNDNENGQUJGAA==",
"timestamp": "1665645642",
"operatorEmail": "[email protected]"
}Cómo configurar webhooks en Wati
Sigue estos pasos para empezar a recibir eventos de webhook:
Inicia sesión en tu panel de control de Wati
Ve a Conectores → Webhooks
Haz clic en Añadir Webhook
Introduce la URL de tu webhook
Establece el estado en Activado
Selecciona los eventos requeridos:
Mensaje de plantilla enviado
Entregado
Leído
Respondido
Fallido
Notas finales
Guarda siempre el
localMessageIdal enviar mensajesÚsalo para asignar todos los eventos de webhook al mismo mensaje
Combina varios eventos de webhook para crear un ciclo de vida completo del mensaje
Al configurar los webhooks correctamente, puedes rastrear de forma fiable cada mensaje de plantilla enviado a través de Wati y tomar medidas basadas en las actualizaciones en tiempo real.
Preguntas frecuentes (FAQ)
Envío de mensajes de plantilla
1. ¿Cómo se envía un mensaje de plantilla utilizando la API de Wati?
Puedes enviar un mensaje de plantilla utilizando la API de Wati llamando al endpoint sendTemplateMessage V2 con los encabezados y el cuerpo JSON requeridos, incluyendo campos como template_name, broadcast_name y parameters.
2. ¿Cuál es el propósito del localMessageId en la respuesta de la API?
El localMessageId es un identificador único que se devuelve en la respuesta de la API y que se utiliza para rastrear el mensaje a través de todos los eventos de webhook. Este valor debe almacenarse porque vincula todas las actualizaciones de estado al mismo mensaje.
Seguimiento del estado de los mensajes con webhooks
3. ¿Cómo puedes rastrear el ciclo de vida de un mensaje de plantilla en Wati?
Puedes rastrear el ciclo de vida de un mensaje de plantilla utilizando los eventos de webhook enviados por Wati después de que se envíe el mensaje. Cada evento de webhook incluye un localMessageId que te permite hacer coincidir el evento con el mensaje original y seguir sus actualizaciones de estado.
4. ¿Qué eventos de webhook se activan para diferentes estados de mensajes de plantilla?
Wati activa los siguientes eventos de webhook para los estados de los mensajes de plantilla:
templateMessageSent_v2cuando el mensaje se envía correctamente (Estado: ENVIADO)sentMessageDELIVERED_v2cuando el mensaje se entrega (Estado: Entregado)sentMessageREAD_v2cuando el mensaje se lee (Estado: Leído)sentMessageREPLIED_v2cuando el destinatario responde (Estado: Respondido)messageReceivedcuando un usuario envía un mensaje a tu número de Wati (Estado: Recibido)templateMessageFailedcuando el mensaje no se puede enviar (Estado: Fallido)
5. ¿Cuándo se activa el evento de webhook messageReceived y cuál es su uso?
El evento de webhook messageReceived se activa cuando un usuario envía un mensaje a tu número de Wati. Se puede utilizar para rastrear las respuestas de los usuarios y capturar los clics en los botones de respuesta rápida de los mensajes de plantilla.
Configuración de Webhook
6. ¿Cómo configuras los webhooks en Wati para recibir eventos de estado de los mensajes?
Para configurar webhooks en Wati:
Inicia sesión en tu panel de control de Wati.
Ve a Conectores → Webhooks.
Haz clic en Añadir Webhook.
Introduce la URL de tu webhook.
Establece el estado en Activado.
Selecciona los eventos requeridos, como Mensaje de plantilla enviado, Entregado, Leído, Respondido y Fallido.
Prácticas recomendadas para el seguimiento de mensajes
7. ¿Por qué debes guardar el localMessageId al enviar mensajes?
Debes guardar el localMessageId porque es necesario para asignar todos los eventos de webhook al mismo mensaje y rastrear su ciclo de vida completo.
8. ¿Cómo puedes construir un ciclo de vida completo del mensaje utilizando eventos de webhook?
Puedes construir un ciclo de vida completo del mensaje combinando varios eventos de webhook vinculados por el mismo localMessageId, que proporciona todas las actualizaciones de estado de un único mensaje de plantilla.
9. ¿Por qué es importante la configuración de webhook para rastrear mensajes de plantilla en Wati?
La configuración de webhook es importante porque permite el seguimiento en tiempo real de cada mensaje de plantilla enviado a través de Wati y te permite tomar medidas basadas en las actualizaciones de estado, como enviado, entregado, leído, respondido o fallido.

