Referencia de API
Flows y ejecuciones
Endpoints de Flow Studio: gestionar flujos, carpetas, plantillas, la Bóveda, variables globales, dispararlos y revisar sus ejecuciones. Todos cuelgan de /workspaces/:workspaceId/flows y requieren autenticación.
| Método | Ruta | Descripción |
|---|---|---|
GET | /flows | Listar flujos |
GET | /flows/:flowId | Obtener flujo |
POST | /flows | Crear flujo |
PATCH | /flows/:flowId | Actualizar flujo |
DELETE | /flows/:flowId | Eliminar flujo |
GET | /flows/:flowId/validate | Validar flujo |
POST | /flows/:flowId/trigger | Disparar manualmente |
POST | /flows/:flowId/regenerate-token | Regenerar token de webhook |
Carpetas
Sección titulada «Carpetas»| Método | Ruta | Descripción |
|---|---|---|
GET | /flows/folders | Listar carpetas |
POST | /flows/folders | Crear carpeta |
PATCH | /flows/folders/:folderId | Actualizar carpeta (renombrar o mover) |
DELETE | /flows/folders/:folderId | Eliminar carpeta |
Plantillas de flow
Sección titulada «Plantillas de flow»| Método | Ruta | Descripción |
|---|---|---|
GET | /flows/templates | Listar plantillas |
GET | /flows/templates/:templateId | Obtener plantilla |
POST | /flows/templates | Crear plantilla |
PATCH | /flows/templates/:templateId | Actualizar plantilla |
DELETE | /flows/templates/:templateId | Eliminar plantilla |
POST | /flows/templates/:templateId/use | Usar plantilla (incrementa su contador de uso) |
Bóveda (secrets)
Sección titulada «Bóveda (secrets)»Valores cifrados (API keys, tokens de terceros) que se referencian en un flujo como {{boveda.nombre}} sin exponerlos. Solo el OWNER del workspace, o un miembro con la capability boveda:manage, puede crear/editar/borrar — el GET queda abierto a todo el workspace para que el selector de variables pueda listar los nombres.
| Método | Ruta | Descripción |
|---|---|---|
GET | /flows/secrets | Listar secrets (valor enmascarado) |
POST | /flows/secrets | Crear secret |
PATCH | /flows/secrets/:secretId | Actualizar secret |
DELETE | /flows/secrets/:secretId | Eliminar secret |
Variables globales
Sección titulada «Variables globales»El par “público” de la Bóveda: valor en texto plano, visible y editable por cualquier miembro del workspace (no requiere ninguna capability especial). Se usan en un flujo como {{globalVars.nombre}}.
| Método | Ruta | Descripción |
|---|---|---|
GET | /flows/global-vars | Listar variables globales |
POST | /flows/global-vars | Crear variable global |
PATCH | /flows/global-vars/:varId | Actualizar variable global |
DELETE | /flows/global-vars/:varId | Eliminar variable global |
Ejecuciones
Sección titulada «Ejecuciones»| Método | Ruta | Descripción |
|---|---|---|
GET | /flows/executions | Listar todas las ejecuciones del workspace |
GET | /flows/:flowId/executions | Listar ejecuciones de un flujo concreto |
GET | /flows/executions/:executionId | Detalle de una ejecución |
POST | /flows/executions/:executionId/cancel | Cancelar una ejecución en curso |
Crear flujo
Sección titulada «Crear flujo»/workspaces/:workspaceId/flows Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre del flujo. |
description | string | No | Descripción. |
nodes | array | No | Nodos del flujo (formato de React Flow). Si vienen, se validan igual que en el editor. |
edges | array | No | Conexiones entre nodos. |
variables | array | No | Variables propias del flujo (name, value, type, scope). |
settings | object | No | triggerType, triggerConfig, timeout, maxConcurrent, environment. Si se omite triggerType, se infiere del nodo trigger. |
tags | array de string | No | Etiquetas para organizar la biblioteca. |
folderId | string | null | No | Carpeta donde se ubica el flujo. |
Actualizar flujo
Sección titulada «Actualizar flujo»/workspaces/:workspaceId/flows/:flowId Cuerpo de la petición
Sección titulada «Cuerpo de la petición»Todos los campos son opcionales; solo se actualiza lo que envíes. Además de los campos de creación, acepta:
| Campo | Tipo | Descripción |
|---|---|---|
isActive | boolean | Activa o pausa el flujo. |
expectedVersion | number | Versión que tenías cargada al editar. Si no coincide con la actual, la API responde 409 en vez de sobrescribir los cambios de otro usuario (optimistic locking). |
Validar flujo
Sección titulada «Validar flujo»/workspaces/:workspaceId/flows/:flowId/validate Corre las mismas reglas de estructura que bloquean guardar/activar en el editor (nodos huérfanos, trigger faltante, campos requeridos sin llenar, ciclos no permitidos, etc.), sin modificar el flujo.
Disparar manualmente
Sección titulada «Disparar manualmente»/workspaces/:workspaceId/flows/:flowId/trigger Crea una ejecución y corre el flujo en segundo plano — la respuesta llega de inmediato con el executionId, sin esperar a que termine. Consulta el resultado con detalle de ejecución. Requiere la capability flows:execute.
Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
triggerData | object | No | Datos disponibles en el flujo como {{triggerData.<campo>}}. |
startNodeId | string | No | Ejecutar desde un nodo concreto en vez de desde el trigger (“Ejecutar desde aquí” del editor). |
Regenerar token de webhook
Sección titulada «Regenerar token de webhook»/workspaces/:workspaceId/flows/:flowId/regenerate-token Invalida el token de webhook actual y genera uno nuevo. Solo aplica a flujos con triggerType: "webhook" — en cualquier otro caso responde 400. El token anterior deja de funcionar de inmediato.
Crear carpeta
Sección titulada «Crear carpeta»/workspaces/:workspaceId/flows/folders Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre de la carpeta. |
parentId | string | No | Carpeta padre, para anidar. |
Crear secret (Bóveda)
Sección titulada «Crear secret (Bóveda)»/workspaces/:workspaceId/flows/secrets Requiere ser OWNER del workspace o tener la capability boveda:manage. El valor viaja en texto plano solo en esta petición: se guarda cifrado (AES-256-GCM) y ninguna respuesta posterior lo vuelve a exponer completo — solo un preview con los últimos 4 caracteres.
Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre único en el workspace. Se referencia como {{boveda.name}}. |
value | string | Sí | Valor a cifrar (API key, token, etc.). |
description | string | No | Descripción. |
flowId | string | No | Si se envía, el secret solo queda disponible dentro de ese flujo; si se omite, es global al workspace. |
Crear variable global
Sección titulada «Crear variable global»/workspaces/:workspaceId/flows/global-vars A diferencia de la Bóveda, cualquier miembro del workspace puede crear/editar/borrar variables globales: valor en texto plano, pensado para datos no sensibles compartidos entre flujos (un ID de catálogo, una URL base, un nombre de sucursal).
Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Identificador válido (letras, números, guion bajo). Se referencia como {{globalVars.name}}. |
value | string | Sí | Valor de la variable. |
description | string | No | Descripción. |
Listar ejecuciones de un flujo
Sección titulada «Listar ejecuciones de un flujo»/workspaces/:workspaceId/flows/:flowId/executions Parámetros de query
Sección titulada «Parámetros de query»| Parámetro | Tipo | Descripción |
|---|---|---|
status | string | running, completed, failed o cancelled. |
trigger | string | manual, webhook, schedule, ai_tool, simulation, crm_event o voice_call. |
page / limit | number | Ver paginación. |
Obtener detalle de una ejecución
Sección titulada «Obtener detalle de una ejecución»/workspaces/:workspaceId/flows/executions/:executionId Incluye steps: el registro de cada nodo por el que pasó la ejecución, con su input/output y logs — lo que pinta el panel de depuración del editor.
Cancelar ejecución
Sección titulada «Cancelar ejecución»/workspaces/:workspaceId/flows/executions/:executionId/cancel Solo se puede cancelar una ejecución en estado running; en cualquier otro estado responde 400.
Disparar por webhook (público)
Sección titulada «Disparar por webhook (público)»Un flujo con trigger webhook se dispara con su token, sin API key. Ver la referencia completa en Webhooks.
/flows/run?token=WEBHOOK_TOKEN Parámetros de query
Sección titulada «Parámetros de query»| Parámetro | Tipo | Descripción |
|---|---|---|
token | string | Token del webhook del flujo (webhookToken). |
El cuerpo (JSON) queda disponible en el flujo como {{triggerData.<campo>}}.