Flujos sin IA en el canvas
Cuándo conviene resolver con un flujo estático en lugar de un agente IA, y qué nodos te alcanzan
No todo necesita un agente IA. Muchas veces el flujo es predecible: el cliente escribe, le mostrás un menú, toca un botón, y respondés. Para esos casos, un flujo estático es más barato, más rápido y mucho menos propenso a "alucinar" respuestas.
Esta página es la base. Te explica cuándo conviene un flujo estático y qué nodos vas a usar. Los tutoriales puntuales (menú de bienvenida, imágenes, respuesta a plantillas) están enlazados al final de cada sección.
Cuándo conviene un flujo estático
- FAQ corta y predecible. El cliente pregunta por horarios, precios o ubicación. Le mostrás un menú, toca lo que necesita, recibe la respuesta. No hace falta un agente que interprete texto libre.
- Menú de bienvenida. Primer contacto: 3 o 4 botones para que el cliente diga qué necesita (comprar, soporte, hablar con humano).
- Derivar por canal o por etiqueta. Si el cliente escribe por Instagram va a un flujo, si escribe por WhatsApp va a otro. Si es VIP va a un asesor, si es nuevo va al onboarding.
- Recordatorios y avisos programados. Mensajes pre-armados que se mandan a una hora puntual o antes de un evento. Ver Recordatorios en el canvas.
- Confirmaciones con plantilla. El cliente reservó, le confirmás con una plantilla aprobada de WhatsApp. Si responde con un botón de respuesta rápida, encadenás el siguiente paso. Ver Respuesta a plantilla.
- Validar comprobantes o documentos. El cliente manda foto del comprobante, lo revisás y seguís. No hace falta conversación: alcanza con saber si es válido o no.
Flujo estático no significa "rígido para siempre". Podés mezclar: arrancás con un menú estático y, si el cliente pide algo que no estaba en las opciones, derivás a un agente IA o a un humano. Lo estático cubre el 80% de los casos comunes; lo IA cubre la cola larga.
Los nodos que vas a usar
Resumen breve. La doc completa de cada uno está en Referencia de nodos.
Enviar mensaje (send_message). El nodo de mensajería más
versátil. Manda texto plano, mensaje con botones, listas o medios
(imágenes, audios, PDFs). Si activás "esperar respuesta", el nodo se
queda esperando que el cliente conteste y rutea según qué botón apretó.
Ver Menú de bienvenida con botones y
Enviar imágenes y archivos.
Enviar plantilla (send_template). Manda un mensaje con una
plantilla aprobada por Meta. Es la única forma de iniciar conversación
con un cliente que no te escribió en las últimas 24 horas. Ver
Plantillas de WhatsApp.
Esperar respuesta del cliente. Tres formas, según el caso:
idle_timeout: pausa silenciosa, sin mandar nada. Espera a que el cliente escriba o se cumpla el plazo. Útil después de un mensaje del bot para detectar inactividad.wait_for_event: pausa hasta que ocurra un evento externo (un webhook, una etiqueta agregada, un dato que cambia). No reacciona a mensajes del cliente.delay: pausa por un tiempo fijo o hasta una hora puntual. Sirve para "esperar 5 minutos" o "esperar hasta las 19hs".
Reglas duras (hard_rules). Rutea según datos concretos del
contacto: etiquetas que tiene, datos guardados de ese contacto,
variables del canvas. No sirve para clasificar intenciones ni para
leer texto libre. Si el contacto tiene la etiqueta vip, va por una
rama. Si no, va por la otra.
Switch por canal, por etiqueta o por tipo de mensaje. Variantes más simples del concepto anterior:
channel_switch: separa por WhatsApp, Instagram o lo que venga.tag_switch: separa por las etiquetas del contacto (la primera rama que coincide, gana).message_type_switch: separa por el tipo de mensaje recibido (texto, imagen, audio, video, documento).
Variables (set_variable). Guarda un dato en el canvas para
usarlo después en otro nodo. Por ejemplo, guardar el nombre que el
cliente escribió en una pregunta y usarlo más adelante en un mensaje
de confirmación. Las variables viven mientras dura la sesión.
Transferir a humano (transfer_to_human). Cierra el flujo del
agente IA y manda la conversación a la bandeja de un operador. Es el
escape natural cuando un flujo estático no cubre el caso.
Validar imagen (image_validator). Analiza una imagen con un
modelo de visión y decide si cumple un criterio. Sirve para
comprobantes de transferencia, fotos de DNI, recetas, fotos de
producto. Tiene tres salidas: válida, inválida, error.
Triggers para arrancar un flujo
Todo canvas arranca con un trigger (un evento que activa el flujo). Los más comunes para flujos estáticos:
session_start: el cliente te escribe (primer mensaje o nuevo después de un cierre de sesión). Es el trigger por defecto para casi todo.template_reply: el cliente respondió a una plantilla específica. Cada botón de respuesta rápida genera una salida distinta. Ver Respuesta a plantilla.webhook: un sistema externo le pega a una URL del canvas para avisar que pasó algo (un pago, un envío de un sistema tuyo, una integración custom).scheduled: corre en horarios programados (todos los días a las 9, los lunes a las 10).tag_added: alguien agregó una etiqueta al contacto (a mano o por otro flujo). El canvas se dispara con ese contacto.
Errores comunes
No conectar la salida de error. Casi todo nodo que llama a una API
externa (mandar mensaje, validar imagen, enviar plantilla) tiene una
salida out_error o on_error. Si la dejás sin conectar, cuando algo
falle el flujo muere en silencio y el cliente queda colgado. Conectala
siempre, aunque sea a un transfer_to_human con un mensaje de
disculpa.
Esperar un botón pero no manejar texto libre. Cuando mandás un
mensaje con botones y wait_for_reply: true, el nodo expone una
salida por cada botón más una salida out_default para texto libre.
Si el cliente, en vez de tocar un botón, escribe "hola disculpa quiero
saber..." el flujo va por out_default. Si no la conectás, el cliente
queda mudo. Conectala siempre, aunque sea a "repetir el menú" o a un
agente IA que interprete el texto.
Dejar conversaciones colgadas sin idle_timeout. Después de
mandar un mensaje y esperar respuesta, si el cliente nunca contesta el
flujo se queda parado para siempre. Sumá un idle_timeout con un
plazo razonable (15 minutos, 1 hora, 1 día) y conectá on_timeout a
algo que cierre la conversación o transfiera a humano.
Querer iniciar la conversación con send_message. Si querés
escribirle a un cliente fuera de la ventana de 24 horas desde su
último mensaje, send_message no alcanza, WhatsApp lo bloquea. Hay
que usar send_template con una plantilla aprobada por Meta.
