Saltar al contenido principal
El nodo Lista envía un mensaje con un botón que, al tocarlo, despliega una lista de opciones. Permite mostrar hasta 10 opciones, cada una con título y descripción.
En WhatsApp, las listas se muestran como un menú desplegable nativo. Es la mejor opción cuando tienes entre 4 y 10 opciones.

Configuración general

  • Encabezado: Título del mensaje (máximo 60 caracteres)
  • Contenido: Mensaje principal (máximo 1,024 caracteres, requerido)
  • Nombre del botón: Texto del botón que despliega la lista (máximo 20 caracteres)

Opciones

Cada opción tiene:
  • Nombre de la opción: Texto visible en la lista (máximo 24 caracteres)
  • Descripción: Texto adicional debajo del nombre (opcional, máximo 72 caracteres)
Puedes agregar hasta 10 opciones. Las opciones se pueden reordenar arrastrándolas y duplicar para crear variantes rápidas.

Opciones dinámicas

Si las opciones provienen de datos variables, activa el modo dinámico:
  • Variable fuente: {{$memory.opciones}}
  • Plantilla de etiqueta: {{item.nombre}}
  • Plantilla de descripción: {{item.detalle}}
Plantillas predefinidas: Lista simple, Productos, Horarios disponibles, Sucursales.

Variables en mensajes

Encabezado: Hola {{$user.names}}
Contenido: Selecciona una de las siguientes opciones

Configuración avanzada

Selección obligatoria

Cuando está activada, el usuario debe elegir una opción de la lista para continuar. Si escribe texto libre, verá un mensaje de error personalizable (máximo 250 caracteres).

Variable de respuesta

Guarda la opción que el usuario seleccionó en una variable de memoria para usarla más adelante en el flujo. Cómo configurarlo:
  1. Activa el interruptor Guardar respuesta.
  2. Escribe el nombre de la variable (por ejemplo, motivo_consulta).

Valor guardado con opciones estáticas

Cuando las opciones están definidas manualmente, se guarda el nombre de la opción seleccionada como texto plano. Ejemplo con estas opciones:
Opción
Ventas
Soporte Técnico
Facturación
Devoluciones
Si el usuario elige Soporte Técnico:
// {{$memory.motivo_consulta}} contiene:
const motivo_consulta = "Soporte Técnico";

Valor guardado con opciones dinámicas

Cuando las opciones se generan desde una variable fuente, se guarda el objeto completo del array al que pertenece la opción seleccionada. Supón que {{$memory.servicios}} contiene:
[
  { "id": "s1", "nombre": "Ventas", "agentes": 5, "horario": "L-V 8:00-18:00" },
  { "id": "s2", "nombre": "Soporte Técnico", "agentes": 3, "horario": "L-V 9:00-17:00" },
  { "id": "s3", "nombre": "Facturación", "agentes": 2, "horario": "L-V 8:00-16:00" }
]
Si el usuario elige Soporte Técnico, la variable queda con el objeto completo:
// {{$memory.motivo_consulta}} contiene el objeto completo:
const motivo_consulta = {
  id: "s2",
  nombre: "Soporte Técnico",
  agentes: 3,
  horario: "L-V 9:00-17:00"
};
Puedes acceder a cada propiedad del objeto en nodos posteriores:
// Acceso a propiedades de {{$memory.motivo_consulta}}:
motivo_consulta.nombre;   // "Soporte Técnico"
motivo_consulta.horario;  // "L-V 9:00-17:00"
motivo_consulta.agentes;  // 3

Casos de uso

Conecta un nodo Condicional y crea una rama por cada opción:
Si {{$memory.motivo_consulta}} = "Ventas"          → rama Ventas
Si {{$memory.motivo_consulta}} = "Soporte Técnico" → rama Soporte
Si {{$memory.motivo_consulta}} = "Facturación"     → rama Facturación
Con el objeto completo guardado, puedes informar al usuario con los datos exactos del servicio elegido:
Texto: "El área de {{$memory.motivo_consulta.nombre}} atiende
{{$memory.motivo_consulta.horario}} y cuenta con
{{$memory.motivo_consulta.agentes}} agentes disponibles."
Pasa el objeto al nodo AI Agent para que adapte su respuesta:
El usuario necesita ayuda con: {{$memory.motivo_consulta.nombre}}.
Horario de atención: {{$memory.motivo_consulta.horario}}.
Responde con información específica para ese servicio.
Usa un nodo API o Datum para registrar la selección con su ID de servicio:
{
  "userId": "{{$user.id}}",
  "servicioId": "{{$memory.motivo_consulta.id}}",
  "servicioNombre": "{{$memory.motivo_consulta.nombre}}",
  "timestamp": "{{$context.timestamp}}"
}

Lista expira

Si el usuario no selecciona ninguna opción dentro del tiempo configurado:
  • Enviar texto: Muestra un mensaje de expiración
  • Redirigir a skill: Lleva al usuario a otro flujo

Ejemplo

Configuración:
  • Encabezado: ¿En qué puedo ayudarte?
  • Contenido: Selecciona una opción de la lista
  • Nombre del botón: Ver opciones
  • Opciones: Ventas, Soporte Técnico, Facturación, Devoluciones