Saltar al contenido principal
POST /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:
  1. Crear el agente (este endpoint). Nace pausado.
  2. Configurar su prompt — qué dice y cómo se comporta.
  3. Opcionalmente agregar statuses/campos personalizados o tools personalizadas que pueda llamar.
  4. Activarlo seteando is_paused: false.
Idempotente. Si ya existe un agente con el mismo name en tu cuenta, devuelve el existente (status: "existed") en lugar de crear un duplicado — seguro de reintentar.

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
namestringNombre del agente. Se usa para el chequeo de idempotencia
goal_typestringUno de: appointment, sale, qualification, information, payment_link, support, custom
statusesarrayArray 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
descriptionstringNoDescripción del agente
global_promptstringNoPrompt base. También se puede configurar después vía PATCH /workflows/:id/prompt
languagestringNoPor defecto es
channelsarrayNoCanales a habilitar, ej. ["whatsapp", "email"]. Por defecto ["whatsapp"]
fieldsarrayNoCampos personalizados a recolectar (ver Actualizar Estructura para la forma exacta)

Forma de statuses[]

CampoTipoRequeridoDescripción
keystringIdentificador estable del status
namestringEtiqueta visible (label también es aceptado)
is_initialbooleanNoMarca el status de entrada del funnel
is_terminalbooleanNoMarca un status de cierre del funnel
sort_orderintegerNoPor defecto, el índice del array

Respuestas

201 — Agente creado

{
  "success": true,
  "workflow_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "created"
}

200 — Ya existía (respuesta idempotente)

{
  "success": true,
  "workflow_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "existed"
}

400 — Error de validación

{
  "error": "Invalid input",
  "message": "name is required"
}
Otros errores 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"

401 — Error de autenticación

Ver Autenticación.

500 — Error interno del servidor

Última modificación el 10 de julio de 2026