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

# Crear automatizaciones mediante programación con la API

> Crea y configura flujos de trabajo mediante la API de Teable y JavaScript

<Tip>Recomendamos crear los ejemplos de Automatización directamente en el Chat de IA. Solo tienes que describir el flujo de trabajo que quieres y la IA se encargará de toda la configuración, incluidos el desencadenador, las acciones, el script y la configuración.</Tip>

## Crear con IA

Abre el Chat de IA en la barra lateral derecha de tu Tabla e indica a la IA lo que quieres. Por ejemplo, puedes decir:

*«Crea una Automatización que supervise los cambios de estado de los pedidos y envíe una notificación por webhook cuando se envíe un pedido»*

La IA creará automáticamente el flujo de trabajo completo. Puedes revisar el script generado, probarlo con datos reales y activar el flujo de trabajo cuando esté listo.

## Requisitos previos

* Un token de acceso personal (PAT). Consulta [Token de acceso](/es/api-doc/token).
* El ID de tu Base, el ID de la Tabla y los ID de los Campos. Consulta [Obtener ID](/es/api-doc/get-id).

## Funciones auxiliares

```javascript theme={null}
const baseUrl = "https://app.teable.ai/api";
const token = process.env.TEABLE_TOKEN;
const baseId = "bserxxxxxx";

const headers = {
  Authorization: `Bearer ${token}`,
  "Content-Type": "application/json",
};

async function api(method, path, body) {
  const res = await fetch(`${baseUrl}${path}`, {
    method,
    headers,
    body: body ? JSON.stringify(body) : undefined,
  });
  if (!res.ok) throw new Error(`${method} ${path} → ${res.status}`);
  return res.json();
}
```

## Crear el flujo de trabajo

```javascript theme={null}
// 1. Crear un flujo de trabajo
const wf = await api("POST", `/base/${baseId}/workflow`, {
  name: "Notificar el envío",
  description: "Enviar un webhook cuando el estado del pedido cambie a Enviado",
});

// 2. Añadir un desencadenador
const trigger = await api("POST", `/base/${baseId}/workflow/${wf.id}/trigger`, {
  type: "recordUpdated",
  config: { tableId: "tblOrders", watchFieldIds: ["fldStatus"] },
});

// 3. Probar el desencadenador
await api("POST", `/base/${baseId}/workflow/${wf.id}/test/${trigger.id}`);

// 4. Añadir una acción Solicitud HTTP
const action = await api("POST", `/base/${baseId}/workflow/${wf.id}/action`, {
  type: "httpRequest",
  parentNodeId: trigger.id,
});

// 5. Activar
await api("PUT", `/base/${baseId}/workflow/${wf.id}/active`, {
  method: "activate",
});
```

## Prácticas recomendadas

* Utiliza el PAT con menos privilegios posibles: limítalo a los Espacios y las Bases que necesite.
* Almacena los tokens en variables de entorno; nunca los escribas directamente en el código.
* Utiliza **Probar nodo** para verificarlo antes de activarlo.
* Consulta la [Referencia completa de la API de Automatización](/es/api-reference/automation/put-base-workflow-action).
