Resumen
Cuando envías mensajes de plantilla usando la API de Wati, es importante rastrear su estado, como enviado, entregado, leído, respondido o fallido. Esto te ayuda a comprender el rendimiento de los mensajes, solucionar problemas y administrar las interacciones con los clientes de manera más efectiva. Esta guía explica cómo enviar un mensaje de plantilla y usar webhooks para rastrear su ciclo de vida.
Instrucciones
Enviar un mensaje de plantilla
Para enviar un mensaje de plantilla usando la API de Wati, utiliza 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 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 en 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. Utiliza el localMessageId para que coincidan 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
Payload 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
Payload 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
Payload 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
Payload 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 de uso:
Rastrea las respuestas de los usuarios
Captura los clics en los botones de respuesta rápida de los mensajes de plantilla
Payload 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 al enviar el mensaje de plantilla
Se activa cuando: El mensaje no se puede enviar
Evento:
templateMessageFailedEstado:
Failed
Payload 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 comenzar a recibir eventos de webhook:
Inicia sesión en tu panel de control de Wati
Ve a Conectores → Webhooks
Haz clic en Agregar Webhook
Ingresa la URL de tu webhook
Establece el estado en Habilitado
Selecciona los eventos requeridos:
Mensaje de plantilla enviado
Entregado
Leído
Respondido
Fallido
Notas finales
Siempre almacena el
localMessageIdal enviar mensajesÚsalo para asignar todos los eventos de webhook al mismo mensaje
Combina múltiples eventos de webhook para construir un ciclo de vida completo del mensaje
Al configurar los webhooks correctamente, puedes rastrear de manera confiable cada mensaje de plantilla enviado a través de Wati y tomar medidas basadas en actualizaciones en tiempo real.
Preguntas frecuentes (FAQ)
Envío de mensajes de plantilla
1. ¿Cómo se envía un mensaje de plantilla usando la API de Wati?
Puedes enviar un mensaje de plantilla usando la API de Wati llamando al endpoint sendTemplateMessage V2 con los encabezados requeridos y el cuerpo JSON, 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 devuelto en la respuesta de la API que se utiliza para rastrear el mensaje en todos los eventos de webhook. Este valor debe almacenarse porque vincula todas las actualizaciones de estado al mismo mensaje.
Seguimiento del estado del mensaje 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ía 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: SENT)sentMessageDELIVERED_v2cuando el mensaje se entrega (Estado: Delivered)sentMessageREAD_v2cuando se lee el mensaje (Estado: Read)sentMessageREPLIED_v2cuando el destinatario responde (Estado: Replied)messageReceivedcuando un usuario envía un mensaje a tu número de Wati (Estado: Received)templateMessageFailedcuando falla el envío del mensaje (Estado: Failed)
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 Agregar Webhook.
Ingresa la URL de tu webhook.
Establece el estado en Habilitado.
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 almacenar el localMessageId al enviar mensajes?
Debes almacenar 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 múltiples eventos de webhook vinculados por el mismo localMessageId, lo que proporciona todas las actualizaciones de estado para un solo mensaje de plantilla.
9. ¿Por qué es importante la configuración del webhook para rastrear los mensajes de plantilla en Wati?
La configuración del 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.

