Mensajes interactivos de WhatsApp: botones, listas y botón de URL
Un botón de respuesta rápida hace más que bajar la fricción: genera un mensaje del cliente y abre la ventana de 24 horas. Cómo montar botones, listas y URL, y qué llega al webhook cuando alguien toca.


Escrito por
Equipe Joinotify
Publicado el
Lectura
9 min de lectura
Los mensajes interactivos son los que ofrecen opciones en vez de texto: botones de respuesta rápida, listas de opciones y botones de URL. Por la API oficial se envían dentro de la ventana de 24 horas; fuera de ella, los mismos botones existen pero dentro de una plantilla aprobada. La respuesta del cliente vuelve por el webhook con el identificador de la opción elegida.
Por qué un botón vale más de lo que parece
Un botón de respuesta rápida genera un mensaje del cliente. Un mensaje del cliente reinicia la ventana de 24 horas, donde el texto es libre y no se cobra.
Un botón de URL no lo hace: saca a la persona de WhatsApp y no genera mensaje. Cuando el flujo necesita continuidad, es el botón de respuesta rápida el que la compra barata.
Dos botones en una confirmación de entrega cuestan la misma plantilla y devuelven una ventana de 24 horas abierta. Es la diferencia entre notificar y conversar.
Botones de respuesta rápida
Hasta tres, con título corto:
curl -X POST https://api.joinotify.com/messages \
-H 'Authorization: Bearer sk_live_xxx' \
-H 'Content-Type: application/json' \
-d '{
"type": "interactive",
"to": "5541987111527",
"interactive": {
"type": "button",
"body": { "text": "¿Podemos entregar mañana entre las 9 y las 12?" },
"action": { "buttons": [
{ "type": "reply", "reply": { "id": "confirma", "title": "Sí, perfecto" } },
{ "type": "reply", "reply": { "id": "cambiar", "title": "Quiero cambiarlo" } }
]}
}
}'El id es tuyo y es lo que vuelve en el webhook. Usa un identificador estable y con significado, nunca el texto del botón, que cambia cuando alguien mejora la redacción y rompe tu enrutado en silencio.
Listas de opciones
Cuando las alternativas pasan de tres, la lista sustituye a los botones: abre un menú con secciones y descripción por elemento. Sirve bien para elegir horario, sede o motivo de contacto.
La regla práctica es la misma que con los botones: identificador estable en cada elemento, título corto y una descripción que evite la pregunta siguiente.
Botón de URL
Lleva al cliente a una página: seguimiento, pago, carrito. En plantilla admite una variable al final de la URL, lo que permite un enlace por destinatario sin crear una plantilla por pedido.
No abre ventana. Si necesitas que la conversación siga, combínalo con un botón de respuesta rápida.
Qué llega al webhook
Cuando el cliente toca un botón llega un mensaje de tipo interactivo con la opción elegida:
{
"type": "interactive",
"interactive": {
"type": "button_reply",
"button_reply": { "id": "confirma", "title": "Sí, perfecto" }
}
}Enruta por el id, nunca por el title. Y contempla el caso de que el cliente responda con texto libre en vez de tocar el botón, que pasa bastante.
Interactivos en plantilla, fuera de la ventana
Fuera de las 24 horas, el interactivo tiene que ir dentro de una plantilla aprobada. Los botones se definen al crear la plantilla, no en el envío, lo que significa que no puedes cambiar las opciones por mensaje.
Consecuencia de diseño: las opciones tienen que ser lo bastante genéricas para servir a todos los envíos de esa plantilla.
Buenas prácticas
- Título corto — un botón con texto largo se trunca en el dispositivo.
- Opciones mutuamente excluyentes — dos botones que significan casi lo mismo generan elecciones aleatorias.
- Siempre una salida — «hablar con una persona» evita que alguien se quede atrapado en el menú.
- Idempotencia — el cliente puede tocar dos veces; trata el segundo toque sin duplicar el efecto.
- No uses un botón para el consentimiento — el opt-in necesita un registro auditable, no un toque ambiguo.
Cómo recibir y validar estos eventos está en webhooks de WhatsApp.
Preguntas frecuentes
¿Cuántos botones puedo poner?
Hasta tres de respuesta rápida por mensaje. Por encima de eso, usa una lista.
¿Los botones funcionan fuera de la ventana de 24 horas?
Funcionan, dentro de una plantilla aprobada, con las opciones definidas al crear la plantilla y no en el envío.
¿Se cobra el toque en un botón?
La respuesta del cliente no se cobra, y abre la ventana de 24 horas. Lo que se cobra es la plantilla que enviaste.
¿Puedo saber quién no respondió?
Puedes, por la ausencia del evento de respuesta asociado al wamid del envío. Conviene un plazo de espera en tu flujo antes de darlo por no respondido.

