Los mensajes interactivos de WhatsApp ayudan a tus clientes a responderle a tu empresa con respuestas preparadas en forma de botones, filas de una lista o enlaces. Le facilitan al cliente responder lo que esperas en los casos en que el texto libre lo dejaría adivinando o podría generar una comunicación ambigua. Solo puedes enviar estos mensajes como respuesta, dentro de las 24 horas posteriores al último mensaje o llamada del cliente. Meta cobra los botones y las listas como mensajes de servicio, y cada número de teléfono de empresa recibe los primeros 1,000 gratis cada mes.
Puntos clave
- Los botones y las listas le dan al cliente respuestas listas, así que cada respuesta es clara y tu sistema puede actuar sin que nadie lea texto libre.
- Solo puedes enviar mensajes interactivos dentro de las 24 horas posteriores al mensaje o la llamada de un cliente, y cualquier envío posterior necesita una plantilla aprobada.
- Elige el formato según el tamaño de la elección: botones de respuesta para hasta 3 opciones, una lista para hasta 10 y un Flow cuando necesitas varios campos a la vez.
- Los botones y las listas cuestan lo mismo que cualquier otro mensaje de servicio, y los primeros 1,000 por número de teléfono de empresa son gratis cada mes.
¿Qué son los mensajes interactivos de WhatsApp?
Los mensajes interactivos de WhatsApp son respuestas con controles integrados, como botones, una lista o un botón de enlace. Tú defines las opciones y el cliente selecciona la que le corresponde.
Meta clasifica los botones de respuesta, las listas y la mayoría de los demás tipos interactivos como mensajes de servicio, mensajes de formato libre que se envían sin aprobación de plantilla.[1] Los envías a través de la WhatsApp Cloud API mientras haya una ventana de atención al cliente abierta. La ventana se abre cuando un cliente le escribe o llama a tu empresa y dura 24 horas, y cada nuevo mensaje o llamada la reinicia. Además, el cliente debe haberse suscrito para recibir tus mensajes.
Cuando la ventana se cierra, solo pasan las plantillas aprobadas. Redacta cualquier seguimiento posterior como plantilla y consigue su aprobación de plantilla.
¿Qué tipos de mensajes interactivos puedes enviar?
Puedes enviar seis tipos interactivos en una ventana abierta, cada uno pensado para un tipo de respuesta distinto. Asigna cada tipo a su tarea con la tabla antes de escribir cualquier JSON.
| Tipo | interactive.type | Úsalo para | Límite principal | Qué hace el cliente |
|---|---|---|---|---|
| Botones de respuesta | button | Confirmar, cambiar o cancelar | Hasta 3 botones.[2] | Selecciona un botón |
| Lista | list | Temas o horarios de entrega | Hasta 10 filas en todas las secciones.[3] | Selecciona una fila |
| Botón de URL con llamada a la acción | cta_url | Enlazar a una página web | Un botón que asocia una etiqueta a una URL.[4] | Abre la página en el navegador |
| Carrusel multimedia | carousel | Opciones visuales | Un encabezado de imagen o video en cada tarjeta.[5] | Selecciona el botón de una tarjeta |
| Solicitud de ubicación | location_request_message | Punto de recogida o de entrega | Un botón para enviar la ubicación debajo del cuerpo del mensaje.[6] | Comparte una ubicación |
| Mensaje de dirección | address_message | Dirección de entrega | Solo empresas y clientes en India.[7] | Ingresa una dirección |
Nuestra guía sobre mensajes de productos y catálogo cubre los mensajes interactivos que muestran productos de un catálogo.
¿Cómo funcionan los botones de respuesta?
Los botones de respuesta colocan unas pocas respuestas fijas debajo de tu texto, y la elección del cliente vuelve a tu webhook con el ID que le diste a ese botón. Úsalos cuando conoces de antemano todas las respuestas válidas, como mantener, cambiar o cancelar una cita.
Planifica el texto según estos límites de campo, mostrados aquí para un recordatorio de cita:
| Campo | Límite | Ejemplo |
|---|---|---|
| Cuerpo | Obligatorio, hasta 1,024 caracteres; las URL se convierten en enlaces automáticamente | «Tu cita es el viernes a las 10:00. ¿La mantienes?» |
| Título del botón | Obligatorio, hasta 20 caracteres, único dentro del mensaje | «Mantenerla», «Cambiarla», «Cancelar» |
| ID del botón | Obligatorio, hasta 256 caracteres, único por botón | move_appt_8812, que nombra la acción y el registro |
| Encabezado | Texto, imagen, video o documento opcional | «Recordatorio de cita» |
| Pie de página | Opcional, hasta 60 caracteres | «Responde antes del jueves en la noche» |
Para un encabezado multimedia, sube primero el archivo y pasa su ID de contenido multimedia. Meta marca un enlace de contenido multimedia en el encabezado como «no recomendado».
¿Cómo funcionan los mensajes de lista?
Un mensaje de lista muestra un botón debajo de tu texto, y ese botón abre un menú donde el cliente selecciona una sola fila. Usa una lista cuando las respuestas son conocidas pero demasiadas para botones, como temas de soporte u horarios de entrega.
Las secciones agrupan las filas bajo títulos, y el máximo de filas cubre todas las secciones juntas. Estos son los límites de campo, mostrados aquí para horarios de entrega:
| Campo | Límite | Ejemplo |
|---|---|---|
| Botón del menú | Obligatorio, hasta 20 caracteres | «Ver horarios» |
| Cuerpo | Obligatorio, hasta 4,096 caracteres | «Elige un horario de entrega para tu pedido.» |
| Encabezado | Opcional, solo texto, hasta 60 caracteres | «Horarios de entrega» |
| Pie de página | Opcional, hasta 60 caracteres | «Puedes cambiar el horario después» |
| Título de la sección | Obligatorio, hasta 24 caracteres, al menos una sección | «Martes» |
| ID de la fila | Obligatorio, hasta 200 caracteres | slot_tue_morning |
| Título de la fila | Obligatorio, hasta 24 caracteres | «Mañana, de 9:00 a 12:00» |
| Descripción de la fila | Opcional, hasta 72 caracteres | «El repartidor llama antes de llegar» |
¿Cómo funcionan los botones de URL con llamada a la acción?
Un botón de URL con llamada a la acción pone un enlace web detrás de una etiqueta corta, y el cliente abre la página con un clic. Úsalo cuando el siguiente paso ocurre en un sitio web, como rastrear un paquete o pagar una factura.
El objeto de acción lleva "name": "cta_url" con parameters.display_text, una etiqueta de hasta 20 caracteres, y parameters.url. Mantén el cuerpo en 1,024 caracteres como máximo. Un encabezado opcional admite texto de hasta 60 caracteres o contenido multimedia desde una URL pública, y un pie de página opcional admite hasta 60 caracteres.
La página se abre en el navegador predeterminado del celular, fuera de WhatsApp. Haz el seguimiento de la visita en tu propio sitio, por ejemplo con un parámetro de campaña en la URL.
¿Cómo funcionan los mensajes de carrusel multimedia?
Un carrusel multimedia envía de 2 a 10 tarjetas que el cliente desplaza hacia los lados, cada una con su propia imagen o video y su propio botón. Úsalo cuando la elección es visual, como escoger uno de tres tipos de habitación o fechas de un tour.
La estructura sigue reglas fijas:
- Cuerpo principal: obligatorio, hasta 1,024 caracteres. El carrusel no admite encabezado principal, pie de página ni otros componentes interactivos.
- Encabezado de tarjeta: una imagen o un video en cada tarjeta. Los demás tipos de encabezado no son compatibles.
- Cuerpo de tarjeta: opcional, hasta 160 caracteres con un máximo de 2 saltos de línea.
- Botones de tarjeta: dale a cada tarjeta un botón de URL o al menos un botón de respuesta rápida, y repite los mismos tipos y la misma cantidad de botones en todas las tarjetas. Los ID de respuesta rápida admiten hasta 256 caracteres, y las etiquetas de los botones hasta 20.
Como cada tarjeta repite los mismos botones, escribe una sola acción que sirva para todas, como «Reservar habitación». Para enviar un carrusel fuera de la ventana de atención al cliente, usa una plantilla de carrusel, que es un formato aparte.
¿Cómo envías un mensaje interactivo con la API de 360Dialog?
Envías todos los tipos interactivos a través de 360Dialog con un solo formato de solicitud, el mismo cuerpo de mensaje que Meta documenta para la Cloud API.[8] Así, un único generador de solicitudes cubre los seis tipos, y solo cambia la parte interactiva entre uno y otro. 360Dialog, Official Meta Solution Partner, da a los desarrolladores acceso directo a la WhatsApp Business API e incluye un sandbox de pruebas.
- Prepara la cuenta: necesitas una cuenta aprobada con un número de teléfono registrado y la clave de API de ese número.
- Configura el webhook: apúntalo a una URL HTTPS con un certificado SSL válido y haz que devuelva 200 OK en menos de 80 milisegundos. La plataforma de WhatsApp Business reintenta las entregas fallidas con retroceso exponencial durante un máximo de 7 días.
- Envía la solicitud: haz un POST del cuerpo JSON a
https://waba-v2.360dialog.io/messagescon tu clave en el encabezadoD360-API-KEYyContent-Type: application/json. Las solicitudes sin la clave se rechazan. - Espera el estado: la respuesta de la API confirma la aceptación, y la entrega llega después como webhook de estado. El orden de entrega no está garantizado, así que cuando el orden importa, espera
deliveredantes de enviar el siguiente mensaje.
Esta solicitud le pide a un cliente que mantenga, cambie o cancele una cita:
curl -X POST "https://waba-v2.360dialog.io/messages" \
-H "D360-API-KEY: $D360_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "<CUSTOMER_PHONE_NUMBER>",
"type": "interactive",
"interactive": {
"type": "button",
"body": { "text": "Tu cita es el viernes a las 10:00. ¿La mantienes?" },
"action": {
"buttons": [
{ "type": "reply", "reply": { "id": "keep_appt_8812", "title": "Mantenerla" } },
{ "type": "reply", "reply": { "id": "move_appt_8812", "title": "Cambiarla" } },
{ "type": "reply", "reply": { "id": "cancel_appt_8812", "title": "Cancelar" } }
]
}
}
}'
Un mensaje de botones de respuesta o de lista enviado fuera de la ventana de 24 horas devuelve un error.[9] Revisa la ventana en tu código antes de cada envío. Obtener acceso a la API te permite conectar tu número a través de 360Dialog y enviar esta solicitud a tu propio teléfono como primera prueba.
¿Cómo lees la respuesta del cliente?
La elección del cliente llega a tu webhook como un mensaje entrante que lleva el ID que asignaste al botón o a la fila. Enruta según ese ID. Así, tu bot nunca tiene que interpretar texto libre para una pregunta cerrada.
Las respuestas llegan en el campo messages del webhook, y context.id contiene el ID del mensaje respondido.[10] Cada acción devuelve su propio objeto:
| Acción del cliente | type del mensaje | Objeto de respuesta | Campos que recibes |
|---|---|---|---|
| Selecciona un botón de respuesta | interactive | button_reply | id, title |
| Selecciona una fila de una lista | interactive | list_reply | id, title, description |
| Comparte una ubicación | location | Campos de ubicación | Latitud, longitud y, de forma opcional, nombre y dirección |
| Envía una dirección o un Flow | interactive | nfm_reply | response_json |
| Selecciona una respuesta rápida en una plantilla | button | button | payload, text.[11] |
Si un mismo número envía plantillas y mensajes interactivos, procesa también la estructura de las plantillas.
Flow o botones: ¿cuál deberías usar?
Usa botones de respuesta o una lista cuando el cliente elige una respuesta de un conjunto corto y fijo, y usa un Flow cuando necesitas datos escritos o varias respuestas a la vez. Elegir según la forma de la respuesta mantiene cada conversación tan corta como lo permite la tarea.
Una reserva que necesita una fecha, una hora y un número de personas requiere tres mensajes con botones, y cada uno se cobra una vez agotado el nivel gratuito mensual. Un WhatsApp Flow es un formulario que se abre dentro del chat y recopila los tres datos en una sola respuesta.
Las preguntas abiertas, como describir una falla, funcionan mejor con texto libre más adelante en el chat. Para el primer mensaje, la guía de calidad de mensajes de Meta indica: «Evita enviar mensajes de bienvenida o de presentación abiertos».
| Respuesta que necesitas | Formato a usar |
|---|---|
| Una elección entre hasta 3 opciones | Botones de respuesta |
| Una elección entre 4 y 10 opciones | Mensaje de lista |
| Una elección que depende de una imagen | Carrusel multimedia |
| Un paso que ocurre en un sitio web | Botón de URL con llamada a la acción |
| Varios campos, fechas o datos validados | WhatsApp Flow |
| Una descripción abierta con las palabras del cliente | Texto libre |
Nuestra guía muestra cómo crear un WhatsApp Flow.
¿Los mensajes interactivos tienen un costo adicional?
Los mensajes interactivos no tienen recargo por sus botones o listas: Meta cobra cada uno entregado como mensaje de servicio, la misma categoría que una respuesta de texto simple.[12] Calcula el presupuesto de las respuestas interactivas con la tarifa de servicio de tu mercado.
Desde el 1 de octubre de 2026, cada mensaje de servicio entregado cuesta lo mismo que un mensaje de utilidad o de autenticación en ese mercado, sin niveles de volumen. Cada número de teléfono de empresa envía sus primeros 1,000 mensajes de servicio gratis cada mes, y lo que no se usa no se acumula para el mes siguiente. Agrega un método de pago a la cuenta, o Meta dejará de entregar mensajes de servicio una vez agotado ese nivel gratuito mensual.
Los webhooks de estado muestran qué mensajes pagas bajo "category": "service": "type": "free_customer_service" dentro del nivel gratuito mensual, y "type": "regular" con "billable": true cuando empieza el cobro.
Cuando un cliente llega desde un anuncio de clic a WhatsApp en Android o iOS, respóndele dentro de la ventana de atención al cliente. Eso abre una ventana de punto de entrada gratuito de hasta 7 días, y los mensajes de servicio dentro de ella no tienen costo. Nuestro artículo sobre el cobro de mensajes de servicio explica el cambio en detalle.
Empieza con la pregunta que tus clientes responden con más frecuencia, como confirmar una cita o elegir un horario de entrega. Con respuestas listas, los clientes responden en un solo paso, tu equipo deja de tratar de adivinar qué quiso decir un mensaje y cada respuesta pasa directo a la siguiente acción correcta. Obtener acceso a la API te permite enviar esa primera respuesta interactiva a través de 360Dialog y leer la respuesta en tu propio webhook.
Preguntas frecuentes
¿Los mensajes de servicio de WhatsApp siguen siendo gratuitos en 2026?
Los mensajes de servicio de WhatsApp son gratuitos solo hasta un límite mensual. Desde el 1 de octubre de 2026, Meta cobra cada uno entregado después de los primeros 1,000 por número de teléfono de empresa al mes. El límite se reinicia cada mes, sin acumulación. Un anuncio de clic a WhatsApp puede abrir una ventana de punto de entrada gratuito, con mensajes de servicio gratis hasta por 7 días.
¿Puedes enviar un mensaje interactivo fuera de la ventana de 24 horas?
Solo puedes enviar mensajes interactivos dentro de las 24 horas posteriores al último mensaje o llamada de un cliente a tu empresa. Cuando esa ventana de atención al cliente se cierra, solo una plantilla aprobada puede llegar al cliente. Una plantilla puede llevar sus propios botones de respuesta rápida, y la respuesta del cliente a esa plantilla abre una nueva ventana para mensajes interactivos.
¿Cómo le pides su ubicación a un cliente en WhatsApp?
Un mensaje de solicitud de ubicación le pide al cliente que comparta una ubicación mediante un botón debajo de tu texto. El cuerpo admite hasta 1,024 caracteres y puede incluir URL. Cuando el cliente la comparte, tu webhook recibe un mensaje de ubicación con latitud y longitud. El nombre y la dirección llegan solo cuando el cliente decide incluirlos.
¿Puedes recopilar una dirección de entrega con un mensaje interactivo?
Los mensajes de dirección recopilan una dirección de entrega dentro de WhatsApp y solo están disponibles para empresas en India que escriben a clientes en India. El país es obligatorio y puedes precompletar valores u ofrecer direcciones guardadas. La dirección enviada vuelve como nfm_reply con un campo response_json. Una app que no puede mostrar el mensaje lo descarta, y un webhook de estado informa el error 1026, Receiver Incapable.
¿Por qué mi webhook no recibe las respuestas de los botones?
Las respuestas a botones llegan como mensajes entrantes en el webhook messages de Meta, igual que las de texto. En 360Dialog, tu punto de conexión necesita HTTPS con un certificado SSL válido y devolver 200 OK en menos de 80 milisegundos. La plataforma de WhatsApp Business reintenta las entregas fallidas con retroceso exponencial hasta por 7 días, así que un punto de conexión corregido a tiempo recibe las respuestas pendientes.
Fuentes
[1] Meta for Developers, «Service messages.» Updated May 21, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages/
[2] Meta for Developers, «Interactive reply buttons messages.» Updated May 21, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-reply-buttons-messages/
[3] Meta for Developers, «Interactive list messages.» Updated July 2, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-list-messages/
[4] Meta for Developers, «Interactive CTA URL button messages.» Updated July 2, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-cta-url-messages/
[5] Meta for Developers, «Interactive media carousel messages.» Updated May 21, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-media-carousel-messages/
[6] Meta for Developers, «Location request messages.» Updated May 21, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/location-request-messages/
[7] Meta for Developers, «Address messages.» Updated July 2, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/address-messages/
[8] 360Dialog Documentation, «Send and receive messages.» Accessed October 16, 2026. https://docs.360dialog.com/docs/guides/send-and-receive-messages
[9] 360Dialog Documentation, «Interactive messages.» Accessed October 16, 2026. https://docs.360dialog.com/docs/messaging/message-types/interactive
[10] Meta for Developers, «Interactive messages webhook reference.» Updated August 3, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/reference/messages/interactive/
[11] Meta for Developers, «Button messages webhook reference.» Updated June 17, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/reference/messages/button/
[12] Meta for Developers, «Pricing on the WhatsApp Business Platform.» Updated September 30, 2026. Accessed October 16, 2026. https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/
