Skip to main content
POST
Los mensajes interactivos permiten a los usuarios responder con un tap en lugar de escribir. Whaapy soporta en esta fase:
  • Botones: Hasta 3 opciones rápidas
  • Listas: Menús desplegables con secciones
  • CTA URL: Botón que abre una URL en el navegador
  • Flows: Apertura de un Flow de WhatsApp ya creado en Meta
Los mensajes interactivos solo pueden enviarse dentro de la ventana de 24 horas. Fuera de la ventana, usa templates.

Botones (Reply Buttons)

Muestra hasta 3 botones con opciones rápidas. Ideal para preguntas simples o menús pequeños.

Ejemplo Básico

Con Header de Imagen

Campos de Botones

string
required
Debe ser "button" para reply buttons.
object
Header opcional. Puede ser text, image, video, o document.
string
required
Texto principal del mensaje. Máximo 1024 caracteres.
Texto secundario en gris. Máximo 60 caracteres.
array
required
Array de 1-3 botones. Cada botón tiene type: "reply" y objeto reply con id y title.
string
required
ID único del botón. Lo recibirás en el webhook cuando el usuario responda. Máximo 256 caracteres.
string
required
Texto visible del botón. Máximo 20 caracteres.

Listas (List Messages)

Menús desplegables con hasta 10 opciones organizadas en secciones. Ideal para catálogos, horarios, o menús extensos.

Ejemplo Básico

Campos de Listas

string
required
Debe ser "list" para list messages.
object
Header opcional. Solo soporta type: "text" en listas.
string
required
Texto principal. Máximo 1024 caracteres.
Texto secundario. Máximo 60 caracteres.
string
required
Texto del botón que abre la lista. Máximo 20 caracteres.
array
required
Array de secciones. Máximo 10 secciones, máximo 10 rows en total.

Campos de Section

string
Título de la sección. Máximo 24 caracteres. Requerido si hay más de una sección.
array
required
Array de opciones dentro de la sección.

Campos de Row

string
required
ID único de la opción. Lo recibirás en el webhook. Máximo 200 caracteres.
string
required
Título visible de la opción. Máximo 24 caracteres.
string
Descripción adicional. Máximo 72 caracteres.

CTA URL (Call-to-Action URL)

Muestra un botón que abre una URL en el navegador del usuario al hacer tap. Ideal para dirigir a páginas de pago, formularios web, catálogos online o cualquier enlace externo.

Ejemplo Básico

Campos de CTA URL

string
required
Debe ser "cta_url".
object
Header opcional. Puede ser text, image, video, o document.
string
required
Texto principal del mensaje. Máximo 1024 caracteres.
Texto secundario en gris. Máximo 60 caracteres.
string
required
Debe ser "cta_url".
string
required
Texto visible del botón. Máximo 30 caracteres.
string
required
URL que se abrirá al hacer tap en el botón. Debe ser una URL válida con https://.
A diferencia de los reply buttons, los CTA URL no generan un webhook de respuesta al ser tocados. El usuario simplemente es redirigido al navegador. Si necesitas trackear clics, usa UTM parameters en la URL.

Respuesta del Usuario

Cuando el usuario selecciona un botón o item de lista, recibirás un webhook con el id seleccionado:
Webhook - Botón seleccionado
Webhook - Lista seleccionada
Webhook - Flow enviado por el usuario
Usa IDs descriptivos como "confirmar_pedido_12345" para facilitar el procesamiento en tu backend.

Respuesta Exitosa


Límites


Comparación: Botones vs Listas vs CTA URL


Casos de Uso


Flows de WhatsApp

Usa un Flow ya existente en Meta sin necesidad de crearlo desde Whaapy. El contrato sigue el formato nativo de WhatsApp Cloud API: type: "interactive" con interactive.type: "flow".

Ejemplo Básico

Campos de Flow

string
required
Debe ser "flow".
string
required
Debe ser "flow".
string
required
Actualmente debe ser "3".
string
ID único del Flow en Meta. Debes enviar flow_id o flow_name, pero no ambos.
string
Nombre del Flow en Meta. Alternativa a flow_id.
string
required
Texto del CTA visible para abrir el Flow. Recomendado: 30 caracteres o menos.
string
Token propio de tu negocio para correlacionar la respuesta del Flow.
string
navigate o data_exchange. Si no lo envías, Meta usa navigate.
string
Pantalla inicial del Flow cuando usas navigate.
object
Datos iniciales que quieres inyectar a la primera pantalla del Flow.

Próximos Pasos

Enviar Ubicación

Comparte coordenadas GPS

Enviar Contactos

Comparte tarjetas vCard