/workflows
Crea un agente nuevo (funnel + statuses) desde cero — completamente vía API. Este es el primer paso del ciclo de vida API-first de un agente:
- Crear el agente (este endpoint). Nace pausado.
- Configurar su prompt — qué dice y cómo se comporta.
- Opcionalmente agregar statuses/campos personalizados o tools personalizadas que pueda llamar.
- Activarlo seteando
is_paused: false.
name en tu cuenta, devuelve el existente (status: "existed") en lugar de crear un duplicado — seguro de reintentar.
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre del agente. Se usa para el chequeo de idempotencia |
goal_type | string | Sí | Uno de: appointment, sale, qualification, information, payment_link, support, custom |
statuses | array | Sí | Array no vacío de statuses del funnel (ver abajo). Si ninguno está marcado is_initial, se usa el primero; si ninguno está marcado is_terminal, se usa el último |
description | string | No | Descripción del agente |
global_prompt | string | No | Prompt base. También se puede configurar después vía PATCH /workflows/:id/prompt |
language | string | No | Por defecto es |
channels | array | No | Canales a habilitar, ej. ["whatsapp", "email"]. Por defecto ["whatsapp"] |
fields | array | No | Campos personalizados a recolectar (ver Actualizar Estructura para la forma exacta) |
Forma de statuses[]
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
key | string | Sí | Identificador estable del status |
name | string | Sí | Etiqueta visible (label también es aceptado) |
is_initial | boolean | No | Marca el status de entrada del funnel |
is_terminal | boolean | No | Marca un status de cierre del funnel |
sort_order | integer | No | Por defecto, el índice del array |
Respuestas
201 — Agente creado
200 — Ya existía (respuesta idempotente)
400 — Error de validación
"goal_type must be one of: appointment, sale, qualification, information, payment_link, support, custom""statuses must be a non-empty array""each status needs a key and a name"