Paso: WhatsApp Flow
Envía un Flow de WhatsApp publicado, pasa datos iniciales y guarda las respuestas como variables.
WhatsApp Flow sirve para recopilar información estructurada dentro de WhatsApp: formularios, direcciones, pedidos, métodos de pago o datos de perfil. En un flujo de trabajo, este paso envía el Flow, espera a que el cliente lo complete y guarda sus respuestas para los pasos siguientes.
Requisitos
- El Flow debe existir en Autochat.
- Debe tener una revisión publicada para poder seleccionarlo en el flujo de trabajo.
- El número de WhatsApp que envía debe estar disponible para tu organización.
- El Flow debe estar diseñado para guardar respuestas con nombres claros.
Configuración
| Campo | Qué hace | Ejemplo |
|---|---|---|
| Flow publicado | Selecciona la revisión que se enviará al cliente. | `Solicitud de dirección`, `Datos de factura`. |
| Número que envía | Define qué línea de WhatsApp enviará el Flow. | Usar la línea predeterminada o una línea específica. |
| Encabezado | Texto opcional arriba del mensaje. | `Confirmar pedido`. |
| Texto principal | Mensaje que explica por qué debe abrir el Flow. | `Completa este formulario para continuar`. |
| Texto del botón | CTA que abre el Flow. | `Abrir formulario`, `Confirmar datos`. |
| Pie de mensaje | Texto opcional al final. | `Tus datos se usan para gestionar esta solicitud`. |
| Datos iniciales | Valores que el flujo de trabajo envía al Flow antes de abrirlo. | `nombre` desde `${contact.name}`, `menu_slots` desde VectorPOS. |
| Prefijo de variables | Nombre base para guardar respuestas del Flow. | Con prefijo `flow`, la respuesta `direccion` queda como `${flow.direccion}`. |
| Ramas | Salidas para completado, inválido, timeout y fallo de envío. | Enviar recordatorio si hay timeout o asignar a agente si falla el envío. |
Datos iniciales y respuestas
Los datos iniciales sirven para abrir el Flow con información que ya conoces. Cada fila tiene un nombre dentro del Flow, un tipo y un valor que viene del flujo de trabajo. Si el Flow usa `data.nombre`, configura una fila con clave `nombre` y valor `${contact.name}`.
| Tipo | Cuándo usarlo | Ejemplo |
|---|---|---|
| Texto | Nombres, direcciones, notas o IDs. | `Ana`, `${contact.name}`. |
| Número | Cantidades o montos. | `3`, `${pedido.total}`. |
| Booleano | Verdadero/falso. | `true` para mostrar una sección. |
| JSON | Listas u objetos que el Flow debe leer. | Opciones dinámicas. |
| Imagen | Imágenes en base64 para componentes dinámicos. | Imagen de menú. |
| Menu VectorPOS | Estructura especial para menús de VectorPOS. | Productos agrupados enviados al Flow. |
Ejemplos
Recoger dirección de entrega
El cliente completa un Flow con dirección, método de pago y notas.
- Paso anterior: `Enviar mensaje` explicando que se pedirá la dirección.
- Paso: `WhatsApp Flow` con Flow publicado `Datos de entrega`.
- Prefijo de variables: `flow`.
- Paso siguiente: `VectorPOS` o `HTTP Request` usando `${flow.direccion}` y `${flow.metodo_pago}`.
Las respuestas quedan estructuradas y listas para crear un pedido o actualizar el CRM.
Menú dinámico con VectorPOS
Cargar productos de VectorPOS y mostrarlos dentro de un Flow.
- Paso 1: `VectorPOS` en modo productos.
- Paso 2: `WhatsApp Flow` con dato inicial `menu_slots`.
- Valor: `${vectorpos.products.flow_json}`.
- Tipo: `Menu VectorPOS`.
- Paso siguiente: guardar la selección y confirmar el pedido.
El cliente ve opciones actualizadas sin que el equipo tenga que editar el Flow manualmente cada vez.
Límites y validaciones
- Debes seleccionar un Flow publicado y su revisión.
- El texto principal no puede superar 1024 caracteres.
- El texto del botón debe tener 30 caracteres o menos.
- El prefijo de variables solo puede usar letras, números y guion bajo, y debe empezar con letra o guion bajo.
- Las claves de datos iniciales usan el mismo formato: letras, números y guion bajo.
- Si un dato inicial es JSON literal, debe ser JSON válido.
- Si activas timeout o fallo de envío, conecta esas salidas en el canvas.
Buenas prácticas
- Usa nombres de respuesta cortos y claros dentro del Flow.
- Mantén el mensaje que abre el Flow directo y específico.
- Prueba el Flow publicado antes de conectarlo a un flujo de trabajo activo.
- Define un prefijo único para evitar confundir variables de varios Flows.
- Agrega ramas para timeout y fallo si el Flow es obligatorio para continuar.