Documentacion completa

Automatizaciones

Guia completa para crear, configurar y optimizar tus flujos automaticos. Desde los conceptos basicos hasta casos de uso avanzados.

Seccion 1

Introduccion

Las automatizaciones son flujos de trabajo que se ejecutan de forma automatica cuando ocurre un evento especifico. Permiten que tu asistente y tu plataforma realicen acciones sin intervencion manual.

¿Como funcionan?

Cada automatizacion se compone de tres elementos fundamentales que trabajan juntos:

1
Gatillo (Trigger)
El evento que inicia la automatizacion
2
Flujo de Acciones
La secuencia de pasos que se ejecutan en orden
3
Variables
Datos que fluyen entre los pasos via {{nombre}}
Flujo basico
GATILLO (Trigger)  →  FLUJO DE ACCIONES (Steps)  →  RESULTADO
  "Que lo dispara"       "Que hace"                   "Que pasa"

¿Que puedes automatizar?

Capturar datos de clientes y guardarlos en tablas
Enviar mensajes personalizados automaticamente
Asignar etiquetas inteligentes a conversaciones
Enviar correos electronicos con datos del chat
Conectar con APIs externas (CRMs, ERPs, webhooks)
Crear PDFs comerciales y enviarlos como adjuntos
Pedir datos adicionales por asistente o WhatsApp Flow
Responder comentarios de Instagram y TikTok
Crear eventos, enviar Gmail, subir archivos a Drive o leer Sheets
Ejecutar logica personalizada con JavaScript
Transformar datos usando inteligencia artificial
Crear flujos con bifurcaciones condicionales
Iterar sobre listas de datos
Presentar botones interactivos al cliente
Seccion 2

Panel de Automatizaciones

El dashboard donde gestionas todas tus automatizaciones: creas nuevas, ves metricas, activas/desactivas y organizas en grupos.

Acceder al panel

1

Haz clic en "Avanzado" en la barra lateral izquierda

Se expandira el submenu con opciones avanzadas.
2

Haz clic en "Automatizaciones"

Se abrira la pagina principal del panel de automatizaciones.
Panel de automatizaciones con metricas y lista
Panel principal de automatizaciones mostrando metricas y lista

Tarjetas de metricas

En la parte superior del panel veras 4 tarjetas con estadisticas resumidas:

Activas

Automatizaciones encendidas

Inactivas

Automatizaciones apagadas

Ejecuciones

Total de ejecuciones

Ultima ejecucion

Fecha mas reciente

Lista de automatizaciones

Cada automatizacion en la lista muestra:

ElementoDescripcion
NombreNombre descriptivo de la automatizacion
DescripcionTexto opcional que explica que hace
EstadoBadge "Activa" (verde) o "Inactiva" (gris)
Tipo de gatilloIcono indicando el tipo de trigger configurado
Fecha de creacionCuando fue creada la automatizacion
Menu de opcionesEditar, Duplicar, Compartir, Activar/Desactivar, Eliminar

Crear nueva automatizacion

Tienes dos opciones para crear una automatizacion:

Nueva automatizacion

Abre directamente el editor visual para construir el flujo manualmente.

Asistente IA

Abre el chat con IA para crear automatizaciones conversando (ver seccion Asistente IA).

Seccion 3

Crear una Automatizacion

El editor visual es un canvas interactivo donde construyes el flujo arrastrando y conectando nodos. Aqui te explicamos cada area y el proceso paso a paso.

Editor visual de automatizaciones mostrando canvas con nodos
El editor visual con canvas, nodos conectados y panel de configuracion

Estructura del editor

AreaDescripcion
Barra superiorCampo de nombre, boton "Crear/Actualizar Automatizacion" y boton cerrar (X)
Canvas centralArea de trabajo donde se visualizan los nodos. Soporta zoom (rueda), pan (clic + arrastrar) y minimap
Panel lateral (Drawer)Se abre al hacer clic en un nodo para configurar el gatillo o accion
Panel flotante de nodosEn la parte inferior: muestra acciones y controles de flujo disponibles para agregar
Panel de pruebasBoton flotante en la esquina inferior para ejecutar pruebas

Paso a paso: Crear tu primera automatizacion

1

Nombrar la automatizacion

Haz clic en el campo superior que dice "Nombre de la automatizacion" y escribe un nombre descriptivo (ej: "Registrar cliente interesado").
2

Configurar el Gatillo

En el canvas, veras un nodo inicial "Gatillo". Haz clic para abrir el drawer, selecciona uno de los 5 tipos de gatillo, configura los parametros y guarda.
3

Agregar acciones al flujo

Debajo del gatillo, haz clic en el boton "+" para agregar un paso. Elige entre 9 acciones o 2 controles de flujo (condicion o iteracion). Configura cada paso en el drawer lateral.
4

Guardar la automatizacion

Haz clic en "Crear Automatizacion". El sistema validara que el gatillo este configurado y las condiciones/iteraciones esten completas. Se activara automaticamente.

Consejo

Puedes agregar multiples acciones encadenadas. Cada accion genera outputs (variables de salida) que puedes usar en los pasos siguientes.

Validaciones

  • "Debe seleccionar un gatillo" — Si no configuraste el trigger
  • "Condiciones invalidas en paso [X]" — Si una condicion esta incompleta
  • "Iteraciones invalidas en paso [X]" — Si una iteracion no tiene la lista configurada

Acciones disponibles

AccionDescripcion
Crear Registro en Tabla de DatosGuarda datos en una tabla personalizada
Buscar Registros en Tabla de DatosBusca datos existentes con filtros avanzados
Actualizar Registros en Tabla de DatosModifica registros encontrados en tablas
Enviar MensajeEnvia un mensaje al usuario o al asistente
Enviar EmailEnvia un correo electronico
Asignar EtiquetasAgrega o remueve etiquetas del chat
Transformar datos con IAUsa IA para procesar, clasificar o resumir datos
Llamar API ExternaHace una peticion HTTP a un servicio externo
Ejecutar JavascriptEjecuta codigo JavaScript personalizado
Seccion 4

Gatillos (Triggers)

El gatillo es el evento que dispara tu automatización. Ventor soporta gatillos conversacionales, programados, manuales, por API, por cambios en tablas y por comentarios en redes sociales.

Configuración de gatillos mostrando los tipos disponibles
Tipos de gatillos disponibles en el editor visual
GatilloCuándo usarloContexto principal
ai_contextCuando la IA debe reconocer una intención o situación en una conversación.Chat activo
cronCuando el flujo debe correr por horario, por día del mes o cada cierto intervalo.Sin chat directo
message_containsCuando basta con detectar palabras clave exactas en un mensaje entrante.Chat activo
trigger_api_callCuando un sistema externo dispara la automatización por HTTP.Payload externo
manualCuando un usuario de Ventor quiere ejecutarla bajo demanda desde la plataforma.Parámetros completados al ejecutar
data_addedCuando una fila de una tabla se crea, actualiza o elimina.Fila observada
instagram_commentCuando llega un comentario nuevo en Instagram.Comentario y publicación
tiktok_commentCuando llega un comentario nuevo en TikTok.Comentario y video

1. "Debo reconocer una situación" (ai_context)

IA reconoce una situación

Recomendado

La inteligencia artificial analiza cada mensaje entrante y decide si coincide con la situación que describiste. Es el gatillo más flexible para flujos conversacionales.

Úsalo cuando: necesitas detectar intención, contexto o datos que no se pueden resolver solo con palabras clave.

En Situación a reconocer, describe el escenario con suficiente detalle para que la IA sepa cuándo activar el flujo. Los parámetros definidos en el gatillo se extraen del mensaje o se solicitan al cliente si son obligatorios. Si el mensaje incluye imágenes o documentos, el asistente los analiza como parte de la conversación; no necesitas declarar una variable de adjuntos.

Ejemplo bueno

"Cuando el cliente confirma que quiere agendar una cita y proporciona una fecha y hora específica"

Ejemplo vago

"Cuando el cliente quiere algo"

CampoDescripción
NombreNombre en snake_case, por ejemplo nombre_cliente o fecha_cita.
Tipostring, integer, float, boolean, date, timestamp, json, list o media.
DescripciónExplica qué debe extraer o pedir la IA.
ObligatorioSi está activo, la IA intentará completar el dato antes de continuar.

Vincular tabla

Puedes vincular una tabla para importar sus columnas como parámetros. El vínculo se usa para mantener sincronizados los parámetros cuando la tabla cambia; no reemplaza las acciones de crear, buscar o actualizar registros.

System Message

Al activar System Message, la IA puede generar una respuesta natural después de ejecutar los pasos. Evita combinarlo con un paso Enviar mensaje al mismo {{ChatId}}si no quieres respuestas duplicadas.

2. "Programado" (cron)

Horario programado

Se ejecuta automáticamente en días y horas específicas, en días del mes o cada cierto intervalo de minutos.

Úsalo para: reportes diarios, recordatorios, sincronizaciones y tareas recurrentes.

FrecuenciaConfiguraciónEjemplo
DiariaDías de la semana y uno o más horarios.Lunes a viernes a las 09:00 y 14:00.
MensualDías del mes y uno o más horarios.Días 1 y 15 de cada mes a las 09:00.
IntervaloCada N minutos, opcionalmente dentro de un rango horario.Cada 30 minutos de 08:00 a 20:00.
Ejemplo: cada 30 minutos
{
  "frequency": "interval",
  "times": [],
  "selectedDays": [],
  "daysOfMonth": [],
  "intervalMinutes": 30,
  "activeHoursStart": "08:00",
  "activeHoursEnd": "20:00"
}

Importante

Las automatizaciones con trigger cron no tienen un chat asociado por defecto. No uses directamente {{ChatId}}, {{Nombre}} o {{NroTeléfono}}; busca los destinatarios en una tabla, itera sobre los resultados y usa un campo como {{P_L:loop_item.chat_uuid}} o {{P_L:loop_item.telefono}}.

3. "Mensaje Contiene" (message_contains)

Mensaje contiene palabras clave

Se activa cuando el cliente envía un mensaje que contiene una de las palabras clave configuradas. La comparación no distingue mayúsculas y minúsculas.

CampoDescripción
Palabras claveEscribe cada palabra o frase y presiona Enter para agregarla como chip.
Cuando este gatillo coincide, la automatización toma el control de ese turno. Salvo que el flujo pida explícitamente una respuesta del asistente, la IA no responde al mismo mensaje del cliente.

4. "Llamada a la API" (trigger_api_call)

Webhook / API externa

Se activa desde un sistema externo mediante una petición HTTP. Ideal para tiendas online, CRMs, ERPs, formularios externos o webhooks propios.

Ejemplo de petición
POST /automatization/{uuid}/run

Headers:
  Authorization: Bearer {tu_api_key}
  Content-Type: application/json

Body:
{
  "nombre_cliente": "María López",
  "monto": 150.50,
  "producto": "Plan Premium"
}
ElementoDetalle
requireAuthPor defecto debe estar activo para exigir Authorization: Bearer.
payloadEl body completo llega como {{payload}} y soporta dot notation.
ParámetrosÚsalos cuando conoces la estructura y quieres validar campos requeridos.

5. "Manual" (manual)

Ejecución bajo demanda

No se dispara automáticamente. Un usuario la ejecuta desde Ventor, desde un chat o desde el panel de pruebas, completando los parámetros necesarios.

CampoDescripción
ParámetrosDatos que el usuario debe completar antes de ejecutar el flujo.
Chat o destinoSi se ejecuta desde un chat puede usar ChatId; si no, declara destino, teléfono, email o chat_id como parámetro.
Es el gatillo correcto para procesos que el equipo quiere lanzar cuando quiera: generar una cotización, enviar un seguimiento puntual, reprogramar una reunión o ejecutar una tarea administrativa.

6. "Observar una tabla" (data_added)

Cambios en filas de una tabla

Se activa cuando una fila se crea, actualiza o elimina en la tabla seleccionada. Las columnas de esa fila se convierten en variables del trigger.

CampoDescripción
TablaTabla existente que Ventor debe observar.
Eventoscreated, updated y deleted. Si no eliges, el default suele ser created + updated.
Campos modificadosFiltro opcional para ejecutar solo cuando cambian columnas específicas, por ejemplo estado.
Ignorar cambios de automatizaciónRecomendado para evitar ciclos si otro paso modifica la misma tabla.

Variables meta disponibles

Además de las columnas, puedes usar {{event_type}}, {{changed_fields}}, {{current_row}} y {{previous_row}}. En eventos deleted normalmente usarás la fila anterior.

7. Instagram: Nuevo comentario (instagram_comment)

Comentario nuevo de Instagram

Se activa cuando llega un comentario nuevo en publicaciones o lives de Instagram conectados a Ventor.

VariableDescripción
{{comment_text}}Texto del comentario.
{{commenter_username}}Usuario que comentó.
{{media_permalink}}Link de la publicación.
{{comment_created_at}}Fecha del comentario.
{{user_follows_business}}Booleano: si el usuario sigue al negocio.

Reglas de acciones

Usa reply_comment para responder públicamente y send_private_reply para enviar el único DM permitido por Meta para ese comentario. No uses send_message, request_information ni tag_assignment con este gatillo porque no necesariamente existe un chat normal.

8. TikTok: Nuevo comentario (tiktok_comment)

Comentario nuevo de TikTok

Se activa cuando llega un comentario nuevo en videos de TikTok conectados a Ventor.

VariableDescripción
{{comment_text}}Texto del comentario.
{{commenter_username}}Usuario que comentó.
{{video_share_url}}Link del video.
{{comment_created_at}}Fecha del comentario.
{{user_follows_business}}Booleano: si el usuario sigue al negocio.

Reglas de TikTok

TikTok solo permite responder públicamente con reply_comment y la respuesta debe respetar el límite de 150 caracteres. No hay send_private_reply para TikTok; si necesitas mover la conversación a privado, la respuesta pública debe invitar al usuario a escribir por DM.
Seccion 5

Acciones

Las acciones son los pasos que se ejecutan cuando se activa el gatillo. El editor actual incluye 16 acciones de negocio, además de condiciones, iteraciones y secuencias programadas como control de flujo.

Acciones disponibles en el editor
Menú de selección de acciones al hacer clic en el botón +
AcciónPara qué sirveCuándo aparece
create_recordCrear una fila en una tabla de datos.Siempre
search_recordBuscar filas en una tabla usando condiciones.Siempre
update_recordActualizar filas existentes en una tabla.Siempre
send_messageEnviar texto, plantilla, adjuntos, formulario Flow u opciones interactivas.Siempre, salvo restricciones de comentario
reply_commentResponder públicamente un comentario.Triggers de Instagram o TikTok
send_private_replyEnviar el primer DM permitido por Meta a quien comentó.Solo trigger de Instagram
request_informationPedir datos y continuar cuando estén completos.Flujos con conversación activa
send_emailEnviar email desde el servicio de Ventor.Siempre
generate_documentCrear un PDF comercial sin validez tributaria.Siempre
tag_assignmentAgregar o quitar etiquetas en un chat.Chats normales
create_reminderCrear recordatorios vinculados a chat o generales.Siempre
execute_automationEjecutar otra automatización activa o inactiva y devolver sus salidas en JSON.Siempre, salvo triggers de comentario
transform_dataExtraer, clasificar o transformar datos con IA.Siempre
api_callLlamar un endpoint externo.Siempre
javascript_runEjecutar lógica JavaScript aislada.Siempre
app_connectionUsar apps conectadas como Google Calendar, Gmail, Drive o Sheets.Cuando hay o se conectará una app

1. Crear Registro en Tabla (create_record)

Crear Registro

Guarda datos en una tabla personalizada. Selecciona la tabla, rellena campos con valores fijos o variables, y Ventor crea la fila automáticamente.

Ejemplo: guardar cliente
Tabla: Clientes
nombre     -> {{Nombre}}
telefono   -> {{NroTeléfono}}
email      -> {{email}}
canal      -> {{Canal}}
fecha      -> {{FechaActual}}

Outputs

Genera un output por columna creada, por ejemplo {{N:_nombre}}, además de {{N:_created_at}}.

2. Buscar Registros en Tabla (search_record)

Buscar Registros

Busca registros existentes usando condiciones simples o grupos de condiciones. Sirve para recuperar clientes, pedidos, productos o cualquier tabla del negocio.

CampoDescripción
TablaTabla donde se realizará la búsqueda.
CondicionesConstructor de condiciones con AND/OR, operadores por tipo y dot notation para JSON/listas.
LímiteCantidad máxima de registros a devolver.
Cuando devuelves varios registros, usa {{N:_search_rows}} con una Iteración para recorrer cada fila.

3. Actualizar Registros (update_record)

Actualizar Registros

Modifica registros existentes. Primero define qué filas buscar y luego qué campos actualizar.

Ejemplo: confirmar pedido
Tabla: Pedidos
Condición: id es igual a {{id_pedido}}
Límite: 1

Campos a actualizar:
estado             -> confirmado
fecha_confirmacion -> {{FechaActual}}
En campos tipo lista puedes reemplazar la lista completa o usar modos de append cuando el flujo necesita agregar elementos sin borrar los existentes.

4. Enviar Mensaje (send_message)

Enviar Mensaje

Envía mensajes al cliente o instrucciones al asistente. Soporta texto libre, plantillas, adjuntos, WhatsApp Flows, botones y listas interactivas.

Mensaje al usuario

Envía el texto, plantilla o adjunto al destino configurado. Por defecto usa {{ChatId}}.

Mensaje al asistente

El texto no se envía al cliente. Se usa como instrucción para que la IA genere una respuesta.

CapacidadDetalle
PlantillasPermite usar plantillas Meta y plantillas WhatsApp Flow cuando corresponda.
AdjuntosSolo en modo normal sin plantilla: imágenes, documentos, audio, video o URLs generadas por pasos previos.
OpcionesHasta 10 opciones con ramas. De 1 a 3 se envían como botones cuando el canal lo soporta; con 4 o más WhatsApp usa lista.
ExpiraciónLas opciones interactivas pueden tener fecha de vencimiento.

Outputs

{{N:_message_id}}, {{N:_timestamp}} y {{N:_chat_uuid}}. Si la plantilla es un WhatsApp Flow, los campos del formulario también se exponen como outputs al completarse.

5. Responder comentario (reply_comment)

Responder comentario

Publica una respuesta visible debajo del comentario que activó el trigger. Funciona para Instagram y TikTok.

ModoDescripción
Mensaje fijoEscribes el texto exacto. En TikTok debe quedar dentro de 150 caracteres.
Responder con IALa IA redacta usando comentario, usuario y contexto de la publicación. Consume créditos de IA.
Úsalo solo con triggers instagram_comment o tiktok_comment. Para TikTok no existe mensaje privado desde comentarios; si necesitas seguir por DM, invita al usuario a escribirte.

6. Enviar mensaje privado (send_private_reply)

Enviar mensaje privado

Envía el primer mensaje privado permitido por Meta a la persona que comentó en Instagram.

ReglaDetalle
PlataformaSolo disponible para trigger instagram_comment.
CantidadMáximo un send_private_reply por automatización.
VentanaVálido dentro de los 7 días posteriores al comentario. En Live, solo durante el live.
ModoPuede ser mensaje fijo o redactado por IA.

7. Solicitar Datos (request_information)

Solicitar Datos

Pausa el flujo, recopila información faltante y continúa cuando todos los campos requeridos están completos.

ModoCuándo usarlo
Pedir con asistenteEl asistente conversa hasta completar los parámetros definidos.
Enviar formularioEnvía un WhatsApp Flow dentro de una ventana activa. Puede usar una plantilla Flow existente o generar un formulario interno.

Requiere conversación activa

No lo uses en cron, trigger_api_call, manual, data_added, instagram_comment ni tiktok_comment. En esos casos los datos deben venir como parámetros del gatillo, payload, fila observada o tabla.
Los pasos que dependen de los datos capturados deben ir dentro de la rama de continuación del submit. Si quedan como pasos hermanos, pueden ejecutarse antes de que el cliente complete la información.

8. Enviar Email (send_email)

Enviar Email

Envía un correo desde el servicio de Ventor con contenido HTML y adjuntos opcionales.

CampoDescripción
ParaEmail del destinatario. En WhatsApp/Instagram normalmente debes capturarlo como {{email}}, no asumir {{Email}}.
AsuntoSoporta variables.
CuerpoHTML con variables.
AdjuntosURLs, listas de URLs o datos generados por pasos previos.

Gmail del usuario

Si el correo debe salir desde la cuenta Gmail conectada del usuario, usa app_connection con la herramienta Enviar Email con Gmail, no send_email.

9. Generar Documento PDF (generate_document)

Generar Documento PDF

Crea PDFs comerciales como cotizaciones, presupuestos, notas de venta, resúmenes de pedido u órdenes de despacho.

CampoDetalle
TipoCotización, presupuesto, recibo/nota de venta, resumen de pedido, orden de despacho o personalizado.
ÍtemsDesde una variable lista de productos/servicios o filas manuales con variables.
DiseñoPreset, color, logo, datos del emisor, notas y texto final.
TotalesMoneda, descuento, impuesto incluido o agregado y numeración.
Esta acción no emite comprobantes fiscales. No uses títulos como factura, boleta, invoice o comprobante; el PDF incluye la leyenda "Documento sin validez tributaria".

Outputs

{{N:_pdf_url}}, {{N:_document_number}}, {{N:_total}} y {{N:_filename}}. Para enviarlo, encadena un send_message posterior con el PDF como adjunto.

10. Asignar Etiquetas (tag_assignment)

Asignar Etiquetas

Agrega o remueve etiquetas de un chat para clasificar y organizar conversaciones automáticamente.

CampoDescripción
Agregar etiquetasSelecciona etiquetas existentes o escribe una nueva.
Remover etiquetasSelecciona etiquetas que quieres quitar.
DestinoPor defecto {{ChatId}}; también puede ser otro chat válido.

11. Crear Recordatorio (create_reminder)

Crear Recordatorio

Programa una nota para una fecha futura. Puede quedar vinculada a una conversación o como recordatorio general.

CampoTipoDescripción
NotastringTexto del recordatorio. Soporta variables.
Fecha programadatimestampCuándo debe activarse. Soporta aritmética: {{FechaActual+30m}}, {{FechaActual+2h}}.

Outputs

{{N:_reminder_id}} y {{N:_reminder_scheduled_at}}.

12. Ejecutar otra automatización (execute_automation)

Ejecutar otra automatización

Encadena otra automatización de la misma cuenta, activa o inactiva, y devuelve sus salidas declaradas como un JSON.

CampoTipoDescripción
AutomatizaciónuuidLa automatización que se ejecutará. Puede estar activa o inactiva.
ParámetrosjsonValores para los trigger.parameters de la hija. Aceptan variables del flujo padre; la hija también recibe el contexto de conversación actual.

Output

Devuelve {{N:_outputs}} como JSON con las salidas de la automatización hija, usando sus tags como claves.

13. Transformar datos con IA (transform_data)

Transformar con IA

Usa IA para procesar, interpretar, clasificar, resumir o estructurar texto, imágenes y documentos. Elige el modelo, define un prompt y los parámetros de salida esperados.

Ejemplo: extraer datos de un mensaje
Prompt: "Del siguiente texto, extrae el producto,
la cantidad y el precio: {{mensaje_cliente}}"

Modelo: GPT-5.6 Terra
Adjuntos (opcional): {{1:_archivos}}

Parámetros de salida:
producto (string)
cantidad (integer)
precio   (float)
También puede devolver JSON o listas estructuradas cuando defines un esquema de salida. Cada parámetro genera un output con su nombre. El consumo queda registrado según el modelo elegido.

14. Llamar API Externa (api_call)

Llamar API

Realiza una petición HTTP a servicios externos: CRMs, ERPs, pasarelas de pago, webhooks o sistemas propios.

CampoDescripción
URLEndpoint completo. Soporta variables.
MétodoGET, POST, PUT, PATCH o DELETE.
Autenticaciónnone, bearer, basic o api_key según el servicio.
CuerpoJSON, form o sin body. Soporta variables y objetos nativos.

Dot notation

Para leer datos de la respuesta, usa dot notation: {{N:_response_body.data.id}} o {{N:_response_body.items[0].sku}}.

15. Ejecutar JavaScript (javascript_run)

Ejecutar JavaScript

Ejecuta código personalizado para lógica que no cabe en condiciones, tablas o transformaciones estándar.

AspectoDetalle
VariablesDefine entradas y salidas: string, number, boolean, array u object.
PermitidoMath, Date, String, Number, Boolean, Array, Object y JSON.
BloqueadoAcceso a archivos, red, eval y Function.
Tiempo máximo5 segundos.
Ejemplo: filtrar clientes activos
// Variable de entrada: datos = {{lista_clientes}}
// Variable de salida: activos = []

activos = datos.filter((cliente) => cliente.estado === "activo");
console.log("Clientes activos:", activos.length);
No redeclares variables configuradas con let, const o var. Asígnales valor directamente, como activos = ..., para que el motor pueda devolver los outputs.

16. Aplicaciones conectadas (app_connection)

Aplicaciones conectadas

Ejecuta herramientas de apps conectadas por el usuario. Hoy el proveedor disponible es Google.

HerramientaQué permite
Evento de CalendarCrear, editar, cancelar o eliminar eventos en el calendario elegido. Puede agregar Meet.
Listar Eventos de CalendarLeer próximos eventos en un rango de fechas y calendario.
Enviar Email con GmailEnviar desde la cuenta Gmail conectada, con CC y adjuntos.
Crear u obtener carpeta en DriveReutilizar una carpeta visible para Ventor del mismo nombre dentro del padre o crearla si todavía no existe. Devuelve folder_id/folder_link.
Subir Archivo a DriveSubir un archivo desde una URL a una carpeta seleccionada o creada por un paso anterior, y devolver file_id/file_link.
Agregar Fila en SheetsAppend de filas a un spreadsheet y rango.
Leer datos de SheetsLeer un rango de Google Sheets y devolver datos + cantidad de filas.

El ID no reemplaza la autorización

Con el permiso limitado de Google Drive, pegar el ID de una carpeta existente no le da acceso a Ventor. Selecciona una carpeta base una sola vez con Google Picker. “Crear u obtener” no adopta una carpeta preexistente que Ventor todavía no puede ver; podría crear otra con el mismo nombre dentro del padre visible. En cambio, una carpeta creada por Ventor ya puede usarse directamente mediante su output {{N:_folder_id}}.
Patrones de carpetas dinámicas
A. Base / Mes: selecciona la base con Picker
1. Asegurar {{mes_documento}} dentro de la base -> {{1:_folder_id}}
2. Subir archivo con folder_id = {{1:_folder_id}}

B. Base / Año / Mes: selecciona la base con Picker
1. Asegurar {{anio_documento}} dentro de la base -> {{1:_folder_id}}
2. Asegurar {{mes_documento}} dentro de {{1:_folder_id}} -> {{2:_folder_id}}
3. Subir archivo con folder_id = {{2:_folder_id}}

C. Base creada por Ventor
1. Asegurar "Caja chica" sin parent_folder_id -> {{1:_folder_id}}
2. Asegurar {{anio_documento}} dentro de {{1:_folder_id}} -> {{2:_folder_id}}
3. Asegurar {{mes_documento}} dentro de {{2:_folder_id}} -> {{3:_folder_id}}
4. Subir archivo con folder_id = {{3:_folder_id}}
“Crear u obtener” es idempotente: busca el nombre exacto dentro del mismo padre, reutiliza la carpeta activa si ya existe y solo crea una nueva si falta. Sin carpeta padre, trabaja en la raíz de Mi unidad. El Picker debe apuntar al contenedor del nivel que se creará: si Ventor creará “Julio”, selecciona “Facturas (Compras)”, no “Julio”. Para comprobantes, deriva Año y Mes de la fecha del documento cuando corresponda, no de la fecha en que llegó el archivo.

VentorAI te guía con la configuración

Si una automatización necesita conectar Google, elegir una cuenta o seleccionar una carpeta existente, VentorAI muestra una checklist con la acción pendiente. Puedes completarla desde la tarjeta o guardarla como borrador inactivo; no se podrá activar mientras falte una configuración obligatoria.
Si el usuario todavía no conectó Google, Ventor puede pedir la conexión al confirmar o editar la automatización. Para Gmail, los adjuntos y la firma con imagen se guardan en los parámetros del paso.
Seccion 6

Control de Flujo

Ademas de las acciones, puedes agregar condiciones (if/else), iteraciones (bucles) y secuencias programadas para crear logica mas compleja en tus flujos.

Condicion (if/else)

Bifurca el flujo en dos ramas basandose en una condicion. La rama izquierda (verde, "V") se ejecuta si la condicion es verdadera; la rama derecha (roja, "F") se ejecuta si es falsa.

Visualizacion en el canvas
         [Condicion]
        /            \
   Verdadero (V)   Falso (F)
      |                |
  [Accion 1]       [Accion A]
      |                |
  [Accion 2]       [Accion B]
CampoDescripcion
Campo a evaluarLa variable a comparar (placeholder: "Valor 1")
Tipo de campostring, integer, float, boolean, date, timestamp
OperadorLa comparacion a realizar (ver tabla de operadores)
ValorEl valor contra el que comparar (placeholder: "Valor 2")

Operadores por tipo de dato

Texto (string)

OperadorDescripcion
equalsEs igual a (exacto, sensible a mayusculas)
not_equalsEs diferente a
containsContiene el texto (no sensible a mayusculas)
not_containsNo contiene el texto
starts_withEmpieza con
ends_withTermina con
similarBusqueda por similitud (fuzzy, umbral 0.2)
is_emptyEsta vacio (no requiere valor)
is_not_emptyNo esta vacio (no requiere valor)

Numeros (integer, float, serial)

OperadorDescripcion
equalsEs igual a
not_equalsEs diferente a
greater_thanEs mayor que
less_thanEs menor que
greater_or_equalEs mayor o igual que
less_or_equalEs menor o igual que
is_emptyEs nulo (no requiere valor)
is_not_emptyNo es nulo (no requiere valor)

Booleano (boolean)

OperadorDescripcion
isTrueEs verdadero (no requiere valor)
isFalseEs falso (no requiere valor)
is_emptyEs nulo (no requiere valor)
is_not_emptyNo es nulo (no requiere valor)

Fecha (date, timestamp)

OperadorDescripcion
equalsEs la misma fecha
not_equalsEs diferente fecha
beforeEs antes de
afterEs despues de
esHoyEs de las ultimas 24 horas (no requiere valor)
esSemanaEs de esta semana (lunes a domingo, no requiere valor)
esQuincenaEs de esta quincena (1-15 o 16-fin, no requiere valor)
esMesEs de este mes (no requiere valor)
is_emptyEs nulo (no requiere valor)
is_not_emptyNo es nulo (no requiere valor)

Iteracion (Bucle)

Repite un conjunto de acciones para cada elemento de una lista. Ideal para enviar mensajes masivos, procesar registros de una tabla o recorrer resultados de una busqueda.

Visualizacion en el canvas
[Iteracion: recorrer {{lista}}]
  |
  [Accion 1 (se repite por cada elemento)]
  |
  [Accion 2 (se repite por cada elemento)]
CampoDescripcion
Lista a iterarLa variable tipo lista a recorrer (ej: {{2:_search_rows}})

Variables disponibles dentro del bucle:

VariableTipoDescripcion
{{N_L:loop_item}}jsonEl elemento actual de la lista
{{N_L:loop_index}}integerEl indice actual (comenzando en 1)

Dot notation

Para acceder a propiedades del elemento actual, usa dot notation: {{3_L:loop_item.nombre}}, {{3_L:loop_item.email}}
Ejemplo completo: Mensaje masivo a clientes activos
Paso 1: Buscar registros en tabla "Clientes" donde estado = "activo" (limite: 100)
Paso 2: Iteracion sobre {{1:_search_rows}}
  └─ Paso 1 (dentro): Enviar mensaje "Hola {{2_L:loop_item.nombre}}!"
                       al destino {{2_L:loop_item.chat_uuid}}

Secuencia Programada

Secuencia Programada

Programa un grupo de acciones para ejecutarse en una fecha futura. Funciona como una rama que se activa cuando llega el momento programado.

Define una fecha futura y coloca acciones dentro de la secuencia. Cuando llegue esa fecha, las acciones se ejecutan automaticamente. Tambien puedes reprogramar o cancelar una secuencia existente si guardaste antes su {{N:_scheduled_id}}.

Visualizacion en el canvas
[Secuencia Programada: {{FechaActual+1440m}}]
  |
  [Accion 1 (se ejecuta cuando llegue la fecha)]
  |
  [Accion 2 (se ejecuta cuando llegue la fecha)]
CampoTipoDescripcion
Operacioncreate / reschedule / cancelPor defecto crea una nueva secuencia. Para reprogramar o cancelar, usa el ID de una secuencia ya creada.
Fecha programadatimestamp / stringCuando ejecutar las acciones. Acepta: fecha fija ISO, variable de tipo timestamp o variable de texto que contenga un timestamp. Soporta aritmetica: {{FechaActual+30m}}, {{FechaActual+7d}}, {{1:_fecha_cita}}
ID programadostringRequerido para reschedule/cancel. Normalmente viene de {{N:_scheduled_id}} guardado en una tabla.

Outputs

Al crear o reprogramar devuelve {{N:_scheduled_id}}, {{N:_scheduled_at}} y {{N:_status}}. Al cancelar devuelve el ID y el estado.

Anidamiento

Puedes colocar condiciones, iteraciones y otras secuencias programadas dentro de una secuencia programada. Las variables del flujo padre estan disponibles dentro.

Mecanismo de ejecucion

Al activarse la automatizacion, se crea una interaccion pendiente (PendingInteraction) en la base de datos y un cron job en Redis que se dispara exactamente en la fecha programada. Cuando el job se ejecuta, lanza las acciones internas con el contexto original del flujo.

Modo test

En modo test (o si la fecha programada ya paso), las acciones internas se ejecutan de inmediato, sin crear el job en Redis.
Seccion 7

Botones Interactivos (Opciones)

Cualquier paso de "Enviar Mensaje" puede incluir botones interactivos que permiten al cliente responder con un solo toque.

Configuracion de botones

En un paso de "Enviar Mensaje", abre "Configuraciones Avanzadas" y haz clic en "Agregar Boton". Puedes agregar hasta 10 opciones. Ventor adapta la experiencia segun el canal.

CampoDescripcion
Texto del botonTexto multicanal visible para el cliente (maximo 20 caracteres)
Datos de lista WhatsAppCon 4 o mas opciones puedes configurar seccion, titulo y descripcion de cada fila de la lista.
Pasos siguientesAcciones que se ejecutan cuando el cliente presiona este boton
System MessageSi esta activo, la respuesta del boton se procesa por la IA
Como se ve en el canvas
[Enviar Mensaje con 3 botones]
    |          |           |
 [Boton 1]  [Boton 2]  [Boton 3]
    |          |           |
 [Accion]   [Accion]    (IA procesa)

Expiracion de interaccion

Define hasta cuando son validos los botones. Acepta una fecha fija ISO (2026-12-31T23:59:00.000Z) o una variable dinamica ({{1:_timestamp}}). Si se omite, los botones no expiran.

Adaptacion por canal

CanalFormato de botones
WhatsApp (plantilla)QUICK_REPLY de la plantilla Meta
WhatsApp (texto libre)1-3 opciones: botones. 4-10 opciones: lista interactiva
Instagram / FacebookQuick Replies
TelegramInline Keyboard
TikTokTexto numerado; el cliente responde con el numero

Variables disponibles en pasos de botones

VariableDescripcion
{{N:respuesta_boton}}El texto (label) del boton presionado
{{N:respuesta_boton_key}}El identificador (key) del boton presionado
Seccion 8

Sistema de Variables

Las variables son el mecanismo que permite que los datos fluyan entre los pasos de una automatizacion. Todas usan el formato {{nombre}}.

Variables del contexto (triggers con chat)

VariableTipoDescripcion
{{Nombre}}stringNombre del contacto
{{ChatId}}stringUUID unico del chat/conversacion
{{Canal}}stringCanal de origen (whatsapp, instagram, etc.)
{{NroTelefono}}stringNumero de telefono del contacto
{{Email}}stringEmail del contacto
{{InfoEmail}}jsonMetadatos del correo actual. Solo está disponible cuando el workspace tiene un canal Gmail del propietario activo y la conversación proviene de Gmail.
{{Etiquetas}}stringEtiquetas del chat (separadas por comas)
{{FechaContacto}}dateFecha del primer contacto
{{Asignado}}stringAgente asignado al chat (Asistente, Humano, o email del agente)
{{FechaActual}}dateFecha y hora actual de ejecucion
Estas variables dependen de que exista una conversación normal. Son confiables en ai_context y message_contains; en una ejecución manual solo existen si se lanza desde un chat. En cron, trigger_api_call, data_added y triggers de comentarios, esos datos deben venir de parámetros, payload, fila observada o búsquedas en tablas.
En Gmail, {{Email}} identifica al remitente/contacto y {{InfoEmail}} contiene los metadatos del correo. Los IDs internos del proveedor y los adjuntos no se exponen como variables: el asistente recibe los archivos como parte del mensaje.

Variables del trigger (parametros)

Los parametros definidos en el gatillo se convierten en variables con su nombre directamente:

Ejemplo
Parametro definido: nombre_cliente (string)
Variable disponible: {{nombre_cliente}}

Parametro definido: fecha_cita (date)
Variable disponible: {{fecha_cita}}

Payload API y parámetros manuales

OrigenVariables disponibles
trigger_api_callEl body completo llega como {{payload}}. Puedes leer campos anidados con dot notation, por ejemplo {{payload.cliente.nombre}} o {{payload.items[0].sku}}.
manualCada parámetro que el usuario completa al ejecutar se vuelve variable con el mismo nombre.
En trigger API, declara parámetros solo cuando quieres validar campos específicos. Si el body puede cambiar, usa {{payload}} directamente.

Variables de tabla observada

En un gatillo data_added, las columnas de la fila observada quedan disponibles como variables. Además, Ventor agrega variables meta para entender qué pasó.

VariableDescripción
{{event_type}}created, updated o deleted.
{{changed_fields}}Lista de columnas modificadas cuando el evento es updated.
{{current_row}}Fila actual completa en eventos created o updated.
{{previous_row}}Fila anterior completa en eventos updated o deleted.

Variables de comentarios de Instagram y TikTok

TriggerVariables
instagram_comment{{comment_text}}, {{commenter_username}}, {{media_permalink}}, {{comment_created_at}} y {{user_follows_business}}.
tiktok_comment{{comment_text}}, {{commenter_username}}, {{video_share_url}}, {{comment_created_at}} y {{user_follows_business}}.
No uses IDs internos del comentario, media, video o usuario en textos visibles para el cliente. Las variables públicas anteriores son las pensadas para mensajes, condiciones y tablas.

Variables de salida (outputs de acciones)

Cada accion genera variables de salida con un prefijo numerico que indica su posicion en el flujo:

Formato de outputs
Paso 1 → {{1:_nombre_variable}}
Paso 2 → {{2:_nombre_variable}}
Paso 3 → {{3:_nombre_variable}}

Variables de iteracion (bucles)

Dentro de un bucle tienes acceso a dos variables especiales:

Variables de iteracion
Paso 3 (iteracion):
  {{3_L:loop_item}}    → El elemento actual de la lista
  {{3_L:loop_index}}   → El indice actual (comenzando en 1)

Aritmetica de fechas

Las variables de tipo date y timestamp soportan modificadores aritmeticos para sumar o restar tiempo. El formato es {{variable+cantidadunidad}} o {{variable-cantidadunidad}}.

UnidadSufijoSumarRestar
Minutosm{{FechaActual+120m}} — 120 minutos despues{{FechaActual-30m}} — 30 minutos antes
Horash{{FechaActual+2h}} — 2 horas despues{{FechaActual-1h}} — 1 hora antes
Diasd{{FechaActual+7d}} — 7 dias despues{{FechaActual-5d}} — 5 dias antes

Atajos rapidos

Al seleccionar una variable de fecha en el editor, aparecen botones rapidos como "En 15 min", "En 30 min", "En 1 hora" que insertan automaticamente la variable con el offset correspondiente.
La aritmetica se aplica en el momento de ejecucion. Si usas {{FechaActual+1440m}}, el resultado sera la fecha/hora exacta 24 horas despues de cuando se ejecuta la accion. El operador - permite retroceder en el tiempo, util para fechas limites o periodos de gracia.

Sistema de prefijos para pasos anidados

Cuando los pasos estan anidados dentro de condiciones, iteraciones o botones, los prefijos se acumulan para identificar exactamente donde esta cada paso:

Raiz (nivel principal)

Paso 1 → prefijo: 1
Paso 2 → prefijo: 2

Dentro de condicion (paso 2)

Rama Verdadera:
  Paso 1 → prefijo: 2_V1    (V = Verdadero)
  Paso 2 → prefijo: 2_V2

Rama Falsa:
  Paso 1 → prefijo: 2_F1    (F = Falso)

Dentro de iteracion (paso 3)

Variables del bucle: {{3_L:loop_item}}, {{3_L:loop_index}}
Pasos internos:
  Paso 1 → prefijo: 3_L1    (L = Loop)
  Paso 2 → prefijo: 3_L2

Dentro de botones (paso 1, opcion 0)

Paso 1 → prefijo: 1_B0_1    (B0 = Boton indice 0)
Paso 2 → prefijo: 1_B0_2

Anidamiento profundo (condicion → iteracion → condicion)

Paso 2 (condicion):
  Rama V:
    Paso 1 (iteracion):
      Paso 1 (accion)   → prefijo: 2_V1_L1
      Paso 2 (condicion):
        Rama V:
          Paso 1         → prefijo: 2_V1_L2_V1
        Rama F:
          Paso 1         → prefijo: 2_V1_L2_F1

Regla fundamental

  • El index de cada paso es siempre su numero LOCAL dentro de su contenedor (1, 2, 3...). Se reinicia en cada nivel.
  • El tag de cada output usa el prefijo COMPLETO acumulado: {prefijo}:_{nombre}

Acceso a propiedades anidadas (dot notation)

Para acceder a datos dentro de objetos o listas, usa el punto (.):

Ejemplos de dot notation
{{3:_response_body.data.name}}         → Propiedad anidada de un objeto
{{3:_response_body.items[0].id}}       → Primer elemento de un array
{{1:_search_rows[0].nombre}}           → Nombre del primer resultado
{{2_L:loop_item.direccion.ciudad}}     → Propiedad de un elemento en iteracion
El dot notation es especialmente util con las acciones "Llamar API" y "Buscar Registros", donde las respuestas suelen ser objetos complejos con propiedades anidadas.
Seccion 9

Tablas de Datos

Las tablas de datos son bases de datos personalizadas que se integran directamente con las automatizaciones. Puedes crear, buscar y actualizar registros desde tus flujos.

Vista de tablas de datos con columnas y registros
Tabla de datos personalizada con registros y columnas editables

Crear una tabla

1

En la barra lateral, ve a "Avanzado" > "Tablas"

2

Haz clic en "Nueva tabla" y define el nombre

3

Agrega columnas con nombre, tipo, si es obligatoria y descripcion

4

Guarda la tabla

Tipos de columnas disponibles

TipoDescripcionEjemplo de uso
stringTexto libreNombres, descripciones, notas
integerNumero enteroCantidades, IDs, edades
floatNumero decimalPrecios, montos, porcentajes
booleanVerdadero/FalsoActivo, pagado, verificado
dateFecha (YYYY-MM-DD)Fecha de nacimiento, vencimiento
timestampFecha y hora completaFecha de creacion, ultima actualizacion
serialAuto-incrementoID unico automatico
jsonObjeto JSONDatos estructurados complejos
listLista/ArrayMultiples valores, tags
mediaMultimediaVideos, audios

Importar datos desde Excel/CSV

Tienes dos formas de importar datos a una tabla:

Pestana "Upload"

  1. Descarga la plantilla Excel
  2. Rellena cada fila respetando los tipos
  3. Sube el archivo (.xlsx o .csv)
  4. Revisa la previsualizacion
  5. Haz clic en "Confirmar e Importar"

Pestana "AI"

  1. Pega datos en cualquier formato
  2. Haz clic en "Transformar con IA"
  3. La IA convierte al formato correcto

Editar y exportar

Editar inline: Haz clic en cualquier celda para editarla directamente. Los cambios se guardan automaticamente.

Exportar a Excel: Dentro de la tabla, haz clic en el boton de descarga para exportar todos los datos.

Recomendacion clave

El campo chat_uuid es el mejor identificador unico por cliente. Cuando crees tablas que necesiten relacionar datos con un cliente, incluye una columna chat_uuid (tipo string). Esto permite buscar y actualizar registros usando {{ChatId}} como condicion.
Seccion 10

Constructor de Condiciones de Busqueda

La interfaz visual para definir filtros de busqueda y actualizacion de registros en tablas. Se usa en las acciones "Buscar Registros" y "Actualizar Registros".

Estructura de condiciones

Las condiciones se organizan en grupos que pueden contener condiciones simples u otros grupos anidados:

Ejemplo: Busqueda con condiciones anidadas
Grupo (AND)
  ├── Condicion: email es igual a {{Email}}
  ├── Condicion: estado es diferente a "cancelado"
  └── Grupo (OR)
        ├── Condicion: tipo es igual a "premium"
        └── Condicion: antiguedad es mayor que 365

Resultado: email = {{Email}} AND estado != "cancelado"
           AND (tipo = "premium" OR antiguedad > 365)

Como agregar condiciones

1

Haz clic en "Agregar condicion"

Agrega una condicion simple: selecciona campo, operador y valor.
2

Configura cada condicion

Selecciona el campo (columna de la tabla), el operador de comparacion y el valor (puede ser una variable {{}})
3

Haz clic en "Agregar grupo" para crear subgrupos

Los subgrupos tienen su propio operador (AND/OR) y se muestran con borde de color diferente.

Operadores de grupo

AND

Todas las condiciones deben cumplirse simultaneamente.

OR

Al menos una condicion debe cumplirse.

Haz clic en el operador ("AND" / "OR") del grupo para alternarlo. Los mismos operadores de la seccion "Condicion if/else" aplican aqui, organizados por tipo de campo.
Seccion 11

Plantillas en Automatizaciones

Las plantillas de mensaje se usan para enviar mensajes predefinidos, especialmente cuando necesitas contactar a clientes fuera de la ventana de 24 horas de WhatsApp.

¿Cuando usar plantillas?

SituacionTipo de plantilla¿Necesaria?
Trigger ai_context o message_contains (dentro de 24h)Texto libre o plantillaOpcional
Trigger cron (envio programado)Plantilla Meta obligatoriaSi
Trigger trigger_api_callPlantilla Meta recomendadaRecomendada
Trigger manual o data_added sin chat activoPlantilla Meta si el destino es WhatsApp fuera de 24hDepende del destino
Envio fuera de ventana 24h (WhatsApp)Plantilla Meta obligatoriaSi

Usar una plantilla en "Enviar Mensaje"

1

Abre "Configuraciones Avanzadas" en el paso de Enviar Mensaje

2

Haz clic en el campo de busqueda de plantillas

3

Selecciona la plantilla deseada

4

Rellena cada variable de la plantilla con un valor fijo o {{variable}}

Asistente IA

El Asistente de IA puede sugerirte las plantillas necesarias automaticamente. Las plantillas Meta deben ser aprobadas por Meta antes de usarse (minutos a 48 horas).
Seccion 12

Probar Automatizaciones

El panel de pruebas te permite ejecutar la automatizacion en modo de prueba para verificar que el flujo funciona correctamente antes de activarlo.

Como probar

1

En el editor visual, haz clic en el boton flotante de pruebas (esquina inferior)

2

Si el gatillo tiene parametros, rellénalos en "Variables necesarias"

3

Haz clic en "Ejecutar"

Los logs aparecen en tiempo real en los Registros de Ejecucion.

Interpretar los logs

IconoSignificado
Spinner girandoPaso en ejecucion
✓ Check verdePaso completado exitosamente
✗ X rojaPaso con error

¿Que puedes verificar?

Que el flujo se ejecuta en el orden correcto
Que las variables se resuelven correctamente
Que las condiciones evaluan como se espera
Que las iteraciones recorren los datos
Que las APIs externas responden correctamente
Que los registros se crean/actualizan en tablas
En modo de prueba, los mensajes de WhatsApp/Instagram/etc. NO se envian realmente al cliente. Los pasos de envio se simulan.
Seccion 13

Asistente de Automatizaciones (IA)

Una IA conversacional que te ayuda a crear o modificar automatizaciones sin configurar manualmente cada componente. Describe lo que necesitas y la IA genera la automatizacion completa.

Ventor Bot

Crea automatizaciones conversando

Describe lo que necesitas en lenguaje natural y la IA genera la automatizacion completa con todos los pasos, condiciones y variables.

Como funciona

1

Describe tu necesidad

"Quiero que cuando un cliente pregunte por precios, capture el nombre del producto y busque en mi tabla Productos"
2

La IA te hace preguntas

Si necesita mas informacion, preguntara para aclarar el flujo.
3

La IA genera la automatizacion

Genera el flujo completo y lo muestra como previsualizacion interactiva.
4

Recursos sugeridos

Si necesitas tablas o plantillas que no existen, la IA las sugiere como "recursos necesarios" que puedes crear con un clic.
5

Edicion iterativa

"Agrega un paso que envie un email tambien", "Cambia el mensaje del paso 2"

Tips para mejores resultados

Se especifico

"Enviar bienvenida cuando un cliente nuevo escribe por WhatsApp, capturando nombre y email"

Menciona tus recursos

"Usando mi tabla Clientes", "Con la plantilla bienvenida_nueva"

Describe el flujo completo

Incluye condiciones, excepciones y casos especiales

Pide cambios incrementales

"Agrega una condicion antes del paso 3", "Cambia el mensaje del paso 2"

Seccion 14

Compartir Automatizaciones

Publica tus automatizaciones para que otros las reutilicen, o importa automatizaciones compartidas por otros usuarios.

Marketplace de automatizaciones compartidas
Marketplace de Ventor Share con automatizaciones de la comunidad

Compartir una automatizacion

1

En la lista, haz clic en el menu de opciones (3 puntos)

2

Selecciona "Compartir"

Se genera un enlace publico que puedes copiar y compartir.

Importar una automatizacion

Al acceder al enlace de una automatizacion compartida, el sistema analiza automaticamente las diferencias:

Tablas que necesitas crear (si la automatizacion usa tablas que no tienes)
Tablas que necesitan modificacion (si les faltan columnas)
Plantillas necesarias que debes crear
Al hacer clic en "Importar", los recursos necesarios se crean automaticamente durante la importacion.
Seccion 15

Reglas de Mensajeria por Canal

Es fundamental entender las restricciones de cada canal para disenar automatizaciones que funcionen correctamente.

WhatsApp

SituacionPermitido
Dentro de 24h del ultimo mensajeTexto libre, imagenes, documentos, audio, video — sin restricciones
Fuera de 24hSOLO Plantillas Meta aprobadas
Trigger cron (no hay chat activo)SOLO Plantillas Meta aprobadas
Trigger trigger_api_callPlantillas Meta recomendadas
Trigger manual/data_added sin conversación activaDepende del destino y de la ventana de 24h

Instagram y Facebook Messenger

SituacionPermitido
Dentro de 24hMensajes de texto libre
Fuera de 24hNO es posible enviar mensajes (no existen plantillas Meta para estos canales)

Comentarios de Instagram y TikTok

SituacionPermitido
Instagram: comentario nuevoreply_comment para respuesta pública y un send_private_reply como primer DM permitido por Meta.
TikTok: comentario nuevoSolo reply_comment público, máximo 150 caracteres.

Telegram

SituacionPermitido
En cualquier momentoTexto libre — sin restriccion de ventana de 24h

Recomendaciones clave

  • Si tu automatizacion usa trigger cron y envia mensajes por WhatsApp fuera de una conversación activa → usa plantilla Meta
  • Si tu flujo puede ejecutarse fuera de las 24h → incluye una plantilla Meta como alternativa
  • Para Instagram/Facebook fuera de 24h → sugiere WhatsApp como canal alternativo
Seccion 16

Limites y Planes

Cada plan tiene limites de ejecuciones mensuales y creditos de IA. Conoce los limites tecnicos y las buenas practicas.

Limites por plan

PlanEjecuciones/mesCreditos IA/mes
Gratis504,500
Basico ($30/mes)50045,000
Profesional ($80/mes)2,000135,000
Empresarial ($200/mes)10,000450,000

Limites tecnicos

LimiteValor
Ejecucion de JavaScriptMaximo 5 segundos
Botones por mensajeMaximo 10 opciones; 1-3 se muestran como botones cuando el canal lo soporta, 4-10 se adaptan a lista/quick replies/texto numerado
Caracteres por botonMaximo 20 caracteres
Caracteres por mensajeMaximo 4,096 caracteres
Adjuntos de emailURLs, listas de URLs, o datos para Excel
Respuesta comentario TikTokMaximo 150 caracteres

Buenas practicas

1

Nombra descriptivamente

Usa nombres claros como "Registrar lead de WhatsApp" en vez de "Auto 1"

2

Prueba antes de activar

Siempre usa el panel de pruebas antes de activar una automatizacion

3

Empieza simple

Crea flujos simples y ve agregando complejidad gradualmente

4

Un proceso = una automatizacion

Si un proceso es muy complejo, dividelo en varias automatizaciones

5

Usa tablas para persistir datos

Si necesitas datos entre ejecuciones, guardalos en tablas

6

Incluye chat_uuid en tablas

Para poder buscar/actualizar registros por cliente

7

Usa el System Message

Para que la IA genere respuestas naturales al completar procesos

8

Monitorea las ejecuciones

Revisa las metricas y los logs para detectar errores

Seccion 17

Casos de Uso y Ejemplos

Ejemplos practicos de automatizaciones comunes que puedes recrear en tu cuenta.

🎯

Captura de leads

Cuando un cliente muestra interes, capturar sus datos y notificar al equipo de ventas.

1Gatillo: IA detecta interes de compra
2Crear registro en tabla "Leads"
3Asignar etiqueta "Interesado"
4Enviar email al equipo de ventas
📅

Recordatorio programado

Cada lunes a las 9am, enviar recordatorio a clientes con pedidos pendientes.

1Gatillo: cron — Lunes 09:00
2Buscar pedidos con estado "pendiente"
3Si hay resultados, iterar y enviar plantilla
🔗

Integracion con API

Consultar el estado de un pedido en el ERP cuando el cliente pregunta.

1Gatillo: IA detecta consulta de pedido
2Llamar API del ERP con numero de pedido
3Si responde 200, informar estado al cliente
🔘

Botones interactivos

Preguntar al cliente que tipo de soporte necesita con botones de respuesta rapida.

1Enviar mensaje: "¿Como puedo ayudarte?"
2Boton 1: "Problema tecnico" → Etiqueta
3Boton 2: "Consulta ventas" → Etiqueta
4Boton 3: "Otro" → IA responde
📄

Cotización automática

Capturar productos solicitados, generar un PDF y enviarlo al cliente.

1Gatillo: IA detecta solicitud de cotización
2Solicitar datos faltantes si hace falta
3Generar documento PDF
4Enviar mensaje con el PDF adjunto
💬

Respuesta a comentarios

Responder comentarios de Instagram o TikTok con reglas de cada plataforma.

1Gatillo: nuevo comentario
2Condición: usuario sigue al negocio
3reply_comment público
4Instagram: opcional send_private_reply
📆

Agenda con Google Calendar

Crear una reunión y guardar los IDs necesarios para reprogramar o cancelar.

1Solicitar fecha y email
2app_connection: crear evento de Calendar
3Guardar event_id y calendar_id en tabla
4Crear recordatorio o secuencia programada

Ejemplo detallado: Captura de leads

Flujo completo
Gatillo: ai_context
  Situacion: "Cuando el cliente muestra interes en un producto y proporciona sus datos"
  Parametros: nombre (string), producto_interes (string), email (string)

Paso 1: Crear registro en tabla "Leads"
  nombre         → {{nombre}}
  producto       → {{producto_interes}}
  email          → {{email}}
  chat_uuid      → {{ChatId}}
  fecha          → {{FechaActual}}

Paso 2: Asignar etiqueta "Interesado" al chat

Paso 3: Enviar email al equipo de ventas
  Para:    ventas@miempresa.com
  Asunto:  "Nuevo lead: {{nombre}}"
  Cuerpo:  "Producto: {{producto_interes}}, Email: {{email}}"

Ejemplo detallado: Recordatorio programado

Flujo con cron + iteracion
Gatillo: cron — Lunes a las 09:00

Paso 1: Buscar registros en tabla "Pedidos"
  Condicion: estado = "pendiente" (limite: 100)

Paso 2: Condicion — {{1:_search_count}} es mayor que 0
  Rama Verdadera:
    Paso 1: Iterar sobre {{1:_search_rows}}
      Paso 1: Enviar mensaje (plantilla Meta "recordatorio_pedido")
        destino: {{2_V1_L:loop_item.chat_uuid}}
        variables: nombre = {{2_V1_L:loop_item.nombre_cliente}}
  Rama Falsa:
    (no hacer nada)
Seccion 18

Solucion de Problemas

Errores comunes y como resolverlos rapidamente.

Mi automatizacion no se activa

1Verifica que la automatizacion esta activa (badge verde)
2Si usa trigger ai_context: revisa que la descripcion sea clara y especifica
3Si usa trigger message_contains: verifica que las palabras clave coincidan
4Si usa trigger cron: verifica los dias, horas y zona horaria
5Verifica que tienes ejecuciones disponibles en tu plan

El mensaje no se envia

1Si es WhatsApp fuera de 24h: debes usar una Plantilla Meta aprobada
2Verifica que el campo destino tiene un valor valido ({{ChatId}} o numero)
3Verifica que la plantilla Meta esta en estado "Aprobado" (verde)
4Verifica que tienes metodo de pago registrado en Meta Business

Error en condicion/busqueda

1Verifica que el operador es compatible con el tipo de campo
2Verifica que el valor es del tipo correcto (numeros como "100")
3Verifica que el nombre del campo coincide con la columna en la tabla

Se agotaron mis ejecuciones

1Ve a "Mi Plan" para ver tu uso actual
2Sube de plan para mas ejecuciones mensuales
3Las ejecuciones se reinician cada ciclo de facturacion

Error en JavaScript

1Recuerda el limite de 5 segundos de ejecucion
2Usa solo funciones permitidas (Math, Date, String, etc.)
3No puedes acceder a archivos, red, eval ni Function
4Revisa los logs y error en los outputs del paso

La IA no extrae los parametros correctamente

1Mejora la descripcion del parametro ("Que debe extraer la IA")
2Marca como obligatorio los parametros criticos
3Usa tipos de dato especificos (integer en vez de string para cantidades)
Seccion 19

Glosario

Terminos tecnicos del sistema de automatizaciones.

TerminoDefinicion
AutomatizacionFlujo de trabajo automatico compuesto por un gatillo y pasos de acciones
Gatillo / TriggerEl evento que dispara la ejecucion de una automatizacion
Paso / StepCada elemento del flujo: puede ser una accion, condicion o iteracion
AccionUn paso que ejecuta una operacion: enviar mensaje, crear registro, etc.
CondicionBifurcacion if/else que divide el flujo en dos ramas
Iteracion / BucleRepeticion de pasos para cada elemento de una lista
VariableDato dinamico referenciado como {{nombre}} que fluye entre pasos
OutputVariable de salida generada por un paso, disponible para pasos posteriores
Tag (prefijo)Identificador unico de un output que incluye la ruta de anidamiento
Tabla de datosBase de datos personalizada donde guardas informacion del negocio
Plantilla MetaMensaje predefinido aprobado por Meta, necesario fuera de la ventana de 24h
Ventana de 24hPeriodo desde el ultimo mensaje del cliente donde puedes enviar texto libre por WhatsApp
System MessageOpcion que hace que la IA procese el resultado y genere una respuesta natural
Dot notationSintaxis para acceder a propiedades anidadas: {{variable.propiedad}}
SearchConditionsEstructura de filtros para buscar/actualizar registros en tablas
CanvasArea visual del editor donde se construye el flujo de automatizacion
DrawerPanel lateral que se abre para configurar un nodo del flujo
CreditosUnidades de consumo para respuestas de IA y procesamiento
EjecucionCada vez que una automatizacion se dispara y ejecuta sus pasos
WebhookPeticion HTTP que un sistema externo envia a Ventor para activar una automatizacion
CRMGestion de relaciones con clientes — el panel de conversaciones de Ventor

¿Listo para crear tu primera automatizacion?

Prueba Ventor gratis y empieza a automatizar tu negocio en minutos. Sin codigo, sin complicaciones.