> ## Documentation Index
> Fetch the complete documentation index at: https://ai-kb.automationanywhere.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Desencadenantes core

> Desencadenantes de propósito general para ejecuciones manuales, ejecución programada, solicitudes HTTP y carga de archivos.

Los desencadenantes core cubren los puntos de entrada más comunes de los flujos de trabajo: invocación manual, ejecuciones programadas, solicitudes HTTP entrantes y carga de archivos.

## Entrada manual

Inicia un flujo de trabajo cuando un usuario o sistema externo lo invoca explícitamente. Puede configurarlo con campos de entrada personalizados que deben completarse antes de que el flujo de trabajo se ejecute — lo que lo hace ideal para tareas bajo demanda que requieren contexto proporcionado por el usuario, como enviar una solicitud, iniciar un reporte o comenzar un proceso desde la interfaz de chat de Odin.

**Cuándo usarlo**

* Desea ejecutar un flujo de trabajo bajo demanda desde la interfaz de Odin o a través de la API.
* El flujo de trabajo necesita entradas proporcionadas por el usuario antes de poder ejecutarse.
* Está probando o depurando un flujo de trabajo con valores específicos.

**Configuración**

| Campo             | Tipo      | Descripción                                                                                                                                                                                        |
| ----------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Campos de entrada | Cualquier | Parámetros definidos por el usuario configurados en la configuración del desencadenante. Cada campo tiene un nombre, tipo y descripción opcional que se muestra al usuario en tiempo de ejecución. |

**Variables de salida**

| Variable                 | Descripción                                                                                                                                          |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `trigger.user_input`     | El texto sin formato enviado por el usuario.                                                                                                         |
| `trigger.inputs.<field>` | El valor de cada campo de entrada con nombre. Reemplace `<field>` con el nombre del campo configurado (por ejemplo, `trigger.inputs.customer_name`). |
| `trigger.chat_id`        | El ID de la sesión de chat que inició la ejecución.                                                                                                  |
| `trigger.message_id`     | El ID del mensaje que activó el flujo de trabajo.                                                                                                    |

```text Ejemplo: referencia a un campo de entrada theme={null}
Hola {{ trigger.inputs.customer_name }}, su solicitud ha sido recibida.
```

<AccordionGroup>
  <Accordion title="Notas">
    * Los campos de entrada se presentan al usuario como un formulario antes de que inicie el flujo de trabajo. Mantenga los nombres de campo cortos y descriptivos.
    * `trigger.user_input` está disponible incluso si no hay campos de entrada personalizados configurados.
    * Para invocar este desencadenante programáticamente, llame a la API de Odin con el ID del flujo de trabajo y los valores de entrada requeridos.
  </Accordion>
</AccordionGroup>

## Webhook

Expone un endpoint HTTP único para su flujo de trabajo. Los sistemas externos — como aplicaciones de terceros, plataformas de automatización o scripts personalizados — pueden enviar una solicitud HTTP a esa URL para iniciar el flujo de trabajo. El cuerpo de la solicitud, los encabezados, los parámetros de consulta y el método HTTP se pasan todos a los nodos posteriores.

**Cuándo usarlo**

* Un sistema externo necesita notificar a Odin cuando ocurre un evento (por ejemplo, un envío de formulario, un evento de pago o una actualización de otra plataforma).
* Está integrando Odin con Automation Anywhere u otro sistema que puede llamar a un endpoint HTTP.
* Desea exponer un flujo de trabajo como un endpoint API que otros desarrolladores o herramientas puedan llamar.

**Configuración**

| Configuración   | Tipo   | Descripción                                                                                                                                                                            |
| --------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `http_method`   | Cadena | El método HTTP que el endpoint aceptará: `GET`, `POST`, `PUT`, `PATCH` o `DELETE`.                                                                                                     |
| `auth_type`     | Cadena | Cómo se autentican las solicitudes entrantes: `none`, `basic` o `header`.                                                                                                              |
| `response_mode` | Cadena | `onReceived` devuelve un HTTP 200 inmediato tan pronto como llega la solicitud. `lastNode` espera a que el flujo de trabajo termine y devuelve la salida final como la respuesta HTTP. |

**Variables de salida**

| Variable              | Descripción                                                                                                 |
| --------------------- | ----------------------------------------------------------------------------------------------------------- |
| `trigger.body`        | El cuerpo JSON de la solicitud entrante.                                                                    |
| `trigger.headers`     | Los encabezados HTTP enviados con la solicitud.                                                             |
| `trigger.query`       | Los parámetros de consulta URL de la solicitud.                                                             |
| `trigger.method`      | El método HTTP utilizado por el solicitante.                                                                |
| `trigger.webhook_url` | La URL completa del endpoint de webhook. Compártala con el sistema externo que llamará al flujo de trabajo. |

**Modos de respuesta**

| Modo         | Comportamiento                                                                                                                                                                                           |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `onReceived` | Devuelve HTTP `200 OK` inmediatamente cuando llega la solicitud, antes de que el flujo de trabajo termine. Usar para escenarios de "disparar y olvidar".                                                 |
| `lastNode`   | Mantiene la conexión HTTP abierta hasta que el flujo de trabajo termine, luego devuelve la salida del último nodo como el cuerpo de la respuesta. Usar cuando el solicitante espera un payload síncrono. |

<AccordionGroup>
  <Accordion title="Notas">
    * Al usar la autenticación `header`, configure el nombre y valor esperado del encabezado en la configuración del desencadenante.
    * `trigger.webhook_url` es útil para incluir la URL del endpoint en la documentación de configuración enviada a socios de integración.
    * Si está llamando a este webhook desde Automation Anywhere, use la acción **HTTP Task** en su bot para hacer POST a la URL del webhook.
  </Accordion>
</AccordionGroup>

## Programación

Activa un flujo de trabajo automáticamente según una programación recurrente definida por una expresión cron. Úselo para automatizar tareas basadas en tiempo como reportes diarios, sincronizaciones periódicas de datos o notificaciones recurrentes — sin ninguna intervención manual.

**Cuándo usarlo**

* Necesita que un flujo de trabajo se ejecute a una hora fija todos los días, semanas o meses.
* Está automatizando un proceso de negocio recurrente (por ejemplo, obtener datos cada mañana, enviar un resumen semanal).
* Desea sondear un sistema externo a intervalos regulares.

**Configuración**

| Configuración | Tipo   | Descripción                                                                                                                     |
| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `schedule`    | Cadena | Una expresión cron que define cuándo se ejecuta el flujo de trabajo.                                                            |
| `timezone`    | Cadena | La zona horaria en la que se evalúa la expresión cron. Acepta nombres de zona horaria estándar como `UTC` o `America/New_York`. |

<Warning>
  Siempre establezca el campo `timezone` explícitamente. Si se deja sin establecer, la programación se ejecuta en UTC, lo que puede causar tiempos inesperados para flujos de trabajo específicos de una región.
</Warning>

**Referencia de expresiones cron**

Una expresión cron tiene cinco campos: **minuto · hora · día del mes · mes · día de la semana**.

```text theme={null}
┌───── minuto (0–59)
│ ┌───── hora (0–23)
│ │ ┌───── día del mes (1–31)
│ │ │ ┌───── mes (1–12)
│ │ │ │ ┌───── día de la semana (0–6, domingo = 0)
│ │ │ │ │
* * * * *
```

| Expresión      | Programación                         |
| -------------- | ------------------------------------ |
| `0 9 * * *`    | Todos los días a las 9:00 AM         |
| `0 9 * * 1`    | Todos los lunes a las 9:00 AM        |
| `0 */6 * * *`  | Cada 6 horas                         |
| `0 8 1 * *`    | Primer día de cada mes a las 8:00 AM |
| `*/15 * * * *` | Cada 15 minutos                      |

**Variables de salida**

| Variable                      | Descripción                                                      |
| ----------------------------- | ---------------------------------------------------------------- |
| `trigger.trigger_time`        | La marca de tiempo ISO 8601 de cuándo se activó la programación. |
| `trigger.schedule_expression` | La expresión cron utilizada para esta ejecución.                 |
| `trigger.trigger_type`        | Siempre `"schedule"`.                                            |

<AccordionGroup>
  <Accordion title="Notas">
    * El desencadenante de programación no pasa entrada de usuario. Si su flujo de trabajo necesita datos dinámicos, obténgalos dentro del flujo de trabajo usando un nodo API o herramienta de toolkit.
    * Use `trigger.trigger_time` en nodos posteriores para registrar cuándо ocurrió la ejecución programada.
  </Accordion>
</AccordionGroup>

## Carga de archivos

Inicia un flujo de trabajo cuando se carga uno o más archivos. Proporciona el contenido, nombre, tamaño y tipo MIME de cada archivo a los nodos posteriores — lo que lo hace ideal para flujos de trabajo de procesamiento de documentos como analizar un reporte cargado, extraer datos de una hoja de cálculo o enrutar un archivo a un modelo de IA para análisis.

**Cuándo usarlo**

* Desea que los usuarios envíen archivos para que el flujo de trabajo los procese (por ejemplo, facturas, contratos, exportaciones CSV).
* Necesita extraer contenido de documentos cargados y pasarlo a un nodo LLM o de procesamiento de datos.
* Está construyendo un pipeline de ingestión de múltiples archivos.

**Configuración**

Este desencadenante no tiene campos de configuración obligatorios. Se activa automáticamente cuando se carga un archivo en el chat o interfaz asociada al flujo de trabajo.

**Variables de salida**

<Tabs>
  <Tab title="Archivo único">
    | Variable               | Descripción                                                           |
    | ---------------------- | --------------------------------------------------------------------- |
    | `trigger.file.content` | El contenido de texto completo extraído del archivo cargado.          |
    | `trigger.file.name`    | El nombre original del archivo.                                       |
    | `trigger.file.size`    | El tamaño del archivo en bytes.                                       |
    | `trigger.file.type`    | El tipo MIME (por ejemplo, `application/pdf`, `text/csv`).            |
    | `trigger.file_count`   | Número total de archivos cargados. Devuelve `1` para un solo archivo. |
  </Tab>

  <Tab title="Múltiples archivos">
    | Variable             | Descripción                                                                                         |
    | -------------------- | --------------------------------------------------------------------------------------------------- |
    | `trigger.files`      | Un array de todos los archivos cargados. Cada elemento contiene `content`, `name`, `size` y `type`. |
    | `trigger.file_count` | Número total de archivos cargados.                                                                  |

    Use un nodo **Bucle** para iterar sobre `trigger.files` al procesar múltiples cargas en una sola ejecución.
  </Tab>
</Tabs>

<Note>
  El contenido del archivo se extrae como texto sin formato. Los formatos binarios como PDF y documentos de Word se analizan automáticamente — el texto extraído es lo que aparece en `trigger.file.content`.
</Note>

<AccordionGroup>
  <Accordion title="Notas">
    * `trigger.file` siempre se refiere al primer (o único) archivo cargado. Para flujos de trabajo de múltiples archivos, use `trigger.files` con un nodo Bucle.
    * Use `trigger.file.type` en un nodo Condicional para enrutar diferentes tipos de archivos a diferentes ramas de procesamiento.
  </Accordion>
</AccordionGroup>
