RuniaRunia Docs

Menú de bienvenida con botones

Cómo armar un primer mensaje con botones para rutear al cliente sin agente IA

Cuando el cliente escribe por primera vez, querés mostrarle 3 o 4 opciones (precios, horarios, hablar con humano) y que cada una vaya a una rama distinta. Esto se hace 100% estático, sin agente IA: el cliente toca el botón, el canvas rutea, y listo.

La pieza central es un nodo send_message con botones y "esperar respuesta" activo. Ese nodo expone una salida por cada botón más una para texto libre y otra para cuando se cumple el plazo de espera. Cada salida la conectás a una rama distinta.

Paso 1: trigger de sesión nueva

El canvas arranca con un trigger session_start. Se dispara cada vez que un cliente te escribe y no hay sesión activa con él (primer contacto o vuelta después de un cierre).

No requiere configuración especial. Conectás su salida directamente al mensaje de bienvenida.

Paso 2: enviar el mensaje con botones

Sumá un nodo send_message. La configuración tiene tres partes importantes:

  • Tipo de mensaje: interactivo con botones.
  • Texto del mensaje: el texto de bienvenida. Por ejemplo: "¡Hola! ¿En qué te puedo ayudar?".
  • Botones: hasta 3 botones de respuesta rápida. Cada uno tiene un identificador interno y un título (lo que ve el cliente). Por ejemplo: precios / "Precios", horarios / "Horarios", humano / "Hablar con alguien".

Activá "esperar respuesta del cliente" y elegí un plazo razonable de espera, por ejemplo 1 hora o 1 día. Si el cliente nunca responde, el nodo sale por on_timeout y vos decidís qué hacer (cerrar la conversación, mandar un recordatorio, etc.).

Panel de configuración del send_message con tipo interactivo, tres botones y la opción de esperar respuesta activada
Panel de configuración del send_message con tipo interactivo, tres botones y la opción de esperar respuesta activada

Si activás "esperar respuesta" y agregás botones, el nodo expone una salida por cada botón. La salida out_default (etiquetada "Texto libre") no significa "continuar inmediato": se dispara cuando el cliente escribe texto en lugar de tocar un botón. Si la dejás sin conectar, el cliente que escribe libre queda colgado.

Paso 3: rutear cada respuesta

El send_message con botones expone:

  • out_<id_del_boton>: una salida por botón. En el ejemplo, serían out_precios, out_horarios, out_humano.
  • out_default ("Texto libre"): el cliente escribió algo en vez de tocar un botón.
  • on_timeout: pasó el plazo sin respuesta.

Conectá cada salida a la rama que corresponda.

Paso 4: armar las ramas

Precios: un send_message simple con el texto del listado más una imagen del precio (ver Enviar imágenes y archivos). No hace falta esperar respuesta, podés cerrar con un mensaje del tipo "¿Querés que te avise por algo más?" y un idle_timeout.

Horarios: un send_message con el texto de horarios. Mismo patrón.

Hablar con humano: un nodo transfer_to_human. Configurá el motivo ("El cliente pidió hablar con un asesor") y un mensaje de transición ("Te paso con alguien del equipo, en un ratito te escribimos").

Paso 5: manejar el texto libre

Cuando el cliente escribe en lugar de tocar un botón, va por out_default. Hay dos patrones útiles:

Repetir el menú. Conectás out_default a otro send_message con el mismo texto y los mismos botones, o directamente al mismo nodo de bienvenida (en bucle). Útil cuando el menú cubre todos los casos.

Derivar a humano. Si los botones cubren los casos comunes pero el cliente escribe algo distinto, conviene transferir a un humano antes que insistir con el menú. Conectás out_default a transfer_to_human.

Si tenés un agente IA armado, también podés conectar out_default al agente para que interprete la pregunta libre. Ese es el patrón "estático para lo común, IA para la cola larga".

Paso 6: cerrar con idle_timeout

Después de cada rama, sumá un idle_timeout para no dejar la conversación abierta para siempre. Por ejemplo, después del mensaje de precios:

[send_message "Acá tenés los precios..."] → [idle_timeout 30m]
  → out_reply → [agente IA o repetir menú]
  → on_timeout → [close_session]

Esto cierra la sesión si el cliente no escribe en 30 minutos. Si escribe, podés mandarlo a un agente para que continúe la conversación.

Canvas completo del menú de bienvenida con tres ramas, salida de texto libre y cierre por inactividad
Canvas completo del menú de bienvenida con tres ramas, salida de texto libre y cierre por inactividad

Errores comunes

Conectar out_default esperando que sea "siguiente nodo". Cuando el send_message tiene botones, out_default no significa "continuar": significa "el cliente escribió texto libre". El nodo está diseñado así. La etiqueta de la salida cambia a "Texto libre" para hacerlo explícito.

No activar la espera de respuesta con botones. Si tenés botones pero la opción de esperar respuesta está desactivada, los botones se mandan pero el flujo sigue sin esperar. El cliente toca un botón al pedo. La plataforma lo fuerza activado, pero conviene revisarlo.

Olvidarse de on_timeout. Sin esa salida, el flujo queda esperando para siempre. Conectala a algo aunque sea a un close_session.