Saltar a contenido

Editor visual de flujos

Arma la conversación arrastrando bloques, sin programar

El modo Flujos te deja diseñar paso a paso lo que tu bot le responde a cada cliente: lo armas en un lienzo visual conectando bloques (enviar un mensaje, mostrar un menú, consultar la deuda en tu ISP, generar un link de pago, pasar a un agente, etc.). No necesitas saber programar.

El editor de flujos es una alternativa al menú clásico del bot. En lugar de seguir un guion fijo, tú decides el orden de los pasos, qué pregunta hace el bot, hacia dónde se ramifica según la respuesta y cuándo entrega la conversación a una persona.

Requisitos

Requisito Detalle
Addon Bot WhatsApp $15/mes — se contrata en tu área de cliente WHMCS
Sistema ISP Mikrowisp o WispHub (solo para los bloques que consultan datos del cliente: deuda, identificación, comprobantes). Los bloques de conversación pura funcionan sin ISP
Inbox WhatsApp en Chatwoot Conectado a Meta Cloud API

¿Cuándo conviene el modo Flujos?

Cuando quieres un recorrido a tu medida: agregar opciones propias, cambiar los textos, ramificar según el estado o la deuda del cliente, o combinar varios pasos (identificar → mostrar deuda → ofrecer pago → pedir comprobante) en un solo recorrido controlado por ti.


El editor de un vistazo

Editor visual de flujos con los bloques conectados

El editor tiene tres zonas:

  • Paleta de bloques (izquierda): la lista de bloques disponibles. Arrastras al lienzo el que necesites.
  • Lienzo central: el diagrama de tu flujo. Cada bloque es un paso de la conversación; las flechas indican qué pasa después.
  • Panel de propiedades (derecha): al hacer clic en un bloque, aquí editas su contenido (el texto del mensaje, las opciones del menú, la variable donde guardar una respuesta, etc.).

Cómo se construye un flujo

  1. Arrastra bloques desde la paleta al lienzo. Cada bloque es un paso.
  2. Conéctalos en orden. Cada bloque tiene un punto de salida abajo y un punto de entrada arriba. Arrastra desde la salida de un bloque hasta la entrada del siguiente para definir qué sucede después. Los bloques con varias salidas (como el menú o una condición) muestran una etiqueta en cada una.
  3. Edita su contenido. Haz clic en un bloque y completa sus campos en el panel derecho.
  4. Valida, prueba y publica. Antes de activarlo, revisa que no falte conectar nada, pruébalo en un chat de prueba y recién entonces publícalo.

Tour de primera vez

La primera vez que abres el editor aparece un tour breve que explica estos cuatro pasos. Puedes volver a verlo desde el botón de ayuda en la barra superior.


Bloques disponibles

Un bloque seleccionado con su panel de configuración

Estos son los bloques que puedes arrastrar al lienzo. Cada uno tiene una o más salidas (los puntos de conexión hacia el siguiente paso).

📩 Enviar mensaje

Envía un texto al cliente y continúa al siguiente bloque.

Campo Para qué sirve
Texto del mensaje El mensaje a enviar (hasta 1024 caracteres). Admite variables como {{nombre}}.

Salida: una sola, automática.

📎 Enviar archivo

Envía una imagen, PDF o video de tu biblioteca de medios y continúa.

Campo Para qué sirve
Archivo de la biblioteca El medio a enviar (se elige de tu biblioteca).
Texto que acompaña Pie de foto opcional. Admite variables (hasta 1024 caracteres).

Salida: una sola, automática.

Muestra opciones al cliente. Con 1 a 3 opciones se envían como botones de WhatsApp; con 4 o más, como lista interactiva.

Campo Para qué sirve
Mensaje El texto que acompaña al menú.
Encabezado Título opcional (solo aparece en formato lista).
Opciones De 1 a 10 opciones. Cada una tiene un texto (hasta 20 caracteres).
Intentos antes de derivar 1, 2 o 3. Si el cliente no elige una opción válida tras esa cantidad de intentos, el bot usa la salida «si no entiende» o deriva a una persona.
Mensaje cuando no entiende Texto opcional que se envía antes de volver a mostrar el menú.
Derivar a (departamento) Equipo al que se asigna la conversación si no conectaste la salida «si no entiende».

Salidas: una por cada opción, más una salida de respaldo para cuando el cliente no entiende.

El cliente puede escribir libre

El menú reconoce la respuesta de varias formas: si el cliente toca el botón, si escribe el texto exacto de la opción, si responde con el número (1, 2, 3…) o si escribe una palabra que coincida sin ambigüedad con una opción.

❓ Pregunta abierta

Hace una pregunta, espera una respuesta libre y la guarda en una variable para usarla más adelante.

Campo Para qué sirve
Pregunta El texto de la pregunta.
Nombre de variable Dónde se guarda la respuesta (por ejemplo dni).
Validación Ninguna, DNI, Teléfono, Número o Email. Si la respuesta no cumple, el cliente sale por «inválido».
Intentos antes de derivar 1, 2 o 3. Solo aplica si no conectaste la salida «inválido».
Mensaje cuando el dato es inválido Texto opcional antes de volver a preguntar.
Derivar a (departamento) Equipo al que se asigna si se agotan los intentos.

Salidas: «válido» e «inválido».

🔍 Consultar cliente en ISP

Busca al cliente en Mikrowisp o WispHub por teléfono o DNI y lo guarda como variable.

Campo Para qué sirve
Buscar por Teléfono o DNI.
Variable con el dato La variable que contiene el teléfono o el DNI (debe haberse capturado antes, por ejemplo con una Pregunta abierta).
Guardar cliente como Nombre de la variable del cliente (por defecto cliente).

Al encontrar al cliente, también genera variables listas para usar en {{}} o en el bloque Condición: nombre, dni, estado, telefono, usuario y codigo.

Salidas: «encontrado», «no encontrado» y «error» (opcional). La salida de error cubre los casos en que el ISP está caído o sin credenciales; si no la conectas, esos casos caen a «no encontrado».

💰 Mostrar deuda

Trae la deuda actual del cliente y se la envía con un mensaje configurable.

Campo Para qué sirve
Variable cliente La variable del cliente identificado (por defecto cliente).
Mensaje con deuda Texto a enviar. Variables: {{nombre}}, {{deuda}}, {{vence}}, {{factura}}.
Mensaje si NO tiene deuda Qué decir cuando el cliente está al día.

Salidas: una automática (con o sin deuda) y «error» (opcional).

El bot nunca dice «estás al día» por error

Si no se puede consultar la deuda (ISP caído o cliente no identificado) y no conectaste la salida «error», el bot deriva la conversación a una persona en lugar de afirmar falsamente que el cliente no debe nada.

📶 Estado de conexión

Consulta en tiempo real si el router del cliente está en línea o desconectado. Ideal para el triage de «no tengo internet»: según el resultado, el flujo toma un camino u otro.

Campo Para qué sirve
Variable cliente La variable del cliente identificado (por defecto cliente).

Genera además las variables {{status_conexion}} (online/offline) y {{ultima_conexion}} para usar en tus mensajes.

Salidas:

  • 📶 en línea — el router está conectado a tu red; el problema es del WiFi o el equipo del cliente (sugerí reiniciar el módem).
  • 🔌 desconectado — el router no llega a la red (energía/cable); pedile que revise que tenga luz o derivá a soporte.
  • 💰 por deuda (opcional) — está desconectado por corte de facturación; conectala a un bloque de pago. Si no la conectás, ese caso cae a «desconectado».
  • ⚠️ error (opcional) — no se pudo consultar; si no la conectás, el bot deriva a una persona.

Solo Mikrowisp y WispHub

El estado de conexión funciona con Mikrowisp (instantáneo) y WispHub. En WispHub usa un ping real que tarda unos 8-10 segundos, así que conviene enviar antes un mensaje tipo «un momento, estoy verificando tu conexión…».

📝 Captar prospecto (cliente nuevo)

¿No sabes cómo armarlo? Usa la plantilla lista

Al crear un flujo nuevo, elige la plantilla «Captar cliente nuevo» — ya viene pre-armada: un mensaje de bienvenida y el bloque «Captar prospecto» en modo Guiado. Funciona tal cual; solo cambias los textos y publicas.

Es el bloque para captar a alguien que no es cliente y quiere contratar. Registra la solicitud de instalación / pre-registro en tu ISP (Mikrowisp o WispHub) y la deriva a Comercial para validar cobertura. No da de alta el servicio: queda pendiente de tu confirmación.

Tiene dos modos:

Modo Guiado (recomendado)

El bloque conversa solo con el cliente y le pide los datos que necesita, uno por uno. No hace falta poner bloques «Pregunta abierta» antes.

Campo Para qué sirve
Identificar al cliente por Documento de identidad (autocompleta el nombre si tienes el addon Consulta DNI) o Nombre y apellido (lo escribe el cliente).
Pedir la ubicación de WhatsApp Si está en «Sí», el bot le pide que comparta su ubicación y la guarda como coordenadas (lat,lng) para que el técnico lo ubique. Es opcional para el cliente.
Textos de cada pregunta Personalizas cómo el bot pide el consentimiento, el documento, el nombre, la dirección y la ubicación.
Derivar a (equipo) Equipo que validará cobertura. Vacío = Comercial.
Mensaje al prospecto Confirmación que recibe al registrar su solicitud.

El recorrido que hace el bot:

  • Identificar por documento: pide consentimiento (Sí/No) → pide el documento → si tienes el addon, autocompleta el nombre; si no lo encuentra, lo pide a mano → pide la dirección → (opcional) pide la ubicación → registra.
  • Identificar por nombre: pide el nombre → pide la dirección → (opcional) pide la ubicación → registra.

Pensado para cualquier país

No todos los países llaman «DNI» a su documento. Como los textos son editables, adapta el mensaje al tuyo (cédula, INE, CI, etc.). Y si en tu país no hay consulta automática de documento (hoy solo Perú, vía el addon Consulta DNI), usa la opción Nombre y apellido: funciona en todos lados.

Modo Manual (avanzado)

Para quienes prefieren armar el recorrido con sus propios bloques «Pregunta abierta» y pasarle los datos al bloque por variables.

Campo Para qué sirve
Variable con el documento La variable con el documento (por defecto dni). Con el addon Consulta DNI, el bot autocompleta el nombre. Mikrowisp exige el documento para registrar.
Variable con el nombre Si pasas el documento y tienes el addon, se autocompleta. Si no, pide el nombre a mano y ponlo aquí.
Variable con la dirección La dirección real donde quiere el servicio (por defecto direccion). No uses la del documento.
Variable con la ubicación Si el cliente compartió su ubicación de WhatsApp, va aquí (coordenadas).

Salidas: «✓ prospecto creado» (registrado y derivado a Comercial) y «⚠️ error» (opcional; si no la conectas, el bot deriva a una persona igual — nunca se pierde el prospecto).

El consentimiento ya está incluido (protección de datos)

Cuando identificas por documento, el modo Guiado pide el consentimiento solo antes de consultarlo (el texto es editable). Como el prospecto no es tu cliente todavía, esto respeta la ley de protección de datos. Si responde que no, el bot le pide el nombre a mano.

La dirección del documento NO sirve para instalar

La consulta oficial devuelve el domicilio registrado, que no es necesariamente dónde el cliente quiere el servicio. Por eso el bot siempre pide la dirección de instalación aparte.

Mikrowisp vs WispHub

En Mikrowisp crea un pre-registro (nombre + documento + dirección). En WispHub crea una instalación en «Planificación» con esos datos. En ambos queda pendiente y se deriva a Comercial para validar cobertura (y en WispHub completar plan/usuario/IP antes de instalar).

🪪 Consultar DNI (opcional — solo casos avanzados)

El modo Guiado ya consulta el documento solo. Usa este bloque aparte solo si quieres mostrarle el nombre al cliente para que lo confirme antes de registrarlo (genera {{prospecto_nombre}}). Requiere el addon Consulta DNI (RENIEC/Factiliza, hoy Perú) y pedir el consentimiento antes.

Crea un link de pago por el monto de deuda del cliente.

Campo Para qué sirve
Variable cliente La variable del cliente (por defecto cliente).
Pasarela Primera disponible, Izipay o Culqi (Yape).
Mensaje al cliente Texto con el link. Variable: {{link}}.
Mensaje si NO tiene factura pendiente Qué decir cuando el cliente ya está al día.

Salidas: «éxito» (link generado), «falló» (error de la pasarela) y «sin deuda» (no necesita pagar).

📸 Pedir comprobante (OCR)

Pide una foto de Yape o Plin. Cuando llega, valida el comprobante automáticamente con lectura de imagen (OCR) y controles anti-fraude.

Campo Para qué sirve
Mensaje pidiendo el comprobante El texto que solicita la foto.
Variable cliente La variable del cliente (por defecto cliente).
Variable monto esperado Opcional, para verificar que el monto coincida.
Al validar el comprobante Reportar el comprobante al ISP o Solo recibir en el chat (gestión manual).
Crear promesa de pago al validar (extiende el servicio automáticamente) o No. Solo aplica si reportás al ISP.
Días de la promesa Cuántos días se extiende el servicio (1 a 20, según tu ISP).
Intentos antes de derivar 1, 2 o 3 si el cliente no envía la foto.
Mensaje cuando no llega la foto Texto opcional antes de volver a pedirla.
Derivar a (departamento) Equipo al que se asigna si se agotan los intentos.

Salidas: «validado», «falló» y «revisión humana».

La promesa de pago no marca la factura como pagada

En modo automático, al validar el comprobante el bot lo reporta al ISP y crea una promesa de pago que extiende el servicio unos días. No marca la factura como pagada: un agente debe validar y acreditar el pago definitivo. La validación de comprobantes requiere configurar tu propia clave de OpenAI y aceptar los términos en Ajustes.

🔀 Condición (según datos)

Ramifica el flujo según una variable del cliente (deuda, estado, etc.). Por ejemplo: si la deuda es mayor a 100, ir por un camino; si no, por otro.

Campo Para qué sirve
Variable a evaluar La variable a comparar (por ejemplo deuda, estado). Debe haberse capturado antes.
Condición Mayor que, mayor o igual, menor que, menor o igual, igual a, distinto de, contiene el texto, está vacío o tiene algún valor.
Valor a comparar Un número (ej. 100) o un texto (ej. suspendido).

Salidas: «verdadero» y «falso».

👤 Pasar a agente humano

Cierra el bot, asigna la conversación a un equipo de agentes y se despide. Es un bloque final: no tiene salida.

Campo Para qué sirve
Team de Chatwoot A qué equipo se asigna la conversación. Si lo dejas vacío, queda sin asignar.
Mensaje de despedida El texto con el que el bot se despide antes de pasar a la persona.

Salida: ninguna (es el final del recorrido).


Borrador y publicado

Cada flujo tiene dos estados:

  • Borrador (draft): lo que estás editando. El editor lo guarda automáticamente mientras trabajas; no necesitas guardar a mano.
  • Publicado: la versión que realmente atiende a tus clientes.

Editar el borrador no afecta lo que ven tus clientes. Tus cambios entran en vigor solo cuando presionas Publicar. Además, dentro de su alcance (un inbox o global) solo un flujo es el predeterminado: ese es el que atiende. Un flujo debe estar publicado para poder marcarlo como predeterminado.

Validar antes de publicar

El botón ✓ Validar revisa el flujo y te marca en rojo cualquier bloque con problemas: por ejemplo, una salida sin conectar, un bloque sin salida (donde el bot quedaría atascado) o un bloque que nunca se alcanza. Los resultados son clicleables: al tocarlos, el editor te lleva al bloque con el problema.

Red de seguridad

Aunque publiques con una salida sin conectar, el bot no deja al cliente esperando: lo deriva automáticamente a un agente y deja una nota privada avisando qué bloque quedó sin conectar. Aun así, conviene corregirlo desde Validar.

Probar en el sandbox

Sandbox de prueba del flujo

El botón 🧪 Probar abre un chat de prueba (sandbox) sobre el borrador, sin tocar producción. Puedes conversar con tu flujo como si fueras un cliente para verificar que los pasos fluyen bien.

El sandbox no cobra ni gasta

En modo prueba el bot no genera cobros reales ni consume la lectura de comprobantes (OCR). Los pasos de pago y de comprobante se simulan para que puedas recorrer el flujo completo sin costo.

Organizar, deshacer y rehacer

Acción Botón / Atajo
Organizar bloques automáticamente 🪄 Organizar (ordena el diagrama de forma legible)
Deshacer / Ctrl+Z
Rehacer / Ctrl+Y (o Ctrl+Shift+Z)

Flujos por inbox (multi-inbox)

Un flujo puede atarse a un inbox específico o ser global («Todos los inboxes»).

  • Un flujo global corre en cualquier inbox que no tenga un flujo propio.
  • Un flujo de un inbox específico corre solo en ese inbox.

Si tu cuenta tiene dos o más inboxes, al crear un flujo eliges su alcance, y puedes moverlo después desde el indicador de inbox en la barra superior.


Palabras mágicas (reiniciar la conversación)

El cliente puede escribir cualquiera de estas palabras en cualquier momento para reiniciar la conversación y volver al inicio del flujo:

#   menu   menú   inicio   reiniciar   salir   cancelar   start

La coincidencia no distingue mayúsculas, pero debe ser la palabra exacta (no parte de otra frase), para no confundirla con una respuesta válida.

Tiempo de inactividad (timeout de sesión)

Si el cliente deja de responder durante un tiempo, la conversación se considera abandonada y el siguiente mensaje arranca el flujo desde cero.

  • Por defecto: 30 minutos.
  • Configurable en ⚙️ Ajustes del flujo → «Reiniciar la conversación tras (minutos de inactividad)».
  • Máximo: 1440 minutos (24 horas).

Solución de problemas

Publiqué el flujo pero el bot no responde con él

Verifica que el flujo esté publicado y marcado como predeterminado en su alcance (inbox o global). Solo el flujo predeterminado atiende. Confirma también que el addon Bot WhatsApp esté activo y que el inbox correcto tenga un flujo asignado.

El bot deriva a un agente apenas empieza

Suele ser una salida sin conectar. Presiona ✓ Validar y revisa los bloques marcados en rojo: cuando un bloque no encuentra a dónde continuar, el bot deriva a una persona como red de seguridad y deja una nota privada indicando qué salida quedó suelta.

El bloque «Consultar cliente en ISP» nunca encuentra al cliente

Revisa que tu Sistema ISP (Mikrowisp o WispHub) esté configurado con la URL y el token correctos, y que la variable con el dato (teléfono o DNI) se haya capturado antes en el flujo. Ten en cuenta que muchos ISPs guardan el teléfono sin código de país; el bot prueba variantes automáticamente, pero si el número no está cargado en el ISP no habrá coincidencia.

El bloque «Mostrar deuda» o «Generar link de pago» falla

Ambos bloques necesitan un cliente ya identificado: coloca antes un bloque «Consultar cliente en ISP» que tenga éxito. Si el ISP está caído, conecta la salida «error» a un paso alternativo (o el bot derivará a un agente automáticamente).

El comprobante (OCR) no se valida automáticamente

La lectura de comprobantes requiere tu propia clave de OpenAI y aceptar los términos en ⚙️ Ajustes. Sin esa configuración, el bot recibe el comprobante pero lo manda a revisión humana en lugar de validarlo solo.

Hice cambios pero los clientes siguen viendo el flujo anterior

El editor guarda el borrador automáticamente, pero los clientes ven la versión publicada. Presiona Publicar para que tus cambios entren en vigor.