Skip to main content
POST
Create an Agent
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

Goals disponibles

El onboarding también muestra Calificar y luego agendar. Esa opción se guarda como appointment con un pipeline y reglas de calificación; no envíes qualify_then_book a este endpoint público.

El goal custom

Usa custom cuando el objetivo del agente no es ninguno de los presets: cobranza, reactivación de clientes, post-venta o encuestas. El agente persigue un objetivo escrito en tus propias palabras, configurado en el Dashboard en Configuración del agente → Objetivo y guardado como config.goal_statement. Admite hasta 600 caracteres y debe describir el resultado, no el procedimiento. Dos cosas a saber:
  • Un agente custom no agenda reuniones — las herramientas de calendario no están disponibles para él. Si el objetivo termina en una reunión agendada, usa appointment.
  • Debes enviar statuses como en cualquier otro goal. Este endpoint no infiere el pipeline; para un custom típico puedes usar new → contacted → engaged → converted → lost y adaptar las instrucciones de transición al resultado escrito.

Forma de statuses[]

Respuestas

201 — Agente creado

200 — Ya existía (respuesta idempotente)

400 — Error de validación

Otros errores de validación:
  • "goal_type must be one of: appointment, sale, qualification, information, payment_link, support, custom, quote, document_collection"
  • "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

Autorizaciones

X-API-Key
string
header
requerido

API key for authentication. Keys are prefixed with nxr_live_.

Cuerpo

application/json
name
string
requerido
Minimum string length: 1
goal_type
enum<string>
requerido
Opciones disponibles:
appointment,
sale,
qualification,
information,
payment_link,
support,
custom,
quote,
document_collection
statuses
object[]
requerido
Minimum array length: 1
master_workflow_id
string<uuid> | null
language
enum<string>
Opciones disponibles:
es-CL,
es-MX,
es-PE,
es-CO,
es-US,
en-US,
en-AU,
ko-KR,
pt-BR,
fr-FR
agent_name
string | null
Maximum string length: 200
agent_role
string | null
Maximum string length: 200
company_name
string | null
Maximum string length: 200
begin_message
string | null
Maximum string length: 1000
timezone
string

Valid IANA time-zone name.

region_style
enum<string>
Opciones disponibles:
cl,
mx,
pe,
co,
ar,
es,
latam,
us,
au,
gb,
in,
nz,
kr,
br,
pt
global_prompt
string
channels
enum<string>[]
Opciones disponibles:
whatsapp,
call,
voice,
retell,
email,
sms
fields
object[]
description
string | null

Respuesta

Successful response.

success
enum<boolean>
requerido
Opciones disponibles:
true
workflow_id
string<uuid>
requerido
master_workflow_id
string<uuid> | null
requerido
status
enum<string>
requerido
Opciones disponibles:
existed
Última modificación el 25 de septiembre de 2026