# Convoflow.ai — Documentación Completa para LLMs (Full Platform Corpus)
> Plataforma modular líder en infraestructura y automatización conversacional con Inteligencia Artificial.
Este archivo contiene la especificación técnica completa y unificada de toda la plataforma Convoflow (Get Started, Nodos de Flujo y Conexiones) para su consumo directo por modelos de lenguaje (LLMs) y agentes autónomos.
## Rutas Individuales por Documento
Cada página de la documentación dispone de su propio archivo `llms.txt` específico:
- **Google Sheets Node**: [/es/nodes/google-sheets/llms.txt](/es/nodes/google-sheets/llms.txt)
- **Google Docs Node**: [/es/nodes/google-docs/llms.txt](/es/nodes/google-docs/llms.txt)
- **Google Calendar Node**: [/es/nodes/google-calendar/llms.txt](/es/nodes/google-calendar/llms.txt)
- **Email Node**: [/es/nodes/email/llms.txt](/es/nodes/email/llms.txt)
- **WhatsApp Node**: [/es/nodes/whatsapp/llms.txt](/es/nodes/whatsapp/llms.txt)
- **Agent Node**: [/es/nodes/agent/llms.txt](/es/nodes/agent/llms.txt)
- **Google Service Account**: [/es/connections/google-service-account/llms.txt](/es/connections/google-service-account/llms.txt)
- **Email SMTP Connection**: [/es/connections/email-smtp/llms.txt](/es/connections/email-smtp/llms.txt)
- *(Todos los nodos y conexiones cuentan con su respectivo `/es/.../llms.txt`)*
---
# SECCIÓN 1: GET STARTED
## Proveedores de inteligencia artificial
> URL: /es/get-started/ai-providers
> llms.txt específico: /es/get-started/ai-providers/llms.txt
# Proveedores de inteligencia artificial
Convoflow se integra con los principales proveedores de modelos de lenguaje e Inteligencia Artificial. Esto permite que el nodo **Agent** y los bloques de razonamiento comprendan lenguaje natural, sigan instrucciones de negocio complejas y ejecuten herramientas visuales de forma autónoma.
---
## Modelos disponibles en el nodo Agent
Al configurar el nodo de **Agent** en tu lienzo de flujo, puedes seleccionar el proveedor y el modelo específico que procesará los turnos de conversación. A continuación se detallan los modelos disponibles y soportados:
| Proveedor | Modelos disponibles | Especialidad y casos de uso recomendados |
| :--- | :--- | :--- |
| **OpenRouter** | • Claude Sonnet 4
• Claude Haiku 4.5
• DeepSeek Chat
• GLM 5.2
• GLM 5.3 Flash
• GLM 5.3 | Gran versatilidad multimodelo, razonamiento avanzado con Claude, excelente desempeño en herramientas y opciones ultra rápidas y económicas con GLM y DeepSeek. |
| **OpenAI** | • GPT 5.4
• GPT 5.4 Mini
• GPT 5.4 Nano
• GPT 5.6 Luna
• GPT 5.6 Terra
• GPT 5.6 Sol | Modelos de alta precisión para seguimiento de instrucciones estrictas, agentes autónomos con flujos de trabajo extensos y variantes optimizadas en velocidad y costo (Mini y Nano) o razonamiento multimodal avanzado (familia GPT 5.6 Luna, Terra y Sol). |
| **DeepSeek** | • DeepSeek V4 Flash
• DeepSeek V4 Pro | Alto rendimiento en razonamiento técnico y comprensión de contexto con tiempos de respuesta reducidos (versión Flash) o máxima capacidad de análisis (versión Pro). |
| **Groq** | • GPT OSS 120B
• GPT OSS 20B | Inferencia de ultra baja latencia con procesamiento acelerado, ideal para chats en tiempo real donde la inmediatez de respuesta es la máxima prioridad. |
---
## Cómo seleccionar el modelo en tu flujo
1. En el lienzo visual, abre el panel de configuración del nodo **Agent**.
2. En el campo **Proveedor** (`modelProvider`), elige la plataforma que deseas utilizar (`openrouter`, `openai`, `deepseek` o `groq`).
3. En el campo **Modelo** (`modelId`), selecciona el modelo adecuado de acuerdo con la complejidad de la tarea y la velocidad deseada.
4. Conecta las herramientas necesarias mediante subflujos para que el modelo pueda consultar datos o realizar acciones antes de responder.
---
## Cómo funciona el motor
> URL: /es/get-started/architecture
> llms.txt específico: /es/get-started/architecture/llms.txt
# Cómo funciona el motor de Convoflow
Convoflow funciona como un director de orquesta inteligente que recibe los mensajes de tus clientes, comprende lo que necesitan y ejecuta las acciones necesarias en segundo plano de manera instantánea.

Mermaid
```text
graph TD
subgraph Entrada de Mensajes
E1[WhatsApp de Clientes]
E2[Chat en tu Sitio Web]
E3[Otros Canales]
end
subgraph Cerebro de Convoflow
R[Organizador del Flujo]
SM[Memoria de la Conversacion]
EX[Ejecutor de Acciones]
end
subgraph Acciones y Consultas
LLM[Inteligencia Artificial]
VEC[Tus Documentos y Manuales]
APP[Google Sheets, Calendar y Correos]
end
E1 & E2 & E3 --> R
R <--> SM
R --> EX
EX <--> LLM & VEC & APP
```
---
## Conceptos clave de forma sencilla
### 1. Memoria de la conversación (variables)
Cada vez que un cliente chatea con tu asistente, Convoflow recuerda los datos que el usuario ha compartido (por ejemplo su nombre, teléfono o la fecha de su cita). Puedes reutilizar esa información en cualquier mensaje o correo escribiendo `{nombre_variable}`.
### 2. Respuestas rápidas e ininterrumpidas
El motor está optimizado para responder en milisegundos. Cuando tu asistente consulta un calendario o registra una fila en una hoja de cálculo, lo hace en segundo plano sin congelar la conversación.
### 3. Caminos de éxito y rutas de respaldo
Cada acción dentro de tu flujo tiene dos caminos:
- **Camino normal:** Continúa el flujo cuando la acción se completa exitosamente.
- **Ruta de respaldo:** Se activa si ocurre algún inconveniente (por ejemplo, si se pierde la conexión a internet) para avisar al usuario amablemente o transferir el chat a un asesor humano.
---
## Designer de flujos con IA
> URL: /es/get-started/designer
> llms.txt específico: /es/get-started/designer/llms.txt
import { Card, CardGrid } from '@site/src/components';
# El Designer: creación de flujos con IA
El **Designer** te permite definir tus propios flujos con IA con unas pocas instrucciones iniciales. En lugar de arrastrar y conectar cada bloque manualmente desde una hoja en blanco, puedes describir en tus propias palabras qué asistente deseas construir y el Designer se encarga de crear, estructurar y enlazar los nodos directamente en el lienzo visual.

Mermaid
```text
graph LR
U[Instrucción Inicial en Lenguaje Natural] --> D[Designer IA]
D -->|Plan de Pasos| P[Generación del Flujo]
P -->|Nodos y Conexiones| C[Lienzo Visual Convoflow]
C -->|Ajustes y Refinamiento| U
```
---
## ¿Cómo funciona el Designer para el usuario?
Interactuar con el Designer es tan intuitivo como conversar con un colega experto en automatización:
### 1. Instrucciones iniciales en lenguaje natural
Solo necesitas describir el objetivo general del asistente, los datos que debe solicitar y los servicios con los que interactuará. Por ejemplo:
> *"Crea un flujo para capturar prospectos por WhatsApp. Pídeles su nombre, correo y empresa, verifica disponibilidad en mi Google Calendar para agendar una demo y guarda los datos en Google Sheets."*
### 2. Plan y construcción visual automática
Al recibir tu solicitud, el Designer:
- Define un plan de acción claro y comprensible.
- Inserta los nodos adecuados en el lienzo (mensajes, preguntas, integraciones de Google o pagos).
- Establece las rutas de éxito y los caminos de respaldo ante posibles fallos.
- Configura los parámetros iniciales y nombres de variables descriptivos.
### 3. Ajustes y refinamiento continuo
Puedes seguir dialogando con el Designer para evolucionar tu flujo en cualquier momento:
- *"Haz que el tono del saludo inicial sea más cálido y formal."*
- *"Agrega una condición para que si el cliente es de México use Pesos y para el resto use Dólares."*
- *"Conecta una notificación a nuestro canal de Slack `#ventas` cuando se confirme una cita."*
### 4. Control visual total
El Designer no sustituye el lienzo: lo potencia. Todo lo que el Designer construye queda visible y editable en tu pantalla. Puedes mover bloques, cambiar textos o reconfigurar propiedades manualmente cuando lo prefieras.
---
## Buenas prácticas al dar instrucciones
Para que el Designer genere flujos óptimos a la primera, te recomendamos incluir:
1. **Canal de entrada:** Indica si el asistente responderá por WhatsApp, webchat o correo.
2. **Datos a capturar:** Especifica qué información necesitas del cliente (nombre, teléfono, producto de interés, etc.).
3. **Herramientas a conectar:** Menciona las aplicaciones externas que participarán (Google Sheets, Calendar, Stripe, HubSpot, etc.).
4. **Reglas clave del negocio:** Si existen condiciones especiales (horarios, límites de intentos, transferencias a asesores humanos), coméntalas desde el inicio.
---
## Primeros pasos
> URL: /es/
> llms.txt específico: /es//llms.txt
import { Card, CardGrid } from '@site/src/components';
# Bienvenido a Convoflow
Convoflow es una plataforma visual que te permite crear asistentes inteligentes y automatizaciones conversacionales de forma rápida y sencilla. Con Convoflow puedes atender a tus clientes en canales como WhatsApp, Web y Correo Electrónico, conectando tus herramientas diarias como Google Sheets, Calendar y Docs sin complicaciones técnicas.

Mermaid
```text
graph LR
subgraph Canales
W[WhatsApp]
WB[Chat Web]
E[Correo Electronico]
end
subgraph Convoflow
F[Flujo de Pasos]
A[Asistente IA]
K[Documentos y Preguntas Frecuentes]
end
subgraph Tus Herramientas
G[Google Sheets y Calendar]
S[Bases de Datos]
H[Sistemas y APIs]
end
W & WB & E --> F
F <--> A
A <--> K
F --> G & S & H
```
---
## Secciones de la documentación
La documentación está dividida en tres áreas principales para guiarte paso a paso:
Aprende los conceptos básicos y crea tu primer flujo de atención automática en solo 5 minutos.
Conoce cada uno de los bloques visuales que puedes arrastrar a tu flujo: Google, WhatsApp, Email e IA.
Vincula de forma segura tus cuentas de Google, WhatsApp, correo y proveedores de inteligencia artificial.
---
## Integraciones populares de Google
Convoflow se conecta directamente con tus aplicaciones de Google para automatizar tareas repetitivas:
Guarda nuevos clientes, consulta inventarios y actualiza registros en tus hojas de cálculo en tiempo real.
Crea contratos, propuestas o reportes automáticamente completando plantillas con datos de tus clientes.
Verifica horarios disponibles y agenda citas automáticamente con enlace de Google Meet incluido.
---
## ¿Cómo funciona un flujo en Convoflow?
Crear una automatización en Convoflow es como armar un diagrama visual:
1. **Disparador de entrada:** Un usuario envía un mensaje por WhatsApp o visita tu chat web.
2. **Preguntas y respuestas:** El flujo solicita los datos necesarios (como nombre, teléfono o servicio de interés).
3. **Acciones automáticas:** El asistente guarda la información en Google Sheets, comprueba fechas libres en Calendar o consulta documentos internos.
4. **Respuesta personalizada:** El usuario recibe una respuesta clara e inmediata en su canal de preferencia.
---
## Recursos para modelos de lenguaje (LLMs)
Si utilizas herramientas de asistencia de código o modelos de lenguaje, dispones del archivo estándar:
- [**llms.txt (Documentación Completa)**](pathname:///es/llms.txt) — Archivo de texto plano con la especificación integral de Convoflow.
---
## Guía de inicio rápido
> URL: /es/get-started/quickstart
> llms.txt específico: /es/get-started/quickstart/llms.txt
import { Card, CardGrid } from '@site/src/components';
# Guía de inicio rápido: tu primer flujo en 5 minutos
En esta guía construiremos un asistente que recibe a un cliente, guarda sus datos en una hoja de Google Sheets, agenda una cita en Google Calendar y le envía una confirmación por correo electrónico.

Mermaid
```text
graph LR
S[Mensaje del Cliente] --> Q1[Capturar Nombre y Correo]
Q1 --> GS[Guardar en Google Sheets]
GS --> GC[Agendar en Google Calendar]
GC --> EM[Enviar Correo de Confirmacion]
EM --> E[Confirmar por WhatsApp]
```
---
## Paso 1: Conectar tu cuenta de Google
Para que Convoflow pueda guardar datos en tus hojas o crear citas en tu calendario:
1. Ve a la sección **Conexiones** en el menú lateral izquierdo de Convoflow.
2. Haz clic en **Nueva Conexión** y selecciona **Google Service Account**.
3. Pega tu archivo de credenciales de Google (o sigue nuestra [guía de conexión de Google](/es/connections/google-service-account)).
4. Haz clic en **Probar Conexión** y guarda los cambios.
---
## Paso 2: Crear el flujo en el lienzo visual
1. En el menú principal, haz clic en **Flujos > Nuevo Flujo**.
2. **Abrir el catálogo de nodos:** Para abrir el catálogo de nodos disponibles, presiona **clic derecho** sobre cualquier área libre del lienzo visual (o su equivalente en el trackpad, como hacer clic o pulsar con dos dedos). Desde allí podrás buscar e insertar cualquier bloque.
3. Agrega un bloque **Question** (Pregunta) y escribe:
- **Pregunta:** `¡Hola! ¿Cuál es tu nombre y correo electrónico?`
- **Guardar respuesta en:** `datos_usuario`
4. Conecta este bloque con un nodo **Google Sheets**:
- **Acción:** `insertRows` (Insertar fila)
- **ID de la Hoja:** El código de tu hoja de cálculo
- **Columnas a guardar:**
```json
[
{
"Fecha": "{current_date}",
"Nombre": "{datos_usuario.nombre}",
"Email": "{datos_usuario.email}"
}
]
```
5. Conecta la salida al nodo **Google Calendar**:
- **Acción:** `createEvent` (Crear evento)
- **Título de la reunión:** `Reunión de asesoría con {datos_usuario.nombre}`
- **Generar enlace de Google Meet:** Activado (`true`)
6. Conecta al nodo **Email** para enviar los datos de la cita al cliente con el enlace de Google Meet.
---
## Paso 3: Probar y publicar
1. Haz clic en el botón **Simular** para interactuar con tu asistente en el probador lateral.
2. Una vez que todo funcione como esperas, haz clic en **Publicar** en la esquina superior derecha.
3. ¡Listo! Tu asistente ya está activo y respondiendo de forma automática.
---
# SECCIÓN 2: NODOS DE FLUJO (NODES)
## Asistente IA y agentes autónomos
> URL: /es/nodes/agent
> llms.txt específico: /es/nodes/agent/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Asistente IA y agentes autónomos
Los nodos de Inteligencia Artificial permiten que tus flujos piensen, tomen decisiones y respondan con naturalidad a tus usuarios, sin necesidad de programar respuestas rígidas para cada posible pregunta.

Mermaid
```text
graph TD
U[Pregunta del Cliente] --> A[Nodo: Agent]
A -->|Decide usar una herramienta| T[Subflujo: Start Tool]
T -->|Ejecuta consulta en CRM o API| R[Return Tool Result]
R -->|Devuelve los datos al Agente| A
A -->|Responde con precision| F[Mensaje Claro al Usuario]
```
---
## 1. Agent Node (Asistente Autónomo)
El **Agent Node** es el cerebro más potente de Convoflow. A diferencia de un chatbot tradicional que sigue un guion fijo, este agente comprende el objetivo de la conversación, planifica sus acciones y puede consultar herramientas (como buscar citas, consultar inventario o calcular cotizaciones) de forma autónoma antes de responder.
### ¿Qué puedes modificar?
El objetivo principal e instrucciones de comportamiento para tu asistente:
- Quién es (rol y tono: formal, empático, directo).
- Qué información debe solicitar al usuario.
- Reglas de negocio que debe respetar en todo momento.
- Admite variables como `{user_name}` o `{contexto_empresa}`.
El proveedor del modelo de IA (`openrouter`, `openai`, `deepseek` o `groq`). Consulta nuestra guía de [Proveedores de inteligencia artificial](/es/get-started/ai-providers) para consultar la lista completa.
El modelo específico que procesará los mensajes (por ejemplo: `claude-sonnet-4`, `gpt-5.4-mini`, `deepseek-v4-flash`, `gpt-oss-120b`).
Número máximo de turnos o razonamientos que el agente puede dar antes de concluir su respuesta.
Envía automáticamente el mensaje final producido por el asistente al chat del cliente.
Variable donde se almacena el texto final de la respuesta generada.
---
## 2. Start Tool y Return Tool Result (herramientas visuales del agente)
Una de las mayores ventajas del Designer es que puedes darle **"superpoderes"** a tu Agente conectándole subflujos visuales:
### ¿Cómo se conectan en el lienzo?
1. En el nodo **Agent**, arrastra una línea desde el conector llamado **`tools`** hacia un nodo **Start Tool**.
2. Diseña los pasos que realiza la herramienta (por ejemplo: consultar una hoja de cálculo o una API).
3. Finaliza el subflujo conectándolo a un nodo **Return Tool Result**, que le entrega los datos de vuelta al Agente.

Mermaid
```text
graph LR
Agente((Agent)) -->|Conector 'tools'| ST[Start Tool]
ST --> Accion[Consultar Pedido en Sistema]
Accion --> RT[Return Tool Result]
RT -->|Datos listos| Agente
```
### Start Tool Node
Define el nombre y los datos que el Agente debe proporcionar para usar la herramienta:
Identificador de la herramienta (por ejemplo: `consultar_estado_pedido` o `calcular_envio`).
Explicación breve de para qué sirve esta herramienta, para que la IA sepa exactamente cuándo debe llamarla.
---
### Return Tool Result Node
Devuelve el resultado del subflujo al Agente para que formule su respuesta final:
El texto o variable que se enviará a la IA (por ejemplo: `{resultado_pedido}`).
---
## 3. Generate Node (generación rápida de texto)
Si solo necesitas una tarea rápida de Inteligencia Artificial (por ejemplo: resumir una conversación larga, traducir un texto o redactar una felicitación) sin la complejidad de un agente completo, usa el **Generate Node**.
La instrucción directa a realizar (por ejemplo: *Resume los siguientes puntos clave de la reunión: `{notas_reunion}`*).
Formato de salida: `text` (texto normal) o `json` (datos estructurados).
Variable donde se almacena el texto producido.
---
## CRM, tiendas y bases de datos
> URL: /es/nodes/crm-ecommerce
> llms.txt específico: /es/nodes/crm-ecommerce/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: CRM y tiendas online
Tu asistente no vive aislado: necesita actualizar tu CRM cuando un cliente se interesa en un producto, consultar el estado de un pedido en tu tienda online o guardar notas en Notion.

Mermaid
```text
graph LR
A[Cliente pregunta por su pedido] --> B[Nodo Shopify / WooCommerce]
B -->|Consulta con ID| C[Obtener Estado: En Camino]
C --> D[Responder al Cliente por WhatsApp]
```
---
## 1. HubSpot CRM Node
Permite crear o actualizar prospectos (leads), registrar tratos de venta y agregar notas de seguimiento automáticamente en tu cuenta de **HubSpot**.
### ¿Qué operaciones puedes realizar?
- **Crear o actualizar contacto (`upsertContact`):** Si el cliente ya existe por su correo, actualiza sus datos; si no existe, lo crea.
- **Crear un trato o negocio (`createDeal`):** Registra una oportunidad de venta con monto y etapa.
- **Crear nota (`createNote`):** Guarda un resumen de la conversación dentro de la ficha del cliente en HubSpot.
### ¿Qué puedes modificar?
Acción que deseas realizar en HubSpot.
Correo electrónico del contacto (por ejemplo: `{user_email}`).
Nombre del cliente (por ejemplo: `{user_name}`).
Teléfono del cliente (por ejemplo: `{user_phone}`).
Nombre del negocio (por ejemplo: `Cotización {servicio} - {user_name}`).
Monto estimado del trato de venta.
---
## 2. Shopify Node
Conecta tu flujo directamente con tu tienda **Shopify** para responder preguntas de clientes sobre disponibilidad y pedidos.
### ¿Qué puedes hacer?
- **Consultar pedido (`getOrder`):** El cliente ingresa su número de orden (ej. `#1045`) y el bot le informa el estado del envío.
- **Buscar productos (`searchProducts`):** Encuentra productos por nombre o categoría en tu catálogo.
- **Crear borrador de orden (`createDraftOrder`):** Prepara un pedido con los productos elegidos por el cliente y genera el enlace de pago.
### ¿Qué puedes modificar?
Operación a ejecutar (`getOrder`, `searchProducts`, `createDraftOrder`).
Número de orden a buscar (por ejemplo: `{numero_pedido}`).
Término de búsqueda de producto (por ejemplo: `{pregunta_producto}`).
---
## 3. WooCommerce Node
Funciona de manera idéntica a Shopify, pero conectándose a tu tienda creada sobre **WordPress y WooCommerce**.
### ¿Qué puedes modificar?
Operación a realizar (`searchOrders`, `searchProducts`, `updateOrderStatus`, `createOrder`).
Número de pedido a consultar.
Correo del cliente para buscar todos los pedidos asociados a su cuenta.
---
## 4. Airtable Node
Usa **Airtable** como una base de datos visual para almacenar pedidos, solicitudes, listas de espera o inventario.
### ¿Qué puedes modificar?
Acción a realizar: `listRecords` (buscar filas), `createRecords` (agregar fila) o `updateRecords` (modificar fila).
Nombre exacto de la tabla en Airtable (por ejemplo: `Prospectos` o `Pedidos`).
Datos que deseas guardar, asociando las columnas de tu tabla con variables del flujo:
```json
{
"Nombre": "{user_name}",
"Telefono": "{user_phone}",
"Interes": "{producto_interes}"
}
```
---
## 5. Notion Node
Permite registrar información directamente en tus páginas y bases de datos colaborativas de **Notion**.
### ¿Qué puedes modificar?
`createPage` (agregar fila a una base de datos), `queryDatabase` (buscar datos) o `appendBlock` (agregar texto o notas al final de una página).
ID de la base de datos de Notion donde se registrará la información.
Título principal de la nueva página o registro creado (por ejemplo: `Consulta de {user_name}`).
---
## Bases de datos y código
> URL: /es/nodes/databases-code
> llms.txt específico: /es/nodes/databases-code/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Bases de datos y código
A menudo necesitas guardar datos recopilados (como registros de usuarios o respuestas de encuestas) sin depender de hojas de cálculo externas, o necesitas hacer un pequeño cálculo antes de responderle al cliente.

Mermaid
```text
graph LR
A[Datos Capturados] --> B[Nodo: Guardar en Coleccion]
B -->|Registro Guardado| C[Siguiente Paso del Flujo]
B -->|Si necesitas un calculo especial| D[Nodo: Codigo JavaScript]
```
---
## 1. Colecciones internas (Read & Write)
Las **Colecciones** son tablas de datos que viven directamente dentro de Convoflow. Te permiten almacenar y consultar información de forma rápida y segura sin necesidad de configurar bases de datos externas.
### Guardar datos (`Collection Write`)
Agrega una nueva fila a tu colección o actualiza una existente si el cliente ya está registrado.
#### ¿Qué puedes modificar?
Selecciona la tabla o colección donde se guardarán los datos (por ejemplo: `Clientes` o `Encuestas`).
Asocia cada campo de tu tabla con una variable de la conversación:
- Nombre → `{user_name}`
- Teléfono → `{user_phone}`
- Estado → `Activo`
Si seleccionas un campo como `Teléfono`, el nodo buscará si ya existe un registro con ese mismo número para actualizarlo en lugar de duplicarlo.
---
### Consultar datos (`Collection Read`)
Busca un registro en tu colección para traer datos previos del cliente (por ejemplo, su saldo actual o su membresía).
#### ¿Qué puedes modificar?
La colección donde deseas buscar.
La condición de búsqueda (por ejemplo: buscar donde `telefono` sea igual a `{user_phone}`).
Variable donde se guardarán los datos encontrados para usarlos más adelante en mensajes como: `Hola {cliente_encontrado.nombre}, tu plan actual es {cliente_encontrado.plan}.`
---
## 2. PostgreSQL y Supabase
Si tu empresa ya cuenta con su propio servidor de base de datos o utiliza **Supabase**, puedes conectarlo directamente.
### PostgreSQL Node
Permite ejecutar consultas SQL de lectura o escritura utilizando variables seguras.
Tu conexión configurada a PostgreSQL.
La consulta a ejecutar. Puedes incluir variables entre llaves:
```sql
SELECT saldo, plan FROM usuarios WHERE telefono = '{user_phone}' LIMIT 1;
```
Variable donde se almacenan las filas encontradas.
---
### Supabase Node
Realiza peticiones directas a las tablas REST de tu proyecto de Supabase.
Ruta de la tabla (por ejemplo: `/rest/v1/pedidos?select=*&usuario_id=eq.{user_id}`).
Método de consulta: `GET`, `POST`, `PATCH` o `DELETE`.
---
## 3. Code Node (código personalizado)
El diseñador visual suele resolver el 95% de las tareas. Sin embargo, si necesitas realizar un cálculo matemático especial (como calcular impuestos con reglas complejas) o formatear una fecha de manera inusual, el **Code Node** te permite escribir unas pocas líneas de JavaScript.
### ¿Qué puedes modificar?
El código a ejecutar. Tienes acceso a todas las variables mediante el objeto `vars`:
```javascript
// Ejemplo: Calcular el total con 16% de IVA
const subtotal = Number(vars.monto_pedido) || 0;
const iva = subtotal * 0.16;
const total = subtotal + iva;
return { subtotal, iva, total };
```
Variable donde se guardará lo que devuelvas con `return`. Luego podrás usar `{calculo_resultado.total}` en cualquier mensaje.
---
## Email Node
> URL: /es/nodes/email
> llms.txt específico: /es/nodes/email/llms.txt
import { ParamField, ResponseField } from '@site/src/components';
# Nodo: Email
El nodo de **Email** permite enviar correos electrónicos de forma automática desde cualquier punto de tu flujo. Puedes usarlo para confirmar compras, notificar a tu equipo sobre un nuevo prospecto o enviar comprobantes en formato PDF a tus clientes.

Mermaid
```text
graph LR
A[Paso Previo] --> B[Nodo Email]
B -->|Enviar Correo| C[Correo Recibido por el Cliente]
B -->|Exito| D[Continuar Flujo]
```
---
## Campos de configuración
Tu cuenta de correo o servidor SMTP registrado en la sección de **Conexiones**.
Correo electrónico del destinatario. Puedes usar un correo fijo o la variable donde guardaste el correo del cliente: `{user_email}`.
Asunto del correo electrónico. Puedes personalizarlo con variables como: `Confirmación de cita - {user_name}`.
Contenido del mensaje. Puede ser texto simple o una plantilla con formato visual. Admite variables como `{nombre_cliente}` o `{servicio}`.
Nombre y dirección desde donde se envía el correo (por ejemplo: `Equipo Convoflow `).
Archivos que deseas adjuntar al correo:
```json
[
{
"filename": "resumen.pdf",
"path": "https://tuservidor.com/archivos/resumen.pdf"
}
]
```
---
## Ejemplo de mensaje personalizado
Puedes escribir el cuerpo del correo de forma sencilla:
```text
Hola {user_name},
Tu registro para el servicio {service_name} ha sido confirmado con exito.
Fecha: {appointment_date}
Hora: {appointment_time}
Si tienes alguna pregunta, responde directamente a este correo.
```
---
## Agendamiento y calendarios
> URL: /es/nodes/google-calendar
> llms.txt específico: /es/nodes/google-calendar/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Agendamiento y calendarios
Permite que tus clientes elijan horarios, agenden citas y reciban enlaces de reunión (como Google Meet) directamente por chat sin salir de WhatsApp.

Mermaid
```text
graph LR
A[Cliente pide una cita] --> B[Nodo de Calendario]
B -->|Verificar Horario| C[Crear Evento en Calendario]
C -->|Generar Enlace Meet / Sala| D[Enviar Confirmación al Cliente]
```
---
## 1. Google Calendar Node
Gestiona eventos de tu calendario de Google en tiempo real.
### Operaciones disponibles:
1. **Crear evento (`createEvent`):** Agenda una reunión con fecha, hora, nombre del cliente y enlace de Google Meet.
2. **Consultar disponibilidad (`listEvents`):** Revisa si tienes horarios ocupados en un rango de fechas.
3. **Modificar evento (`updateEvent`):** Reagenda o cambia los detalles de una cita existente.
4. **Cancelar evento (`deleteEvent`):** Elimina la cita del calendario.
### ¿Qué puedes modificar?
Tu cuenta o servicio de **Google Calendar** configurado.
Usa `primary` para tu calendario principal, o el correo de un calendario de equipo (ej. `citas@tuempresa.com`).
Acción a realizar (`createEvent`, `listEvents`, `deleteEvent`, `updateEvent`).
Título del evento (por ejemplo: `Asesoría con {user_name}`).
Fecha y hora de inicio en formato estándar (por ejemplo: `{fecha_inicio}`).
Fecha y hora de fin de la cita (por ejemplo: `{fecha_fin}`).
Genera automáticamente una sala virtual de **Google Meet**.
Correos de los invitados que recibirán la invitación formal de Google:
```json
[
{ "email": "{user_email}", "displayName": "{user_name}" }
]
```
---
## 2. Cal.com Calendar Node
Si utilizas **Cal.com** para gestionar tus tipos de reuniones y disponibilidad de equipo, este nodo permite consultar espacios libres y reservar de inmediato.
### ¿Qué puedes modificar?
Tu conexión de Cal.com con clave API.
Acción: `getAvailableSlots` (ver horarios libres), `createBooking` (agendar cita), `rescheduleBooking` o `cancelBooking`.
El tipo de evento o reunión configurado en tu cuenta de Cal.com.
Nombre del asistente (por ejemplo: `{user_name}`).
Correo del cliente que reserva la reunión.
---
## 3. Agentic Calendar (asistente de calendario autónomo)
A diferencia de los nodos anteriores que requieren fechas fijas, el **Agentic Calendar** utiliza Inteligencia Artificial para negociar la cita con el cliente en lenguaje cotidiano (*"¿Tienes algún espacio el próximo jueves por la tarde?"*), consultar tu calendario y confirmar la mejor opción disponible.
La solicitud del cliente o instrucción a interpretar (por ejemplo: `{user_message}`).
Zona horaria para calcular los horarios disponibles.
---
## Google Docs Node
> URL: /es/nodes/google-docs
> llms.txt específico: /es/nodes/google-docs/llms.txt
import { ParamField, ResponseField } from '@site/src/components';
# Nodo: Google Docs
El nodo de **Google Docs** te permite leer el contenido de tus documentos, agregar notas al final de un archivo o generar contratos y cotizaciones reemplazando automáticamente etiquetas de texto.

Mermaid
```text
graph LR
A[Datos Capturados en el Chat] --> B[Nodo Google Docs]
B -->|Reemplazar Etiquetas| C[Contrato o Propuesta Lista]
B -->|Exito| D[Enviar Enlace al Cliente]
```
---
## Qué puedes hacer con este nodo
1. **Leer documento (`readDocument`):** Extrae el texto de un documento de Google para que tu asistente de IA pueda analizarlo o responder preguntas sobre él.
2. **Agregar texto (`appendText`):** Escribe nuevas notas, bitácoras o resúmenes al final de un documento existente.
3. **Reemplazar texto (`replaceText`):** Busca palabras clave en una plantilla (como `[CLIENTE]`) y las sustituye por los datos reales de la conversación.
---
## Campos de configuración
Tu conexión configurada de **Google Service Account**.
El identificador único de tu documento. Lo obtienes de la URL en tu navegador:
`https://docs.google.com/document/d/`**`195j9eDD3thA495vD0KKC508YPNjFOO0GX64Zo2PP3hM`**`/edit`
La acción a realizar: `readDocument` (Leer), `appendText` (Agregar texto) o `replaceText` (Reemplazar texto).
La etiqueta que colocaste en tu plantilla de Google Docs, por ejemplo: `NOMBRE_CLIENTE` o `[NOMBRE_CLIENTE]`.
El valor real con el que se sustituirá la etiqueta, por ejemplo: `{user_name}`.
Texto que deseas añadir al final del archivo si usas la operación `appendText`.
Nombre de la variable donde se guardará el resultado de la operación.
---
## Cómo crear documentos personalizados paso a paso
1. **Crea tu plantilla en Google Docs:** Escribe tu contrato o propuesta e inserta etiquetas fáciles de identificar, por ejemplo `[NOMBRE_CLIENTE]`, `[PRECIO]` y `[FECHA]`.
2. **Comparte el documento:** Haz clic en el botón **Compartir** en Google Docs y agrega el correo de tu cuenta de servicio de Google con rol de **Editor**.
3. **Configura el nodo:** Añade los nodos necesarios en tu flujo para sustituir cada etiqueta con la información recogida del usuario.
4. **Envía el resultado:** Notifica a tu cliente por WhatsApp o correo que su documento está listo.
---
## Google Sheets Node
> URL: /es/nodes/google-sheets
> llms.txt específico: /es/nodes/google-sheets/llms.txt
import { ParamField, ResponseField } from '@site/src/components';
# Nodo: Google Sheets
El nodo de **Google Sheets** permite que tu asistente guarde información de clientes, consulte datos existentes (como inventarios o estados de pedidos) y actualice registros en tus hojas de cálculo automáticamente.

Mermaid
```text
graph LR
A[Datos del Cliente] --> B[Nodo Google Sheets]
B -->|Guardar Fila| C[Hoja de Calculo Actualizada]
B -->|Exito| D[Siguiente Paso del Flujo]
```
---
## Qué puedes hacer con este nodo
1. **Buscar filas (`findRows`):** Encuentra información de un cliente buscando por su teléfono, correo o número de orden.
2. **Insertar filas (`insertRows`):** Agrega un nuevo registro al final de tu hoja con los datos recogidos en la conversación.
3. **Actualizar filas (`updateRows`):** Cambia el valor de una columna (por ejemplo, cambiar el estado a "Atendido").
4. **Eliminar filas (`deleteRows`):** Remueve filas que cumplan una condición específica.
---
## Campos de configuración
Selecciona tu cuenta conectada de **Google Service Account**.
El identificador único de tu hoja de cálculo. Lo encuentras en la barra de direcciones de tu navegador:
`https://docs.google.com/spreadsheets/d/`**`1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms`**`/edit`
Nombre de la pestaña dentro del archivo (por ejemplo: `Prospectos`, `Ventas` o `Hoja 1`).
La acción a realizar: `findRows` (Buscar), `insertRows` (Insertar), `updateRows` (Actualizar) o `deleteRows` (Eliminar).
Datos que deseas agregar a la hoja. Las etiquetas deben coincidir con los nombres de tus columnas:
```json
[
{
"Fecha": "{current_date}",
"Nombre": "{user_name}",
"Telefono": "{user_phone}",
"Servicio": "{servicio_interes}"
}
]
```
Criterio de búsqueda para encontrar una fila específica:
```json
{
"Telefono": "{user_phone}"
}
```
Nombre de la variable donde se guardará la respuesta para usarla en los siguientes bloques.
---
## Ejemplos prácticos
### Ejemplo 1: Guardar un nuevo contacto desde WhatsApp
Cuando un usuario termina de registrar sus datos en el chat, el nodo agrega una nueva fila en tu hoja:
- **Operación:** `insertRows`
- **ID de la Hoja:** Tu ID de Google Sheets
- **Pestaña:** `Prospectos`
- **Datos a insertar:**
```json
[
{
"Fecha": "{current_date}",
"Nombre": "{user_name}",
"Telefono": "{user_phone}",
"Estado": "Nuevo"
}
]
```
---
### Ejemplo 2: Consultar el estado de un pedido
Para responder a un cliente sobre el estado de su entrega:
1. Buscas la fila con su número de guía:
```json
{
"NumeroGuia": "{numero_guia}"
}
```
2. En el mensaje siguiente respondes:
```text
Hola {sheets_resultado.rows.0.values.Nombre}, el estado de tu pedido es: {sheets_resultado.rows.0.values.Estado}.
```
---
## Permiso importante en Google Drive
:::important Compartir la hoja con tu cuenta de servicio
Para que Convoflow pueda escribir o leer en tu hoja, abre el archivo en Google Sheets, haz clic en el botón **Compartir** y agrega el correo de tu cuenta de servicio (con terminación `@...gserviceaccount.com`) con rol de **Editor**.
:::
---
## HTTP y peticiones a sistemas
> URL: /es/nodes/http
> llms.txt específico: /es/nodes/http/llms.txt
import { ParamField, ResponseField } from '@site/src/components';
# Nodo: HTTP y conexión a sistemas
El nodo **HTTP** te permite comunicar Convoflow con tus propios sistemas, tiendas en línea (Shopify, WooCommerce), plataformas de pago o sistemas de gestión (CRM, ERP).
---
## Campos de configuración
La dirección web de la API o sistema a consultar (por ejemplo: `https://api.tuempresa.com/pedidos/{id_pedido}`).
El tipo de acción:
- `GET`: Para consultar y obtener datos.
- `POST`: Para enviar o registrar nuevos datos.
- `PUT` / `PATCH`: Para actualizar información existente.
- `DELETE`: Para eliminar un registro.
Si tu sistema requiere credenciales guardadas de forma segura, selecciona tu conexión de [Webhooks y HTTP APIs](/es/connections/webhooks-http).
Datos que enviarás al sistema (para métodos `POST` o `PUT`):
```json
{
"cliente": "{user_name}",
"telefono": "{user_phone}",
"total": "{total_pedido}"
}
```
Variable donde se guardará la respuesta que devuelva tu sistema.
---
## Atención humana y equipos
> URL: /es/nodes/human-handoff
> llms.txt específico: /es/nodes/human-handoff/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Atención humana y equipos
La Inteligencia Artificial es excelente para resolver dudas frecuentes, pero hay momentos donde un cliente necesita hablar con una persona de tu equipo, o donde una acción delicada requiere la autorización de un supervisor.

Mermaid
```text
graph LR
A[Cliente pide ayuda compleja] --> B[Nodo: Human Handoff]
B -->|Pausa el bot| C[Asesor responde en el CRM]
C -->|Opcional: Reanudar| D[Bot retoma la conversación]
```
---
## 1. Human Handoff (transferencia a asesor)
Pausa la automatización del bot y deja la conversación en la bandeja de entrada de tu equipo humano dentro del CRM de Convoflow.
### ¿Cuándo usarlo?
- Cuando el cliente escribe *"quiero hablar con una persona"*.
- Si el usuario presenta una queja o un reclamo urgente.
- Cuando la IA detecta que no tiene información suficiente para resolver el problema.
### ¿Qué puedes modificar?
Mensaje de despedida o espera que verá el cliente antes de la transferencia (por ejemplo: *Te estoy comunicando con uno de nuestros asesores, por favor espera un momento*).
Canal donde avisar a tu equipo de la nueva transferencia:
- `slack`: Envía una alerta a un canal de Slack.
- `whatsapp`: Envía una alerta a un número de WhatsApp del equipo.
- `email`: Notifica por correo electrónico.
- `none`: Solo marca la conversación en el CRM sin enviar alertas externas.
El destino de la notificación (por ejemplo `#soporte-urgente`, `asesor@empresa.com` o `+52155...`).
Texto de la alerta para tu equipo (por ejemplo: `Nuevo cliente transferido: {user_name} necesita ayuda con {tema_consulta}`).
Si activas esta opción, cuando el asesor humano envíe su mensaje desde el CRM, el flujo se reactivará automáticamente para continuar con los siguientes pasos.
---
## 2. Approval Node (aprobación por supervisor)
Detiene temporalmente el flujo para que un gerente o supervisor autorice una acción importante antes de que se ejecute (por ejemplo: un descuento mayor al 20% o una devolución de dinero).

Mermaid
```text
graph TD
A[Solicitud de Descuento] --> B[Nodo de Aprobacion]
B -->|Aprobado| C[Aplicar Descuento y Notificar]
B -->|Rechazado| D[Informar al Cliente amablemente]
```
### Salidas en el lienzo:
- **Aprobado (`approved`):** El camino que sigue si el supervisor responde que sí o aprueba la solicitud.
- **Rechazado (`rejected`):** El camino si el supervisor deniega la petición.
### ¿Qué puedes modificar?
El rol o departamento que debe autorizar la acción (por ejemplo: `supervisor`, `gerente_ventas`, `administrador`).
Pregunta o detalle que se le mostrará al supervisor para que decida (por ejemplo: `¿Autorizas el descuento especial de {monto_descuento} para {user_name}?`).
Variable donde se registra la respuesta exacta o comentario del supervisor.
---
## 3. Assign Role (asignar rol en CRM)
Etiqueta la conversación para que aparezca asignada a un departamento específico dentro del CRM (como Ventas, Soporte Técnico, Cobranzas o Facturación).
### ¿Qué puedes modificar?
El nombre del rol o equipo al que pertenecerá la conversación (por ejemplo: `ventas`, `soporte`, `facturacion`).
Nombre de la variable opcional donde se guardará el rol asignado.
---
## Catálogo de nodos
> URL: /es/nodes
> llms.txt específico: /es/nodes/llms.txt
import { Card, CardGrid } from '@site/src/components';
# Nodos y bloques de construcción
Los **Nodos** son los bloques visuales que arrastras y conectas en el lienzo de Convoflow para crear la experiencia de tus usuarios. Cada nodo realiza una tarea puntual: enviar un mensaje, hacer una pregunta, consultar una base de datos, cobrar con tarjeta o tomar una decisión con Inteligencia Artificial.

Mermaid
```text
graph LR
A[Mensaje Entrante] --> B[Preguntar Nombre]
B --> C[Asistente IA]
C -->|Agendar| D[Crear Cita en Calendar]
D -->|Exito| E[Confirmar por WhatsApp]
D -->|Si no hay cupo| F[Enviar Correo a Asesor]
```
---
## Cómo funcionan los nodos en el Designer
### 1. El diseñador como aliado visual
El **Designer** de Convoflow te permite diseñar y armar flujos conversacionales de forma rápida y visual. Esta documentación sirve como **guía de referencia** para que conozcas qué hace cada nodo y qué campos puedes modificar cuando abras el panel lateral de propiedades.
### 2. Reutilizar datos de la conversación
Cualquier dato capturado en un paso anterior (nombre del cliente, correo, saldo, etc.) se puede insertar en mensajes o correos usando llaves `{}`:
```text
Hola {user_name}, confirmamos tu cita para el {fecha_cita} a las {hora_cita}.
```
### 3. Rutas de éxito y rutas de respaldo
Cada bloque cuenta con salidas visuales en el lienzo:
- **Ruta principal (Éxito):** Se ejecuta cuando la acción se completa correctamente.
- **Ruta de respaldo (Error o Fallo):** Te permite definir qué mensaje enviar o qué camino tomar si algo no sale como se esperaba (por ejemplo, si un servicio externo no responde).
---
## Catálogo completo de nodos
Aprende cómo arranca y termina tu flujo, y cómo activarlo por WhatsApp, correo o calendario.
Envía mensajes de texto, fotos, audios y botones interactivos oficiales de WhatsApp.
Pide datos al usuario con validación automática y gestiona variables del flujo.
Asistente autónomo con memoria, capacidad de razonar y herramientas visuales subflujo.
Responde dudas usando manuales en PDF, investiga en la web o procesa facturas con Document AI.
Dirige al usuario por diferentes caminos según condiciones, intenciones con IA o menús de opciones.
Transfiere conversaciones a asesores humanos, solicita aprobaciones y asigna roles en el CRM.
Envía avisos de nuevos prospectos, notificaciones de compras y alertas a canales internos.
Cobra productos y servicios con Stripe y Recurrente con botón interactivo de WhatsApp.
Envía códigos de verificación OTP por SMS y valida identidades oficiales con KYC biométrico.
Revisa horarios disponibles y agenda citas en Google Calendar, Cal.com o con agentes inteligentes.
Lee, agrega, edita o elimina filas en tus hojas de cálculo en tiempo real.
Genera contratos y cotizaciones reemplazando plantillas de texto automáticamente.
Envía correos automáticos personalizados con plantillas de diseño y archivos adjuntos.
Sincroniza datos con HubSpot CRM, pedidos de Shopify, tiendas WooCommerce, Airtable y Notion.
Guarda información en tablas internas de Convoflow, conecta PostgreSQL, Supabase o ejecuta JavaScript.
Conecta tu flujo con cualquier sistema, CRM o base de datos externa mediante llamadas REST.
---
## Base de conocimiento y documentos
> URL: /es/nodes/knowledge
> llms.txt específico: /es/nodes/knowledge/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Conocimiento y análisis de documentos
Tu asistente de IA necesita responder con información verídica y específica de tu negocio. Con estos nodos puedes conectarlo a tus manuales corporativos, permitirle investigar en la web o extraer datos de archivos que los clientes te envíen.

Mermaid
```text
graph LR
A[Pregunta o Archivo del Cliente] --> B[Nodo de Conocimiento / Documentos]
B -->|Buscar informacion precisa| C[Fragmentos encontrados]
C --> D[Respuesta certera del Asistente]
```
---
## 1. Knowledge RAG (base de conocimiento)
Permite buscar respuestas dentro de documentos que hayas subido a Convoflow (archivos PDF, manuales de servicio, políticas de garantía o catálogos).
### ¿Cómo funciona?
Cuando el usuario hace una pregunta, este nodo busca únicamente en tus documentos y extrae los fragmentos más relevantes para que el asistente responda con datos exactos y sin inventar información.
### ¿Qué puedes modificar?
La pregunta o tema a buscar (generalmente `{user_message}` o la duda del cliente).
Nombre de la colección o grupo de documentos donde deseas buscar.
Cantidad de fragmentos o párrafos relevantes que se extraerán para formular la respuesta.
Variable donde se guarda la información encontrada para alimentar al asistente en los siguientes pasos.
---
## 2. Document AI (lectura de documentos y facturas)
Utiliza modelos de visión artificial para leer y extraer texto estructurado de archivos que te envían tus clientes (como comprobantes de pago, cotizaciones en PDF o imágenes de contratos).
### ¿Cuándo usarlo?
- Cuando un cliente te envía una foto de un recibo o depósito bancario y necesitas extraer el monto y la fecha.
- Para procesar formularios escaneados automáticamente.
### ¿Qué puedes modificar?
Variable donde se guardó el archivo o imagen enviado por el usuario.
El identificador del procesador de documentos (por ejemplo para facturas, recibos o formularios).
Variable con el texto y datos ordenados que se extrajeron del archivo.
---
## 3. Web Search (búsqueda e investigación web)
Permite que el flujo busque información pública en internet o rastree páginas web específicas para recopilar datos frescos.
### ¿Qué puedes modificar?
Término de búsqueda o pregunta a investigar en la web.
Direcciones web iniciales que deseas que el bot examine (por ejemplo: `https://tusitio.com/precios`).
Variable donde se almacena el contenido encontrado.
---
## Lógica, decisiones y reglas
> URL: /es/nodes/logic
> llms.txt específico: /es/nodes/logic/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Lógica, decisiones y reglas
No todas las conversaciones son iguales: un cliente nuevo necesita una bienvenida diferente a la de un usuario registrado, y una consulta sobre precios toma un rumbo distinto a un reclamo urgente. Estos nodos te permiten crear bifurcaciones y verificar reglas de negocio.

Mermaid
```text
graph TD
A[Pregunta del Cliente] --> B{Nodo de Decision}
B -->|Camino 1: Consulta General| C[Responder con Precios]
B -->|Camino 2: Cliente Molesto| D[Pasar a Asesor Humano]
```
---
## 1. Condition Node (condición sí / no)
Evalúa una regla fija basada en los datos de la conversación y divide el camino en dos salidas: **Sí (True)** o **No (False)**.
### ¿Cuándo usarlo?
- Si el monto es mayor a $100: ofrecer envío gratis.
- Si el país es México: mostrar precios en Pesos; en caso contrario, mostrar Dólares.
### Salidas en el lienzo:
- **True (Verdadero):** Camino que sigue si la condición se cumple.
- **False (Falso):** Camino alternativo si la condición no se cumple.
### ¿Qué puedes modificar?
La regla a evaluar usando variables entre comillas y llaves:
- `"{saldo}" > 0`
- `"{pais}" === "Mexico"`
- `"{edad}" >= 18`
---
## 2. Smart Condition Node (condición inteligente con IA)
A diferencia de la condición matemática simple, la **Smart Condition** utiliza Inteligencia Artificial para entender el tono, intención o sentimiento del cliente cuando escribe con sus propias palabras.
### Ejemplos de uso:
- *¿El usuario está expresando molestia o quejas?*
- *¿El cliente está listo para comprar o solo tiene curiosidad?*
- *¿El usuario prefiere atención virtual o presencial?*
### ¿Qué puedes modificar?
La pregunta o criterio en lenguaje natural que la IA debe evaluar (por ejemplo: *¿El cliente tiene urgencia médica inmediata?*).
Variables que la IA debe leer para tomar la decisión (por ejemplo: `user_message`, `historial_chat`).
---
## 3. Switch Node (menú de varias opciones)
Compara el valor de una variable contra múltiples opciones fijas y crea una salida en el lienzo para cada opción.

Mermaid
```text
graph LR
SW[Switch: Opcion de Menu] -->|Caso: 1| V[Ruta de Ventas]
SW -->|Caso: 2| S[Ruta de Soporte]
SW -->|Caso: 3| F[Ruta de Facturacion]
SW -->|Default| D[Opcion no reconocida]
```
### ¿Qué puedes modificar?
La variable a examinar (por ejemplo: `{opcion_seleccionada}`).
Lista de casos posibles (por ejemplo: `ventas`, `soporte`, `pagos`). Cada caso creará un conector individual en el bloque.
Habilita una salida de respaldo (*Default*) para cuando el valor no coincida con ninguna de las opciones anteriores.
---
## 4. Policy Gate (puerta de validación y políticas)
Verifica que el usuario haya cumplido con una serie de requisitos antes de permitirle avanzar a un paso crítico (como contratar un servicio o solicitar un préstamo).
### ¿Qué puedes modificar?
Lista de datos que **obligatoriamente** deben estar llenos (por ejemplo: `user_name`, `user_email`, `documento_id`).
Porcentaje mínimo de avance requerido en el proceso (por ejemplo: `80%`).
---
## 5. Checkpoint Node (punto de control y calificación)
Mide qué tan completo está el perfil de un cliente a medida que avanza en el flujo y calcula un porcentaje de calificación (Lead Qualification).
Nombre identificador del hito (por ejemplo: `calificacion_prospecto`).
Las variables que suman puntos al completarse (nombre, correo, empresa, presupuesto).
---
## 6. Await Resume Node (Pausa a la espera de un sistema externo)
Detiene la conversación y espera a que un sistema externo envíe una notificación por webhook para continuar. Ideal para procesos que tardan varios minutos u horas (como la validación manual de un crédito o una aprobación bancaria).
---
## Pagos y cobros
> URL: /es/nodes/payments
> llms.txt específico: /es/nodes/payments/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Pagos y cobros (Stripe y Recurrente)
Los nodos de pago permiten que tu asistente cobre productos, servicios o anticipos directamente dentro de la conversación. Además, pueden pausar el flujo mientras el cliente realiza el pago y reanudarlo al instante cuando la pasarela confirma la transacción.

Mermaid
```text
graph LR
A[Cliente confirma pedido] --> B[Nodo de Pago: Stripe / Recurrente]
B -->|Boton CTA en WhatsApp| C[Cliente paga con tarjeta]
C -->|Webhook confirma pago| D[Continuar Flujo: Entregar Pedido]
C -->|Si cancela o falla| E[Ofrecer alternativa de pago]
```
---
## 1. Stripe Payment Node
Genera una sesión segura de **Stripe Checkout** para pagos internacionales con tarjeta de crédito, débito, Apple Pay o Google Pay.
### ¿Cómo funciona en WhatsApp?
Si activas la opción **Esperar Pago (`waitForPayment`)**, el asistente enviará un botón interactivo de WhatsApp (*"Pagar Ahora"*). Al tocarlo, se abre una ventana segura de pago. Una vez que el cliente paga, el flujo continúa automáticamente sin intervención manual.
### ¿Qué puedes modificar?
Tu cuenta conectada de Stripe.
Nombre del concepto o producto que aparecerá en la pantalla de cobro (por ejemplo: `Reserva de Cita - {user_name}`).
El precio expresado en **centavos** (por ejemplo: para cobrar `$25.00`, escribe `2500`; para `$100.00`, escribe `10000`).
Código de la moneda en minúsculas (por ejemplo: `usd`, `mxn`, `eur`).
- **Activado (Recomendado):** El flujo se detiene temporalmente y espera a que Stripe confirme el pago para continuar hacia la rama de éxito.
- **Desactivado:** Solo genera el enlace de pago y continúa de inmediato sin esperar la confirmación.
Texto del botón que verá el cliente en WhatsApp (máximo 20 caracteres).
Mensaje que acompaña al botón de pago (por ejemplo: *Aquí tienes el enlace seguro para confirmar tu pedido:*).
---
## 2. Recurrente Payment Node
Diseñado para procesar pagos locales en **Guatemala y Centroamérica** (en Quetzales `GTQ` o Dólares `USD`) mediante la plataforma Recurrente.
### ¿Qué puedes modificar?
Tu cuenta conectada de Recurrente.
Tipo de cobro:
- `create_one_time_checkout`: Cobro único puntual (por ejemplo un producto o servicio).
- `create_checkout`: Cobro sobre un producto ya registrado en tu catálogo de Recurrente.
Monto en centavos (por ejemplo: `10000` para Q100.00 o $100.00).
Moneda de cobro: `GTQ` (Quetzales) o `USD` (Dólares).
Pausa la conversación hasta recibir la confirmación de pago por webhook.
Variable donde se guardará el comprobante y los datos de la transacción exitosa.
---
## Pregunta, espera y variables
> URL: /es/nodes/question
> llms.txt específico: /es/nodes/question/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Preguntas, captura y variables
Para brindar una atención personalizada necesitas pedir datos al cliente (como su nombre, correo o fecha deseada), pausar el flujo hasta que responda y guardar esos datos en variables que puedas reutilizar después.

Mermaid
```text
graph LR
A[Preguntar Nombre] -->|Espera respuesta| B[Guardar en {user_name}]
B --> C[Mensaje de Confirmación]
```
---
## 1. Question Node (hacer pregunta al cliente)
Hace una pregunta al usuario y guarda automáticamente su respuesta en una variable. Además, la Inteligencia Artificial se encarga de entender la respuesta aunque el usuario responda con rodeos o frases largas.
### ¿Qué puedes modificar?
La pregunta que se formulará al usuario (por ejemplo: *¿A qué correo te enviamos la confirmación?*).
El nombre de la variable donde se guardará el dato (por ejemplo: `user_email`).
> **Extracción múltiple:** Si preguntas *"Dime tu nombre, correo y teléfono"*, puedes escribir `nombre, correo, telefono` en este campo y la IA separará los tres datos automáticamente.
- **Desactivado (Recomendado):** La IA adapta la redacción de la pregunta de manera cordial y fluida según el contexto de la conversación.
- **Activado:** Envía la pregunta exactamente con las palabras que escribiste, sin refrasear.
Reglas que debe cumplir la respuesta (por ejemplo: *Debe ser un correo electrónico válido* o *Debe ser un número de teléfono de 8 a 10 dígitos*). Si el usuario escribe algo incorrecto, la IA le pedirá amablemente que lo corrija.
Mensaje de agradecimiento o confirmación que se envía inmediatamente después de recibir el dato (por ejemplo: *¡Gracias por la información!*).
---
## 2. Wait Input Node (pausa y espera de mensaje)
Detiene la ejecución del flujo y queda a la espera de que el usuario envíe su siguiente mensaje en el chat. Cuando el mensaje llega, lo guarda en una variable y continúa al siguiente bloque.
### ¿Qué puedes modificar?
Variable donde se guardará el mensaje escrito por el usuario (por ejemplo: `mensaje_esperado`).
Mensaje opcional que se muestra mientras el sistema espera la respuesta del usuario.
---
## 3. Set Variable (asignar o modificar variable)
Crea una variable nueva o cambia el valor de una existente sin necesidad de interactuar con el usuario.
### ¿Cuándo usarlo?
- Marcar el estado de un lead: `estado_cliente = "calificado"`.
- Asignar una fecha por defecto: `origen = "campaña_facebook"`.
- Limpiar o reiniciar un valor antes de un nuevo proceso.
### ¿Qué puedes modificar?
Nombre de la variable a crear o modificar (por ejemplo: `tipo_cliente`).
El valor que deseas asignarle. Puede ser un texto fijo o incluir otras variables: `VIP - {plan_elegido}`.
---
## 4. Connector Node (atajo visual en el lienzo)
Cuando tienes un flujo grande, conectar dos nodos que están muy lejos en el lienzo puede crear líneas cruzadas difíciles de leer. El **Connector Node** funciona como un "portal": seleccionas el nodo de destino de una lista desplegable y el flujo saltará directamente hacia allá.
---
## Slack y Discord
> URL: /es/nodes/team-chat
> llms.txt específico: /es/nodes/team-chat/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Slack y Discord (alertas internas)
Mantener al equipo informado en tiempo real es clave. Con los nodos de **Slack** y **Discord**, tu flujo puede avisar al canal de ventas cuando un lead calificado completa el formulario, o alertar a soporte si un cliente reporta una incidencia.

Mermaid
```text
graph LR
A[Cliente agenda cita o compra] --> B[Nodo Slack o Discord]
B -->|Mensaje Enviado| C[Canal interno de tu equipo]
B -->|Si ocurre un error| D[Camino de Respaldo]
```
---
## 1. Slack Node
Envía un mensaje formateado a cualquier canal público o privado de tu espacio de trabajo en Slack.
### ¿Cuándo usarlo?
- Avisar a `#leads-nuevos` cuando alguien deja sus datos en WhatsApp.
- Notificar a `#pagos` cuando una compra se completa con éxito.
- Enviar un resumen de la conversación a un hilo específico (`thread`).
### Salidas en el lienzo:
- **Salida principal (Éxito):** Continúa normalmente cuando el mensaje se publicó en Slack.
- **Salida de error:** Te permite definir qué hacer si el canal no existe o la conexión falló.
### ¿Qué puedes modificar?
Tu conexión registrada de Slack en la sección de Conexiones.
El nombre del canal (por ejemplo: `#ventas`) o el ID interno del canal de Slack.
El mensaje que verá tu equipo. Puedes usar formato con asteriscos (`*negrita*`) y variables del flujo:
```text
🚀 *Nuevo Lead Calificado*
- Nombre: {user_name}
- Teléfono: {user_phone}
- Interés: {plan_seleccionado}
```
Si deseas responder dentro de un hilo existente, coloca aquí el identificador del mensaje principal.
---
## 2. Discord Node
Envía alertas a un canal de Discord mediante tu Bot o mediante un enlace de Webhook.
### ¿Qué puedes modificar?
El ID del canal de Discord donde deseas publicar (cuando usas un Bot conectado).
Si prefieres no usar un bot, puedes pegar directamente la URL de un Webhook de Discord.
El texto del mensaje que se publicará en el servidor. Admite variables como `{user_name}` y emojis.
Nombre visible con el que aparecerá el bot en Discord (por ejemplo: `Convoflow Bot`).
---
## Inicio, fin y disparadores
> URL: /es/nodes/triggers
> llms.txt específico: /es/nodes/triggers/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Inicio, fin y disparadores
Todo flujo en Convoflow necesita un punto de partida y un punto de llegada. Además de iniciar conversaciones manualmente o por chat, puedes hacer que tus flujos se activen solos mediante **Disparadores (Triggers)** cuando ocurre un evento externo.

Mermaid
```text
graph LR
A[Disparador: Mensaje de WhatsApp] --> B[Nodo de Inicio]
B --> C[Pasos de tu Asistente...]
C --> D[Nodo de Fin]
```
---
## 1. Start Node (nodo de inicio)
Es el bloque que marca dónde empieza a correr la conversación. Cuando un usuario interactúa con tu asistente, el flujo arranca desde este nodo y sigue la línea conectada.
### ¿Qué puedes modificar?
- **Etiqueta (Label):** Un nombre descriptivo para identificarlo en tu lienzo (por ejemplo, *Inicio de atención al cliente*).
> **Consejo de diseño:** Solo necesitas **un nodo de inicio** por flujo principal. Conéctalo al primer bloque que debe hablar con el usuario (como un saludo o una pregunta).
---
## 2. End Node (nodo de fin)
Marca la conclusión definitiva del flujo. Cuando la conversación llega a este nodo, el sistema da por terminado el proceso actual.
### ¿Cuándo usarlo?
- Al despedir al usuario tras completar una compra o agendar una cita.
- Al transferir al cliente a un asesor humano.
- En cualquier rama donde ya no sea necesario realizar más acciones.
---
## 3. WhatsApp Trigger (disparador por WhatsApp)
Permite que el flujo despierte automáticamente cuando entra un mensaje a tu número de WhatsApp.
### ¿Qué puedes modificar?
Selecciona la cuenta de WhatsApp que escuchará los mensajes entrantes. Si tienes un solo número conectado, el designer lo asociará por defecto.
Palabra clave o frase que debe contener el mensaje para activar este flujo (por ejemplo: *hola*, *info*, *precios*). Si lo dejas vacío, se activará con cualquier mensaje.
Nombre de la variable donde se guardará el texto que escribió el usuario, para que puedas leerlo en los siguientes nodos usando `{incoming_message}`.
Variable donde se guardará el número de teléfono del cliente que te escribió.
---
## 4. Email Trigger (disparador por correo)
Inicia el flujo de forma automática cuando recibes un correo electrónico que cumple ciertas reglas o filtros.
### ¿Cuándo usarlo?
- Para responder automáticamente a consultas que llegan a `ventas@tuempresa.com`.
- Para extraer datos de facturas o notificaciones por correo y guardarlos en una hoja de cálculo.
### ¿Qué puedes modificar?
Filtra correos que provengan de un remitente específico o dominio (por ejemplo: `@proveedor.com`).
Texto que debe estar presente en el asunto del correo (por ejemplo: *Solicitud de cotización*).
Variable donde se guarda el asunto del correo recibido.
Variable donde se guarda el contenido del mensaje recibido.
---
## 5. Schedule Trigger (disparador programado)
Permite ejecutar un flujo de forma periódica en un horario definido, sin que un usuario tenga que escribirte primero.
### ¿Cuándo usarlo?
- Para enviar recordatorios de pago todas las mañanas a las 9:00 AM.
- Para generar un reporte semanal de ventas y enviarlo a tu equipo por Slack o correo.
### ¿Qué puedes modificar?
Modalidad de programación:
- **Diario a una hora (`daily_time`):** Elige una hora fija todos los días (por ejemplo `09:00`).
- **Cada X minutos (`interval_minutes`):** Se ejecuta cada 15, 30 o 60 minutos.
- **Avanzado (`cron`):** Expresión de calendario para reglas más específicas (por ejemplo, solo de lunes a viernes).
Tu zona horaria local para que las horas coincidan con tu país.
---
## Verificación de identidad y OTP
> URL: /es/nodes/verification
> llms.txt específico: /es/nodes/verification/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Verificación y seguridad
Cuando tu negocio maneja operaciones financieras, contratación de servicios o acceso a cuentas privadas, necesitas asegurarte de que el usuario es quien dice ser. Estos nodos gestionan todo el ciclo de validación de forma guiada y automática.

Mermaid
```text
graph LR
A[Usuario solicita trámite sensible] --> B[Nodo de Verificación]
B -->|Verificado| C[Continuar Trámite Seguro]
B -->|Intentos agotados| D[Bloquear o enviar a revisión]
B -->|Usuario cancela| E[Volver al menú principal]
```
---
## 1. OTP Verification (código por SMS)
Envía un código numérico de 6 dígitos por mensaje de texto (SMS) al teléfono del cliente y le pide que lo escriba en el chat para confirmar su identidad.
### ¿Cómo se comporta en la conversación?
1. El nodo genera un código seguro y lo envía por SMS.
2. Le pide amablemente al cliente que lo ingrese en el chat.
3. Si el usuario se equivoca, le indica cuántos intentos le quedan y le permite solicitar un reenvío.
4. Si ingresa el código correcto, el flujo avanza por la rama **Verificado**.
### Salidas en el lienzo:
- **Éxito (Verificado):** Continúa cuando el código ingresado coincide.
- **Fallido:** Se activa si el usuario supera el límite máximo de intentos erróneos.
- **Cancelado:** Si el usuario decide cancelar la verificación.
### ¿Qué puedes modificar?
Tu proveedor de mensajería SMS configurado.
La variable que contiene el teléfono al que se enviará el SMS (por ejemplo: `{user_phone}`).
Mensaje para solicitar el código (por ejemplo: *Te acabamos de enviar un código de 6 dígitos por SMS. Por favor escríbelo aquí para continuar:*).
Cantidad máxima de intentos permitidos antes de marcar la verificación como fallida.
Número máximo de veces que el usuario puede solicitar que le reenvíen el código SMS.
---
## 2. KYC Verification (identidad oficial con Didit)
Inicia un proceso de **Conoce a tu Cliente (KYC)** donde el usuario valida su documento oficial de identidad (DPI, INE, Cédula o Pasaporte) y se toma una selfie biométrica con la cámara de su teléfono.
### ¿Cuándo usarlo?
- Apertura de cuentas de crédito o préstamos.
- Firma de contratos legales o notariales.
- Validación de antecedentes y prevención de fraudes.
### ¿Qué puedes modificar?
Tu conexión de Convoflow KYC.
El identificador del flujo de verificación definido en tu plataforma de identidad.
En WhatsApp, envía un botón interactivo (*"Verificar identidad"*) que abre el proceso sin que el usuario tenga que salir de su conversación.
Texto del botón (máximo 20 caracteres).
Instrucciones para el cliente (por ejemplo: *Para continuar con tu solicitud, por favor completa esta breve verificación con tu documento de identidad y una selfie:*).
---
## WhatsApp y mensajes al usuario
> URL: /es/nodes/whatsapp
> llms.txt específico: /es/nodes/whatsapp/llms.txt
import { ParamField } from '@site/src/components';
# Nodos: Mensajes y WhatsApp
La forma en que tu asistente le habla a los usuarios debe ser clara, atractiva y rápida. En Convoflow cuentas con dos bloques principales para enviar mensajes: el **Message Node** y el **WhatsApp Node**.

Mermaid
```text
graph LR
A[Flujo activo] --> B[Nodo: Mensaje / WhatsApp]
B -->|Texto / Imagen / Botones| C[Usuario recibe el mensaje]
B -->|Continuar| D[Siguiente paso del flujo]
```
---
## 1. Message Node (mensaje universal)
Es el bloque más común para responderle al usuario en cualquier canal (WhatsApp, Webchat, etc.).
### ¿Cómo personalizar el texto?
Puedes combinar texto libre con datos guardados usando llaves `{}`:
```text
¡Hola {user_name}! Con gusto te ayudamos con tu pedido #{numero_pedido}.
```
### ¿Qué puedes modificar?
El texto que se enviará al chat. Puedes dar formato usando `*negritas*` o `_cursivas_`.
Si deseas adjuntar una imagen ilustrativa, pega aquí la dirección URL pública de la imagen (por ejemplo: `https://tusitio.com/banner-promocion.jpg`).
---
## 2. WhatsApp Node (interactivo para WhatsApp)
Diseñado específicamente para aprovechar las funciones nativas de **WhatsApp Business Cloud API**, como botones de respuesta rápida o envíos a números específicos.
### Tipos de mensajes:
- **Texto:** Mensaje directo a un número de teléfono de destino.
- **Botones Interactivos:** Muestra hasta 3 botones para que el cliente seleccione una opción con un solo toque (ideal para evitar errores de escritura).
- **Multimedia:** Enviar imágenes o archivos PDF (como cotizaciones o recibos).
### ¿Qué puedes modificar?
Número de teléfono del destinatario en formato internacional (por ejemplo: `{user_phone}` o `+52155...`).
Cuerpo principal del mensaje o pie de foto.
La línea de WhatsApp oficial con la que responderás al usuario.
---
# SECCIÓN 3: CONEXIONES (CONNECTIONS)
## Bases de datos
> URL: /es/connections/database
> llms.txt específico: /es/connections/database/llms.txt
import { ParamField } from '@site/src/components';
# Conexión: Bases de datos
Esta conexión permite que tus asistentes consulten bases de datos para revisar catálogos de productos, comprobar inventarios o guardar registros de clientes.
---
## 1. Supabase
La dirección web de tu proyecto Supabase (por ejemplo: `https://xyzproject.supabase.co`).
Tu clave secreta de API (`service_role` o `anon`) obtenida en la configuración de API de tu proyecto Supabase.
---
## 2. PostgreSQL directo
Permite conectar cualquier base de datos PostgreSQL estándar.
Dirección de conexión de tu base de datos:
```text
postgresql://usuario:password@host.dominio.com:5432/nombre_bd?sslmode=require
```
---
## 3. Airtable
Token de acceso personal generado en la sección de desarrolladores de Airtable.
El identificador único de tu base de Airtable (inicia con `app...`).
---
## Email y SMTP
> URL: /es/connections/email-smtp
> llms.txt específico: /es/connections/email-smtp/llms.txt
import { ParamField } from '@site/src/components';
# Conexión: Email y servidores SMTP
Esta conexión permite que Convoflow envíe correos electrónicos automáticos a tus clientes o notificaciones a tu equipo de trabajo.
---
## Campos de configuración
Dirección del servidor de correo (por ejemplo: `smtp.gmail.com`, `smtp.sendgrid.net` o `smtp.resend.com`).
Puerto de comunicación seguro:
- `465`: Conexión segura recomendada (SSL).
- `587`: Conexión alternativa (TLS/STARTTLS).
Tu correo de usuario o identificador de cuenta (por ejemplo: `notificaciones@tuempresa.com` o `apikey` en el caso de SendGrid).
Tu contraseña de aplicación o clave de API generada por tu proveedor de correo.
Nombre y correo del remitente que verán tus clientes (por ejemplo: `Atención Convoflow `).
---
## Configuración con proveedores populares
### 1. Gmail o Google Workspace
- **Servidor (Host):** `smtp.gmail.com`
- **Puerto:** `465`
- **Usuario:** Tu correo de Google (por ejemplo: `tu_correo@gmail.com`).
- **Contraseña:** Una **Contraseña de Aplicación** de 16 letras generada desde la configuración de seguridad de tu cuenta de Google.
:::tip Cómo generar una contraseña de aplicación en Google
Entra a [myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords) con tu cuenta de Google, escribe un nombre como "Convoflow", genera la contraseña de 16 caracteres y pégala en el campo de contraseña.
:::
### 2. Resend
- **Servidor (Host):** `smtp.resend.com`
- **Puerto:** `465`
- **Usuario:** `resend`
- **Contraseña:** Tu API Key de Resend.
### 3. SendGrid
- **Servidor (Host):** `smtp.sendgrid.net`
- **Puerto:** `465` o `587`
- **Usuario:** `apikey`
- **Contraseña:** Tu API Key de SendGrid.
---
## Google Service Account
> URL: /es/connections/google-service-account
> llms.txt específico: /es/connections/google-service-account/llms.txt
import { ParamField } from '@site/src/components';
# Conexión: Google Service Account
La conexión **Google Service Account** permite que tus flujos interactúen directamente con tus herramientas de Google:
- **Google Sheets:** Guardar nuevos prospectos, actualizar inventarios y leer datos.
- **Google Docs:** Generar contratos o documentos completando plantillas.
- **Google Calendar:** Consultar horarios libres y agendar citas con enlace de Google Meet.

Mermaid
```text
graph LR
A[Convoflow] -->|Conexion Segura| B[Google Cloud]
B --> C[Google Sheets]
B --> D[Google Docs]
B --> E[Google Calendar]
```
---
## Parámetros de configuración
Pega aquí el contenido completo del archivo `.json` que descargas de Google Cloud (contiene la clave privada y el correo de servicio).
(Opcional) Correo electrónico corporativo de Google Workspace en cuyo nombre deseas que se creen los eventos o documentos.
---
## Guía paso a paso para conectar Google
### 1. Entrar a Google Cloud Console
1. Ingresa a la [Consola de Google Cloud](https://console.cloud.google.com/).
2. Inicia sesión con tu cuenta de Google y crea un proyecto nuevo (por ejemplo: *Automatizaciones Convoflow*).
### 2. Activar las herramientas de Google (APIs)
En el buscador superior de Google Cloud, busca y haz clic en **Habilitar (Enable)** para cada una de estas herramientas:
- **Google Sheets API** (para hojas de cálculo).
- **Google Docs API** (para documentos).
- **Google Calendar API** (para agendamiento de citas).
- **Google Drive API** (para permisos de archivos).
### 3. Crear una cuenta de servicio (Service Account)
1. Ve a la sección **IAM y administración > Cuentas de servicio**.
2. Haz clic en **Crear cuenta de servicio**.
3. Escribe un nombre identificador (por ejemplo: `convoflow-asistente`) y haz clic en **Listo**.
### 4. Descargar la clave JSON
1. En la lista de cuentas de servicio, haz clic sobre el correo que se acaba de crear (tendrá un formato similar a: `convoflow-asistente@tu-proyecto.iam.gserviceaccount.com`).
2. Ve a la pestaña **Claves (Keys)**.
3. Haz clic en **Agregar clave > Crear clave nueva**.
4. Elige el formato **JSON** y presiona **Crear**. Se descargará un archivo en tu computadora.
5. Abre ese archivo con cualquier editor de texto, copia todo su contenido y pégalo en el campo **Service Account JSON** dentro de Convoflow.
### 5. Dar acceso a tus documentos y calendarios
Este es el paso más importante para que todo funcione:
- **Para Google Sheets y Google Docs:** Abre tu hoja o documento, haz clic en el botón **Compartir**, pega el correo de la cuenta de servicio (el que termina en `...iam.gserviceaccount.com`) y otórgale permisos de **Editor**.
- **Para Google Calendar:** Abre Google Calendar en tu computadora, entra a la configuración del calendario que usarás, ve a **Compartir con personas específicas** y agrega el correo de la cuenta de servicio con permisos para *Realizar cambios en eventos*.
---
## Preguntas frecuentes y soluciones
:::note Error de permisos ("The caller does not have permission")
**Causa:** No has compartido la hoja de cálculo o calendario con el correo de servicio.
**Solución:** Copia el correo `client_email` de tu archivo JSON y compártelo con permisos de Editor en tu archivo de Google Drive.
:::
:::note Error de API no habilitada
**Causa:** Falta activar la API en Google Cloud.
**Solución:** Ve a la biblioteca de APIs en Google Cloud y presiona **Habilitar** en *Google Sheets API* o *Google Calendar API*.
:::
---
## Introducción a conexiones
> URL: /es/connections
> llms.txt específico: /es/connections/llms.txt
import { Card, CardGrid } from '@site/src/components';
# Conexiones centralizadas
Las **Conexiones** en Convoflow te permiten guardar y administrar de forma segura las contraseñas, llaves de API y credenciales necesarias para que tus asistentes interactúen con servicios externos.

Mermaid
```text
graph LR
subgraph Convoflow
F[Tus Flujos de Atencion]
A[Tus Asistentes IA]
end
subgraph Conexiones Seguras
C1[Google Workspace]
C2[Cuentas de Correo SMTP]
C3[WhatsApp Business API]
C4[Proveedores de IA]
C5[Bases de Datos]
end
F --> C1 & C2 & C3
A --> C4 & C5
```
---
## Ventajas de usar conexiones
1. **Mayor Seguridad:** Tus contraseñas y llaves de acceso se guardan encriptadas. Tus flujos solo hacen referencia al nombre de la conexión sin exponer claves.
2. **Configuración Única:** Configuras tu cuenta una sola vez (por ejemplo, tu cuenta de Google o WhatsApp) y la reutilizas en todos los flujos que necesites.
3. **Prueba Inmediata:** Puedes presionar el botón **Probar Conexión** para confirmar que tus claves funcionan correctamente antes de publicar.
4. **Mantenimiento Fácil:** Si cambias una contraseña, solo la actualizas en la conexión central y todos tus flujos seguirán funcionando sin tener que editarlos uno por uno.
---
## Tipos de conexiones disponibles
Conexión segura para gestionar Google Sheets, Google Docs y Google Calendar.
Configura envíos desde Gmail Workspace, SendGrid, Resend o tu propio servidor de correo.
Conecta números oficiales de WhatsApp Business a través de la plataforma de Meta.
Modelos de inteligencia artificial disponibles para potenciar tus agentes en Convoflow.
Conecta bases de datos PostgreSQL, proyectos de Supabase o bases de Airtable.
Configura autenticación para conectarte con tus propios sistemas y APIs.
---
## Estados de tus conexiones
En el panel de Convoflow verás el estado de cada cuenta conectada:
| Estado | Significado |
| :--- | :--- |
| Activo | La conexión funciona correctamente y está lista para usarse. |
| Error | Las credenciales son incorrectas o expiraron. Revisa la clave ingresada. |
| Inactivo | La conexión fue pausada manualmente por un administrador. |
---
## Webhooks y HTTP APIs
> URL: /es/connections/webhooks-http
> llms.txt específico: /es/connections/webhooks-http/llms.txt
import { ParamField } from '@site/src/components';
# Conexión: Webhooks y HTTP APIs
Esta conexión te permite guardar de manera centralizada los datos de acceso para conectarte con tus propios sistemas o aplicaciones web sin exponer contraseñas en cada flujo.
---
## Campos de configuración
El tipo de autenticación requerido por tu sistema:
- `none`: Peticiones públicas sin clave.
- `bearer`: Token de autorización (Bearer Token).
- `apiKey`: Llave de acceso enviada en los encabezados.
- `basic`: Usuario y contraseña estándar.
Dirección principal de tu API (por ejemplo: `https://api.tuempresa.com/v1`).
Encabezados fijos que se incluirán en cada consulta:
```json
{
"Content-Type": "application/json",
"X-App-ID": "convoflow"
}
```
---
## WhatsApp Cloud API
> URL: /es/connections/whatsapp
> llms.txt específico: /es/connections/whatsapp/llms.txt
import { ParamField } from '@site/src/components';
# Conexión: WhatsApp Cloud API
La conexión de **WhatsApp Cloud API** vincula tus números oficiales de WhatsApp con Convoflow para responder mensajes de clientes de manera automática con texto, botones interactivos y archivos multimedia.
---
## Campos de configuración
Identificador de la cuenta de WhatsApp Business (WABA ID) obtenido en tu panel de Meta Business Manager.
Identificador del número de teléfono asignado en tu aplicación de Meta Developers.
Token de acceso permanente generado en la sección de Usuarios del Sistema en Meta.
Una palabra o código secreto que tú eliges para validar que los mensajes que llegan a Convoflow provienen legítimamente de Meta.
---
## Configuración del webhook en Meta
1. Entra a [developers.facebook.com](https://developers.facebook.com/) y abre tu aplicación de WhatsApp.
2. En el menú lateral ve a **WhatsApp > Configuración**.
3. En la sección de Webhooks, pega la dirección de webhook que te proporciona Convoflow:
```text
https://api.convoflow.ai/api/webhooks/whatsapp/{workspace_id}
```
4. Escribe tu **Webhook Verify Token** y haz clic en **Verificar y Guardar**.
5. En la lista de suscripciones, activa la casilla **messages**.
---