Construyendo flujos
Descripción general
ZappFlux Flow Editor es un generador visual de arrastrar y soltar que le permite crear interacciones complejas de chatbot multicanal y secuencias de automatización sin escribir código. Los flujos se componen de Bloques (unidades individuales de lógica, contenido o acción) conectados entre sí para formar una ruta de conversación. Arquitectura: CÓDIGO_BLOQUE_0 Qué puedes construir con flujos:- Chatbots con tecnología de inteligencia artificial para WhatsApp, Web, Instagram y más
- Formularios de captura de clientes potenciales con ramificación condicional.
- Sistemas de clasificación de atención al cliente con transferencia humana.
- Flujos de trabajo de reserva y programación de citas.
- Asistentes de comercio electrónico con cobro de pagos.
- Secuencias de incorporación y encuestas interactivas.
Empezando
Creando un nuevo flujo
- Navigate to Dashboard → Tools → ZappFlux → Flows
- Click New Flow (or the + button)
- Give your flow a name
- Choose a starting template or start from blank
- The flow editor opens automatically
Diseño del editor
Navegación del lienzo
- Pan: haga clic y arrastre en el espacio vacío del lienzo
- Zoom: rueda de desplazamiento o gesto de pellizcar (trackpad)
- Seleccionar bloque: haga clic en un bloque
- Mover bloque: haz clic y arrastra un bloque para reposicionarlo
- Conectar bloques: arrastre desde el controlador de salida (lado derecho) de un bloque al controlador de entrada (lado izquierdo) de otro.
- Eliminar conexión: haga clic en la flecha entre bloques y presione Eliminar
Tipos de bloques
Los bloques se organizan en cuatro categorías: Burbujas, Entradas, Lógica e Integraciones.💬 Burbujas: envío de contenido a los usuarios
Los bloques de burbujas envían contenido al usuario. El flujo no se detiene en estos bloques: se ejecutan y pasan inmediatamente al siguiente bloque.Texto
Envía un mensaje de texto sin formato o formateado al usuario. Propiedades:- Contenido del mensaje (admite el formato Markdown)
- Interpolación de variables usando
{{variable_name}} - Retraso de escritura opcional (simula un tiempo de respuesta realista)
Imagen
Muestra una imagen al usuario dentro de la conversación. Propiedades:- Fuente de la imagen: Sube un archivo (PNG, JPG, GIF, WebP) o ingresa una URL pública
- Texto alternativo para accesibilidad
- Título opcional debajo de la imagen.
Video
Inserta un vídeo en el flujo de conversación. Propiedades:- Fuentes admitidas: YouTube, Vimeo o URL directa del archivo de vídeo
- Opción de reproducción automática
- Título/título del vídeo
Audio
Reproduce un mensaje de audio o un clip en la conversación. Propiedades:- Fuente de audio: cargue un archivo (MP3, WAV, OGG) o ingrese una URL
- Se muestra como un widget de reproductor de audio estándar.
Insertar
Incorpora contenido web externo mediante un iframe directamente dentro del flujo. Propiedades:- URL para incrustar (debe admitir la incrustación de iframe)
- Dimensiones (ancho y alto)
- Útil para incrustar calendarios, mapas o páginas de productos
📥 Entradas: recopilación de información de los usuarios
Los bloques de entrada pausan el flujo y esperan a que el usuario responda antes de continuar. La respuesta se almacena automáticamente en una variable para usarla más adelante en el flujo.Entrada de texto
Captura texto de formato libre del usuario. Propiedades:- Texto de marcador de posición que se muestra en el campo de entrada
- Variable para almacenar la respuesta.
- Límite de caracteres opcional
- Etiqueta del botón (“Enviar”, “Enviar” o texto personalizado)
Número
Captura un valor numérico con validación opcional. Propiedades:- Restricciones de valor mínimo y máximo
- Se muestra un mensaje de error si falla la validación.
- Variable para almacenar la respuesta.
Correo electrónico
Captura una dirección de correo electrónico con validación automática de formato. Propiedades:- Validación de formato de correo electrónico incorporada (rechaza entradas con formato incorrecto)
- Mensaje de error personalizado para entrada no válida
- Variable para almacenar la respuesta.
Teléfono
Captura un número de teléfono con selección de código de país. Propiedades:- Selector de código de país (opcional; se puede bloquear para un país específico)
- Validación de formato
- Variable para almacenar la respuesta.
Fecha/Hora
Muestra un calendario o selector de hora para que el usuario seleccione una fecha y/u hora. Propiedades:- Modo: Sólo fecha, Sólo hora o Fecha + Hora
- Restricciones de fecha mínima y máxima
- Variable para almacenar el valor seleccionado.
Botones
Presenta un conjunto de opciones predefinidas para que el usuario elija. Este es uno de los bloques de entrada más utilizados para la navegación por menús y los árboles de decisión. Propiedades:- Hasta 10 opciones de botones
- Cada botón tiene una etiqueta y un valor opcional (puede diferir de la etiqueta de visualización)
- Modo de elección múltiple o única
- Variable para almacenar las opciones seleccionadas.
- Mantenga las etiquetas de los botones cortas (menos de 40 caracteres) para una representación consistente en todos los canales
- Utilice botones en lugar de entradas de texto libre siempre que sea posible para mejorar la calidad de los datos y reducir las respuestas ambiguas.
Elección de imagen
Una versión visual de Botones: los usuarios seleccionan entre opciones basadas en imágenes. Propiedades:- Cada opción tiene una imagen (carga o URL) y una etiqueta
- Selección única o múltiple
- Variable para almacenar la(s) selección(es)
Carga de archivos
Permite al usuario subir un archivo dentro de la conversación. Propiedades:- Tipos de archivos aceptados (PDF, imágenes, documentos, etc.)
- Límite máximo de tamaño de archivo
- Variable para almacenar la URL del archivo cargado
Pago
Cobra el pago del usuario sin abandonar la conversación. Procesadores compatibles:- Stripe: tarjetas de crédito/débito, Apple Pay, Google Pay
- PayPal: saldo de PayPal, cuentas bancarias vinculadas, tarjetas
- Importe (fijo o extraído de una variable)
- Moneda
- Nombre/descripción del artículo
- Variable para almacenar el estado del pago y el ID de la transacción.
Los bloques de pago requieren que las credenciales de Stripe o PayPal se configuren en Configuración de flujo → Integraciones antes de su uso.
Calificación
Recoge una calificación del usuario (calificación de estrellas o escala numérica). Propiedades:- Tipo de calificación: Estrellas (1 a 5) o Número (1 a 10)
- Etiqueta opcional por valor de calificación
- Variable para almacenar la calificación.
⚡ Lógica: controlar el comportamiento del flujo
Los bloques lógicos controlan cómo el flujo ejecuta, bifurca y procesa datos. No envían contenido visible al usuario.Establecer variable
Crea o actualiza un valor de variable sin intervención del usuario. Propiedades:- Nombre de la variable a configurar
- Valor: un valor estático, otra variable o una expresión JavaScript
- Inicializando variables de contador (
set count = 0) - Formato de valores (
set full_name = "{{first_name}} {{last_name}}") - Almacenamiento de marcas de tiempo o valores calculados
Condición
Bifurca el flujo basándose en una comparación lógica: el equivalente ZappFlux de una declaración If/Else. Propiedades:- Lado izquierdo: una variable
- Operador: igual, no igual, contiene, mayor que, menor que, está vacío, no está vacío
- Lado derecho: un valor u otra variable
- Se pueden encadenar múltiples condiciones con AND/OR
Redirigir
Envía al usuario a una URL externa, finalizando la sesión de flujo. Propiedades:- URL de destino (estática o construida a partir de variables)
- Abrir en: misma pestaña o nueva pestaña
- Retraso opcional antes de la redirección.
Guion
Ejecuta JavaScript personalizado dentro del contexto de flujo. Propiedades:- Bloque de código JavaScript personalizado
- Acceso a todas las variables de flujo a través de
variables.variable_name - Puede configurar variables usando
setVariable('variable_name', value)
- Formato o análisis de cadenas complejas
- Cálculos matemáticos más allá de expresiones simples.
- Manipulación y formato de fechas.
- Llamar a las API del navegador (para flujos web)
Esperar
Introduce un retraso de tiempo antes de que el flujo avance al siguiente bloque. Propiedades:- Duración: segundos, minutos u horas.
- Mensaje opcional mostrado al usuario durante la espera.
Saltar
Teletransporta la ejecución del flujo a otro bloque dentro del mismo flujo, o al inicio de un flujo diferente (subflujo). Propiedades:- Destino: un ID de bloque específico dentro del flujo actual, o un flujo completo.
- Volver a un menú después de que se completa una ruta
- Vincular a un subflujo reutilizable (por ejemplo, un flujo de preguntas frecuentes compartido)
- Creación de bucles circulares para la lógica de reintento.
Webhook
Realiza una solicitud HTTP a una API o servicio externo. Propiedades:- Método: OBTENER, PUBLICAR, PONER, PATCH, BORRAR
- URL: punto final al que llamar (admite interpolación de variables)
- Encabezados: pares clave-valor (por ejemplo, Autorización, Tipo de contenido)
- Cuerpo: carga útil JSON (para métodos POST/PUT/PATCH)
- Mapeo de respuesta: extrae valores de la respuesta y los almacena en variables
- Envío de datos de leads a un CRM (HubSpot, Salesforce)
- Búsqueda de datos de usuario desde su propia base de datos.
- Activar un pedido en una plataforma de comercio electrónico
- Publicar datos en un webhook Zapier o Make
Enlace de flujo (subflujo)
Conecta este flujo a otro flujo, ejecutándolo como un subflujo anidado antes de regresar. Propiedades:- Seleccione el flujo objetivo de un menú desplegable
- Mapeo de variables: pasar variables del flujo actual al subflujo
- Una vez que se completa el subflujo, la ejecución regresa al siguiente bloque del flujo principal.
🔌 Integraciones: conectores nativos
Los bloques de integración son conectores prediseñados para herramientas y servicios populares. Abstraen la complejidad de las llamadas de webhooks sin formato con interfaces diseñadas específicamente.OpenAI (ChatGPT)
Genera respuestas impulsadas por IA utilizando la API OpenAI. Propiedades:- Selección de modelo (GPT-4o, GPT-4, GPT-3.5-turbo, etc.)
- Aviso del sistema (definir la personalidad y las limitaciones de la IA)
- Mensaje de usuario: la entrada para enviar al modelo (normalmente una variable que contiene el último mensaje del usuario)
- Variable de respuesta: donde se almacena la respuesta de la IA.
- Avanzado: temperatura, tokens máximos, modo historial de conversaciones
- Pase
{{user_message}}a OpenAI y muestre la respuesta en una burbuja de texto - Utilice un mensaje del sistema para limitar la IA a un dominio específico (por ejemplo, “Usted es un agente de servicio al cliente de Acme Corp. Solo responda preguntas sobre nuestros productos”).
- Habilite el modo de historial de conversaciones para mantener el contexto en múltiples intercambios
Hojas de cálculo de Google
Lee o escribe en una hoja de cálculo de Google Sheets. Propiedades:- Acción: Insertar fila, Actualizar fila, Obtener fila o Obtener todas las filas
- Hoja de cálculo y selección de hojas (desde su cuenta de Google conectada)
- Mapeo de columnas: asigna variables de flujo a columnas de hoja de cálculo
Requiere una cuenta de Google conectada en Configuración de flujo → Integraciones → Hojas de cálculo de Google.
Google Analytics
Envía un evento personalizado a su propiedad Google Analytics 4. Propiedades:- Nombre del evento
- Parámetros personalizados (pares clave-valor, admite variables)
flow_started— cuando un usuario comienza el flujolead_captured— cuando se recopila información de contactopayment_completed— cuando se realiza un pago exitosohuman_requested— cuando un usuario solicita un agente humano
Zapier / Hacer
Activa un webhook en Zapier o Make.com, conectando tu flujo a miles de aplicaciones de terceros. Propiedades:- URL de webhook (desde tu escenario Zap o Make)
- Carga útil de datos: seleccione qué variables enviar
Chatwoot
Transfiere la conversación a un agente humano en una bandeja de entrada de Chatwoot. Propiedades:- URL de la API de Chatwoot y token de acceso
- Bandeja de entrada para asignar la conversación
- Asignación de agente (opcional)
- Atributos personalizados para pasar a Chatwoot
Enviar correo electrónico
Envía un correo electrónico transaccional desde dentro del flujo. Propiedades:- Del nombre y dirección de correo electrónico
- Para abordar (soporta variables)
- Línea de asunto (admite variables)
- Cuerpo: HTML o texto plano (admite variables)
- Proveedor: credenciales SMTP o SendGrid configuradas desde Configuración de flujo
Acciones ZappWay
Realiza acciones específicas del ecosistema ZappWay. Acciones disponibles:- Actualizar las variables del contacto actual.
- Asignar una conversación a un agente específico
- Agregar o eliminar etiquetas de un contacto
- Activar una notificación a la bandeja de entrada de ZappWay
##Variables Las variables son la memoria de tu flujo. Almacenan información recopilada de los usuarios y datos recuperados de las integraciones, y se puede hacer referencia a ellos en cualquier parte de su flujo.
Uso de variables en texto
Para insertar una variable en cualquier campo de texto, escriba{{ y seleccione la variable en el menú desplegable de autocompletar:
Tipos de variables
Variables del sistema
ZappWay completa automáticamente un conjunto de variables integradas para cada sesión:Ramificación de flujo y lógica condicional
La mayoría de los flujos del mundo real no son lineales: se ramifican según las respuestas y condiciones de los usuarios.Rama simple (botones)
El patrón de ramificación más simple: cada opción de Botón se conecta a una ruta diferente.Rama basada en condiciones
Utilice el bloque Condición cuando la rama dependa de valores variables en lugar de clics directos en los botones.Condiciones anidadas
Las condiciones se pueden encadenar para manejar escenarios complejos:Publicar un flujo
Los cambios realizados en el editor se guardan automáticamente como borrador pero no son visibles para los usuarios finales hasta que los publique. Para publicar:- Termina de editar tu flujo
- Haga clic en Publicar en la esquina superior derecha del editor.
- Confirme el cuadro de diálogo si se le solicita.
- Tu flujo ahora está disponible en su URL pública.
Modo de vista previa
Antes de publicar, prueba tu flujo usando la función Vista previa incorporada:- Click the Preview button (play icon) in the toolbar
- A live preview of the flow opens in a side panel or new tab
- Interact with the flow exactly as an end user would
- All blocks execute normally in preview, including integrations
El modo de vista previa ejecuta acciones de integración reales (por ejemplo, escribirá en Google Sheets, enviará correos electrónicos y llamará a webhooks). Si desea realizar pruebas sin activar acciones reales, deshabilite temporalmente los bloques de integración haciendo clic derecho en ellos y seleccionando Desactivar.
Mejores prácticas
1. Comience con un mapa de conversación claro Antes de abrir el editor, dibuja la conversación en un papel o en una pizarra. Defina el objetivo de cada camino, los datos que necesita recopilar y los posibles puntos de decisión. Los flujos creados sin un plan se vuelven rápidamente inmantenibles. 2. Utilice botones en lugar de entradas de texto libres Siempre que la elección del usuario pueda limitarse a un conjunto conocido de opciones, utilice botones en lugar de entrada de texto. Esto produce datos más limpios, reduce los errores y simplifica la lógica condicional. 3. Maneje siempre lo inesperado Agregue un botón “Otro” o “Algo más” a cualquier menú y utilice opciones alternativas de entrada de texto para preguntas abiertas. Los usuarios siempre dirán algo que usted no anticipó; asegúrese de que el flujo lo maneje con elegancia. 4. Nombre las variables de forma clara y coherente Utilice nombres descriptivos, en minúsculas y separados por guiones bajos:user_email no email2 o Email. La denominación coherente facilita el mantenimiento de los flujos y reduce los errores en la lógica condicional.
5. Pruebe cada ruta antes de lanzarla
Utilice el modo de vista previa para recorrer cada rama de su flujo, no solo el camino feliz. Pruebe específicamente casos extremos: entradas vacías, correos electrónicos no válidos, respuestas de texto muy largas y clics inesperados en botones.
6. Mantenga los flujos enfocados
Un único flujo debe lograr un único objetivo (captura de clientes potenciales, clasificación de soporte, búsqueda de pedidos). Utilice los bloques Jump y Flow Link para modularizar flujos complejos en subflujos más pequeños y reutilizables.
Solución de problemas
Problema: el flujo no responde a la entrada del usuario
Síntomas:- Se envían mensajes pero el flujo no avanza
- El bloque de entrada parece estar atascado
- Verifique que el bloque de entrada tenga una variable asignada; es posible que los bloques sin una variable de destino no guarden las respuestas correctamente
- Verifique que la salida del bloque esté conectada al siguiente bloque.
- Obtenga una vista previa del flujo y verifique si hay errores en la consola del navegador.
- Asegúrese de que el canal esté conectado correctamente en Configuración → Canales
- Vuelva a publicar el flujo después de realizar correcciones.
Problema: el bloque de condición no se bifurca correctamente
Síntomas:- El flujo siempre toma la misma rama independientemente del valor de la variable.
- Comportamiento inesperado en lógica condicional.
- Utilice el bloque Script antes de la condición para registrar el valor de la variable:
console.log(variables.your_variable) - Verifique la distinción entre mayúsculas y minúsculas: “Pro” no es igual a “pro” en una comparación exactamente igual; usar minúsculas consistentemente
- Verifique que la variable realmente se esté configurando antes de que se ejecute el bloque de condición.
- Verifique si hay espacios en blanco iniciales o finales en el valor de la variable; use el bloque Script para recortarlo:
setVariable('plan', variables.plan.trim())
Problema: el bloque de webhook devuelve un error
Síntomas:- El bloque de webhook muestra un indicador de error rojo
- Los datos de integración no se envían ni reciben
- Haga clic en el bloque Webhook para ver la respuesta en el panel de propiedades; verifique el código de estado HTTP y el mensaje de error.
- Verifique que la URL sea correcta y accesible desde Internet.
- Verifique que los encabezados requeridos (por ejemplo,
Authorization: Bearer your_token) estén incluidos - Valide la estructura del cuerpo JSON usando una herramienta como JSONLint
- Pruebe el punto final del webhook de forma independiente utilizando Postman o curl antes de agregarlo al flujo.
Problema: el bloque OpenAI no genera respuestas
Síntomas:- El bloque de IA parece bloquearse o devuelve respuestas vacías
- Error “Clave API no válida” en el bloque
- Verifique que la clave API de OpenAI esté guardada correctamente en Configuración de flujo → Integraciones → OpenAI
- Verifique su cuenta OpenAI para detectar problemas de facturación: una cuota agotada hace que todas las llamadas API fallen
- Asegúrese de que el modelo seleccionado en el bloque esté disponible en su plan OpenAI
- Verifique que la variable de entrada del mensaje del usuario no esté vacía cuando se ejecuta el bloque.
Apoyo
¿Necesita ayuda para construir flujos? Comuníquese con el soporte técnico de ZappWay:- Correo electrónico: support@zappway.ai
- Incluye: nombre del flujo, capturas de pantalla de los bloques en cuestión y una descripción del comportamiento esperado versus real.
- ¿Qué tipo de bloque está causando el problema?
- El canal en el que estás probando.
- Si el problema ocurre en el modo de vista previa, en vivo o en ambos.
- Cualquier mensaje de error mostrado en el bloque o en la consola del navegador.
- API ZappFlux completa y referencia de bloque: docs.zappflux.zappway.ai
Última actualización: marzo de 2026 Plataforma: Generador de flujo ZappFlux | Panel de control de ZappWay

