# Automatización

> El agente que trabaja solo, sin hablar con nadie

El módulo de **Agentes IA** construye tres tipos de agente. Dos conversan: el **[Chatbot](https://docs.audara.io/chatbots/)** por texto y el **[Voicebot](https://docs.audara.io/voicebots/)** por teléfono. El tercero, la **Automatización**, no conversa con nadie. Este artículo cubre solo lo propio de ese tercer tipo. El editor, el lienzo, los pasos y la publicación funcionan igual que en los otros, y eso está explicado en **[Chatbot](https://docs.audara.io/chatbots/)** y en **[Chatbot: los pasos del flujo](https://docs.audara.io/chatbot-pasos/)**.

## Qué es una automatización

Una automatización es un agente que ejecuta un proceso por su cuenta. Algo lo dispara, corre su flujo de principio a fin y termina. No hay nadie del otro lado: ni un chat abierto, ni una llamada, ni una persona esperando respuesta.

De ahí sale la diferencia que más cuesta interiorizar: **una automatización no tiene paso de Mensaje**. No es que esté escondido, es que no existe en su menú. Si necesitas que alguien se entere de algo, lo mandas con una acción de correo, de WhatsApp o de Telegram, que sí están disponibles.

Sirve para el trabajo que hoy alguien hace a mano y a cierta hora: sacar un reporte todas las mañanas y mandarlo por correo, cargar una campaña de mensajes con los contactos que cumplen una condición, avisar cuando una troncal se cae, o recibir un aviso de otro sistema y hacer algo con él.

Las encuentras en la misma lista que los demás agentes, con su ícono verde. Si tienes muchos, filtra por tipo.

![El filtro de tipo **1.** deja ver solo las automatizaciones. El menú de cada fila **2.** tiene una opción que los otros agentes no tienen: Ver ejecuciones](https://docs.audara.io/autonomo/imagenes/auto-lista.jpg)

*El filtro de tipo **1.** deja ver solo las automatizaciones. El menú de cada fila **2.** tiene una opción que los otros agentes no tienen: Ver ejecuciones*

## Crear una automatización

Entra a **Agentes IA** en el menú principal y presiona **(+)**. En la ventana de tipo elige **Automatización**.

![El tipo se elige al crear el agente y no se cambia después](https://docs.audara.io/autonomo/imagenes/auto-tipo.jpg)

*El tipo se elige al crear el agente y no se cambia después*

Apenas eliges el tipo se abre sola la ventana de configuración del disparador, porque una automatización sin disparador no puede correr. Puedes cerrarla y armar primero el flujo: se vuelve a abrir cada vez que entres, hasta que elijas uno.

Después queda el lienzo, con dos diferencias visibles frente a un chatbot.

![El ícono verde de automatización **1.**, un único flujo **2.**, el botón **Ejecutar** en lugar de Probar **3.** y el nodo **Inicio** **4.**, que al tocarlo reabre la configuración del disparador](https://docs.audara.io/autonomo/imagenes/auto-lienzo.jpg)

*El ícono verde de automatización **1.**, un único flujo **2.**, el botón **Ejecutar** en lugar de Probar **3.** y el nodo **Inicio** **4.**, que al tocarlo reabre la configuración del disparador*

> **Nota**
> **Un solo flujo.** Un chatbot trae cuatro flujos de fábrica: principal, inactividad, fuera de horario y encuesta. Una automatización trae solo el **Flujo principal**, porque los otros tres existen para manejar a una persona que no responde o que llega fuera de horario, y aquí no hay persona. Puedes crear flujos adicionales desde el menú del lienzo y saltar a ellos con una acción de tipo Flujo, pero la automatización siempre arranca por el principal.

## Los cuatro disparadores

El **disparador** es lo que hace que la automatización corra. Se configura en el nodo **Inicio** y hay cuatro tipos.

![**1.** Manual, la corres tú. **2.** Evento interno, la dispara algo que pasa dentro de Audara. **3.** Programado, corre a una hora. **4.** Webhook, la dispara otro sistema con una solicitud HTTP](https://docs.audara.io/autonomo/imagenes/auto-trigger-tarjetas.jpg)

***1.** Manual, la corres tú. **2.** Evento interno, la dispara algo que pasa dentro de Audara. **3.** Programado, corre a una hora. **4.** Webhook, la dispara otro sistema con una solicitud HTTP*

Debajo de las tarjetas, la línea **Aplica restricciones por condiciones horarias** te recuerda algo que vale para los cuatro tipos: si el agente tiene un horario configurado, no corre fuera de él. El intento igual queda registrado, con el estado *Fuera de horario*.

### Manual

No tiene nada que configurar. La automatización corre cuando tú presionas **Ejecutar** en la barra del editor.

![El disparador manual **1.** no pide condiciones. La nota del horario **2.** aplica igual](https://docs.audara.io/autonomo/imagenes/auto-trigger-manual.jpg)

*El disparador manual **1.** no pide condiciones. La nota del horario **2.** aplica igual*

### Evento interno

Corre cuando pasa algo dentro de Audara. Eliges un **módulo** y dentro de él un **evento**. Hoy hay dos módulos.

De **Troncales** salen dos eventos, *Troncal desconectada* y *Troncal conectada*, que se disparan cuando una troncal pasa de estar conectada a caída, o al revés. Cada uno expone tres variables con el nombre, el estado y la última IP conocida de la troncal.

![Módulo **1.** y evento **2.**. Abajo, las variables que ese evento le entrega al flujo **3.**](https://docs.audara.io/autonomo/imagenes/auto-trigger-evento.jpg)

*Módulo **1.** y evento **2.**. Abajo, las variables que ese evento le entrega al flujo **3.***

De **CRM** salen otros dos, *Contacto creado* y *Cambio de valor en campo*. Los dos se atan a un CRM en particular y te dejan elegir **qué campos del contacto** quieres recibir como variables, para no arrastrar treinta que no vas a usar. El **prefijo** se antepone al nombre de cada una.

![El prefijo **1.** y los campos elegidos **2.** arman los nombres de las variables **3.**. Con el prefijo *CONTACT*, el campo Nombre se vuelve `{{CONTACT_NOMBRE}}`](https://docs.audara.io/autonomo/imagenes/auto-trigger-crm.jpg)

*El prefijo **1.** y los campos elegidos **2.** arman los nombres de las variables **3.**. Con el prefijo *CONTACT*, el campo Nombre se vuelve `{{CONTACT_NOMBRE}}`*

En *Cambio de valor en campo* eliges además cuál campo vigilar y con qué valores dispara. Solo se ofrecen campos de tipo selección, porque son los que tienen una lista de valores conocida. Si no eliges ningún valor, dispara con cualquier valor nuevo. Ese evento agrega dos variables propias, `{{FIELD_VALUE}}` y `{{FIELD_PREVIOUS_VALUE}}`.

> **Importante**
> **Los eventos de CRM no se disparan en operaciones masivas.** Un contacto creado uno por uno dispara *Contacto creado*, venga del panel, de un chatbot o de un callback. Una **importación** de contactos no lo dispara. Igual con *Cambio de valor en campo*: una edición contacto por contacto lo dispara, una **edición masiva** no. Es a propósito, para que cargar un archivo de diez mil contactos no lance diez mil automatizaciones.

### Programado

Corre a una hora. Eliges la **frecuencia** y según cuál sea te pide lo que falta: cada cuántas horas y desde qué hora arranca, la hora del día, los días de la semana, o el día del mes.

![Frecuencia **1.**, días de la semana **2.** y hora **3.**. La configuración tiene que quedar completa o el agente no se deja publicar](https://docs.audara.io/autonomo/imagenes/auto-trigger-programado.jpg)

*Frecuencia **1.**, días de la semana **2.** y hora **3.**. La configuración tiene que quedar completa o el agente no se deja publicar*

La hora es la del servidor. Si eliges frecuencia mensual y día 31, los meses que no tienen 31 no corre.

### Webhook

Corre cuando otro sistema le manda una solicitud. Audara te da una **URL pública** propia de esa automatización, y quien tenga esa dirección puede dispararla con un POST con cuerpo JSON.

![La URL **1.** aparece cuando guardas la automatización por primera vez. Los campos del payload **2.** convierten pedazos del JSON en variables **3.**](https://docs.audara.io/autonomo/imagenes/auto-trigger-webhook.jpg)

*La URL **1.** aparece cuando guardas la automatización por primera vez. Los campos del payload **2.** convierten pedazos del JSON en variables **3.***

- **URL del webhook**: La dirección a la que el otro sistema manda la solicitud. Lleva un token propio de esta automatización: quien la tenga puede dispararla, así que trátala como una contraseña. El botón de copiar la lleva al portapapeles y el de regenerar crea un token nuevo, lo que invalida la dirección anterior.
- **Campos del payload**: Cada fila toma una ruta dentro del JSON que llega y la guarda en una variable. Si el cuerpo trae `{"cliente": {"documento": "123"}}`, la ruta `cliente.documento` deja el 123 en la variable que le pongas.
- **Capturar una solicitud de prueba**: Disponible cuando la automatización ya está guardada. Presionas **Capturar solicitud**, mandas un envío real desde el otro sistema y Audara te muestra el JSON que llegó para que armes el mapeo tocando las llaves, en vez de escribir las rutas a ciegas. Esa solicitud de prueba no ejecuta el flujo. También puedes pegar un ejemplo a mano.

> **Nota**
> Aunque no mapees ningún campo, el flujo siempre tiene `{{WEBHOOK_BODY}}` con el cuerpo completo y `{{WEBHOOK_QUERY}}` con los parámetros de la URL. El mapeo es una comodidad para no tener que sacar el dato del JSON entero.

## Las variables que trae el disparador

Sea cual sea el disparador, lo que traiga queda disponible como variable en todo el flujo. Las ves en el menú del lienzo, en **Lista variables**, junto con las de fecha y hora que trae cualquier agente.

![Las variables del disparador aparecen arriba, entre las generales **1.**. Abajo, las **variables de lista** **2.**, con los campos que lleva cada registro](https://docs.audara.io/autonomo/imagenes/auto-variables.jpg)

*Las variables del disparador aparecen arriba, entre las generales **1.**. Abajo, las **variables de lista** **2.**, con los campos que lleva cada registro*

> **Importante**
> **Una variable de lista no es una variable normal.** Guarda muchos registros, no un valor, así que no se puede insertar en un texto ni comparar en una condición. Solo la leen los pasos que saben trabajar con listas, que hoy es la acción de **Campaña Blaster**. Se distinguen por la etiqueta *lista*.

## Qué pasos tiene y cuáles no

El menú del lienzo de una automatización es más corto que el de un chatbot, y la razón siempre es la misma: no hay con quién conversar.

![Diez opciones. El submenú **Get** **1.** y **Exportar reporte** **2.** solo existen aquí](https://docs.audara.io/autonomo/imagenes/auto-menu-pasos.jpg)

*Diez opciones. El submenú **Get** **1.** y **Exportar reporte** **2.** solo existen aquí*

Lo que **no** está, comparado con un chatbot:

- **Mensaje**, en cualquiera de sus formas.
- **Interacción** entera: menú, botones, opciones desplegables, respuesta libre e invalidez.
- **Captura** entera: captura de dato, de archivo y Flow de WhatsApp.
- **Encuesta**.
- Las **palabras clave globales** del menú del lienzo, porque no hay nadie escribiendo palabras.

Lo que sí está y funciona igual que en un chatbot: **Acción**, **Integración** (API REST y MCP), **Post**, **ChatGPT**, **[Smart Agent](https://docs.audara.io/smart-agent/)** con sus funciones, **Condición**, **Variable** e **Iteración**. Todos están explicados en **Chatbot: los pasos del flujo**.

Y lo que gana: el **Get masivo**, el paso **Exportar reporte** y, dentro de Acción, **Campaña Blaster**. Las tres secciones que siguen son sobre esos tres.

![El menú del lienzo también es más corto. **Lista variables** **1.** es donde revisas qué le entregó el disparador al flujo](https://docs.audara.io/autonomo/imagenes/auto-menu-flujo.jpg)

*El menú del lienzo también es más corto. **Lista variables** **1.** es donde revisas qué le entregó el disparador al flujo*

> **Nota**
> La acción **Finalizar** existe pero casi nunca hace falta: cuando el flujo se queda sin pasos, la automatización termina sola. Úsala solo para cortar antes de tiempo, por ejemplo dentro de una rama de una condición.

## Get masivo: traer muchos contactos de una vez

El **Get** de siempre trae *un* registro de un CRM. El **Get masivo** trae *todos* los que cumplan un filtro y los deja en una variable de lista.

![En una automatización, Get abre un submenú con las dos formas](https://docs.audara.io/autonomo/imagenes/auto-get-submenu.jpg)

*En una automatización, Get abre un submenú con las dos formas*

![El formulario del Get masivo](https://docs.audara.io/autonomo/imagenes/auto-get-masivo.jpg)

*El formulario del Get masivo*

- ****1.** CRM**: De cuál CRM se traen los contactos.
- ****2.** Filtro de contactos**: Cuáles contactos. **Configurar filtro** abre la misma ventana de filtros del módulo de CRM, donde puedes usar uno guardado, armar uno rápido o crear uno nuevo. Si no pones filtro, trae todos.
- ****3.** Variable de lista (resultado)**: El nombre de la variable donde queda el resultado. Es la que después vas a elegir en la acción de campaña.
- ****4.** Campos a incluir**: Qué campos del contacto lleva cada registro de la lista. Elige solo los que el flujo va a usar. Los campos de tipo archivo no se ofrecen, porque un adjunto no se puede mandar dentro de una lista.
- ****5.** Límite (opcional)**: Tope de registros. En cero no hay tope.

![**Crear filtro** **1.** arma uno desde cero, **Filtro rápido** **2.** uno de una sola condición, y debajo **3.** están los filtros que ya guardaste en el CRM](https://docs.audara.io/autonomo/imagenes/auto-filtro.jpg)

***Crear filtro** **1.** arma uno desde cero, **Filtro rápido** **2.** uno de una sola condición, y debajo **3.** están los filtros que ya guardaste en el CRM*

> **Importante**
> **Una lista vacía no es un error.** Si el filtro no encuentra a nadie, el paso sigue de largo con la lista vacía y los pasos siguientes corren igual. El paso de error solo se toma cuando la consulta falla de verdad. Si quieres cortar cuando no hay contactos, ponle una condición después.

> El campo **Mensaje de error** que aparece al final del formulario no le llega a nadie en una automatización, porque no hay conversación donde mostrarlo. Para manejar el error usa **En caso de error, ir a paso**.

## Campaña Blaster: enviarle a toda la lista

Es una **acción**, no un paso propio: agregas un paso Acción y en el campo Acción eliges **Campaña Blaster**. Toma una variable de lista y le carga esos contactos a una campaña dinámica, que es la que hace el envío.

![La acción de campaña, con canal de correo](https://docs.audara.io/autonomo/imagenes/auto-blaster.jpg)

*La acción de campaña, con canal de correo*

- ****1.** Canal**: Correo electrónico, WhatsApp, SMS o Voz.
- ****2.** Campaña dinámica**: La campaña que va a recibir los contactos. Solo aparecen las campañas **dinámicas** de ese canal, que son las que están hechas para ir recibiendo contactos mientras corren. Si la lista sale vacía, crea antes la campaña en su módulo.
- ****3.** Variable de lista (contactos)**: De dónde salen los contactos. Normalmente la que llenó un Get masivo antes.
- ****4.** Campo de correo o de teléfono**: Cuál campo de cada registro es la dirección de destino. Por eso ese campo tiene que estar entre los que elegiste en el Get masivo.

Si el canal manda un mensaje, debajo aparece la plantilla de la campaña en solo lectura y una fila por cada variable que tenga, para decirle a cada una de dónde sale su valor.

![Cada variable de la plantilla **1.** se llena con un campo de la lista, distinto para cada destinatario, o con un texto fijo igual para todos. El paso de error **2.** recibe el flujo si la carga falla](https://docs.audara.io/autonomo/imagenes/auto-blaster-variables.jpg)

*Cada variable de la plantilla **1.** se llena con un campo de la lista, distinto para cada destinatario, o con un texto fijo igual para todos. El paso de error **2.** recibe el flujo si la carga falla*

El canal de **Voz** funciona distinto: no manda un mensaje sino que marca, así que no tiene plantilla ni variables. En su lugar pide el campo del teléfono y, opcional, un campo con el nombre del contacto, que es el que después se ve en el monitor del marcador y en los reportes.

![Con canal Voz **1.** quedan solo el campo de teléfono **2.** y el de nombre **3.**](https://docs.audara.io/autonomo/imagenes/auto-blaster-voz.jpg)

*Con canal Voz **1.** quedan solo el campo de teléfono **2.** y el de nombre **3.***

> **Nota**
> En WhatsApp, las plantillas que llevan imagen, video o documento en el encabezado no sirven para un envío masivo desde una automatización, porque ese archivo tendría que ser distinto para cada destinatario y no hay de dónde sacarlo. Elige una plantilla de solo texto.

Un Get masivo y una acción de campaña, en ese orden, son la automatización más común de todas.

![Arranca **1.**, busca los contactos que cumplen el filtro **2.** y se los entrega a la campaña **3.**](https://docs.audara.io/autonomo/imagenes/auto-flujo-ejemplo.jpg)

*Arranca **1.**, busca los contactos que cumplen el filtro **2.** y se los entrega a la campaña **3.***

## Exportar reporte

Este paso arma un archivo comprimido con un reporte y deja el **enlace de descarga** en una variable. No lo manda: eso lo haces con una acción de correo después, poniendo la variable en el cuerpo del mensaje.

![El formulario del paso](https://docs.audara.io/autonomo/imagenes/auto-reporte.jpg)

*El formulario del paso*

- ****1.** Reporte**: Cuál reporte se exporta. Hoy está el **Historial de chats**.
- ****2.** Periodo**: Qué rango cubre: el día anterior, los últimos siete días o lo que va de hoy. Se calcula en el momento de correr, así que una automatización diaria con *Día anterior* siempre trae el día que acaba de terminar.
- ****3.** Contenido del archivo**: Qué va dentro del comprimido: los registros del reporte en CSV, las conversaciones completas y los archivos adjuntos que se intercambiaron. Tienes que dejar al menos uno marcado.
- ****4.** Variable con el enlace**: Dónde queda la dirección de descarga del archivo, para usarla más adelante con `{{NOMBRE}}`.

![El patrón completo: arranca **1.**, arma el archivo y guarda el enlace **2.**, y una acción de correo lo manda **3.**](https://docs.audara.io/autonomo/imagenes/auto-flujo-reporte.jpg)

*El patrón completo: arranca **1.**, arma el archivo y guarda el enlace **2.**, y una acción de correo lo manda **3.***

## Ejecutar, publicar y desactivar

La barra del editor de una automatización tiene un botón que los otros agentes no tienen.

![**Ejecutar** **1.** reemplaza al botón de Probar. **Publicar** **2.** y el par Borrador / Publicado **3.** funcionan igual que en cualquier agente](https://docs.audara.io/autonomo/imagenes/auto-barra.jpg)

***Ejecutar** **1.** reemplaza al botón de Probar. **Publicar** **2.** y el par Borrador / Publicado **3.** funcionan igual que en cualquier agente*

Un chatbot se prueba conversando con él en una ventana. Una automatización no se puede probar así, porque no hay conversación, entonces lo que se hace es **correrla** de verdad y mirar después qué pasó. Eso es **Ejecutar**.

> **Importante**
> **Ejecutar corre la versión publicada, no la que estás viendo.** Si acabas de cambiar el flujo, publica primero. Sin publicar, el botón te avisa que la automatización todavía no está publicada y no corre nada. Y como corre de verdad, si tu flujo carga una campaña, esa campaña va a empezar a enviar.

Para apagar una automatización sin borrarla, usa **Desactivar** en el menú de su fila. Una automatización desactivada no corre por **ningún** camino: ni programada, ni por evento, ni por webhook, ni a mano.

## El registro de ejecuciones

Como nadie ve correr una automatización, cada intento queda anotado. Entra por el menú de su fila en la lista.

![**Ver ejecuciones** **1.** es donde se revisa qué ha hecho la automatización](https://docs.audara.io/autonomo/imagenes/auto-menu-fila.jpg)

***Ver ejecuciones** **1.** es donde se revisa qué ha hecho la automatización*

![Una fila por intento: cuándo **1.**, qué la disparó **2.** y cómo terminó **3.**](https://docs.audara.io/autonomo/imagenes/auto-ejecuciones.jpg)

*Una fila por intento: cuándo **1.**, qué la disparó **2.** y cómo terminó **3.***

La columna **Disparador** dice de dónde vino cada corrida y agrega el detalle: quién la corrió si fue manual, cuál evento y sobre cuál elemento si fue interno, o desde qué dirección IP llegó si fue un webhook. El **Estado** puede ser:

- **Completada**: El flujo llegó hasta el final.
- **Iniciada**: Arrancó y todavía no termina. Si una queda así mucho tiempo, se quedó atascada; hay un tope de seguridad de diez minutos que la cierra.
- **Fuera de horario**: Se intentó disparar mientras el agente estaba fuera de su horario, así que no corrió.
- **Fallida**: No se pudo crear la corrida.

La flecha de cada fila abre las **variables de la ejecución**: con qué valores arrancó esa corrida en particular. Es lo más útil de toda la ventana cuando algo salió distinto a lo esperado, porque es la única forma de ver por dentro una automatización que ya terminó.

![Las variables de esa corrida **1.**. Aquí se ve cuál troncal se cayó, con qué estado y con qué IP](https://docs.audara.io/autonomo/imagenes/auto-ejecuciones-vars.jpg)

*Las variables de esa corrida **1.**. Aquí se ve cuál troncal se cayó, con qué estado y con qué IP*

## Buenas prácticas

- **Empieza en manual**: Arma el flujo con disparador manual, ejecútalo y revisa el registro de ejecuciones. Cuando haga lo que esperas, cámbiale el disparador al que va a usar de verdad. Es mucho más fácil que esperar a que un evento ocurra.
- **Prueba con el límite bajo**: Antes de soltar un envío masivo, ponle un **Límite** de dos o tres en el Get masivo y mira a quién le llegó. Después súbelo. Una lista sin filtro más una campaña es un correo a toda la base.
- **Pide solo los campos que uses**: Tanto en los campos del disparador de CRM como en los del Get masivo. Una lista con veinte campos por contacto y miles de contactos pesa, y no ganas nada.
- **Ponle nombre a lo que hace, no a lo que es**: Como no hay una conversación que leer, el nombre del agente y el título de cada paso son casi toda la documentación que va a quedar. *Aviso de troncal caída* se entiende dentro de seis meses; *Automatización 3* no.
- **Trata la URL del webhook como una contraseña**: Quien la tenga puede disparar la automatización. Si se filtró, regenera el token y avísale al otro sistema, que la dirección anterior deja de funcionar.
- **Revisa el registro de vez en cuando**: Una automatización programada que dejó de correr no avisa. Si esperabas una ejecución diaria y la última es de hace una semana, algo pasó: puede estar desactivada, sin publicar o quedando fuera de horario.
