POST
/processors/:processorId/leads
Crea un lead y lo enruta a través de las reglas de un processor para determinar el Agente de destino. El cuerpo de la solicitud es idéntico a Crear Lead(s) pero sin workflow_id: el processor decide a qué Agente entra el lead.
El processor evalúa sus reglas de enrutamiento de arriba a abajo. La primera regla donde todas las condiciones coinciden determina el Agente de destino. Si ninguna regla coincide, se usa el Agente por defecto del processor.
Soporta solicitudes individuales y masivas (hasta 1,000 leads). En modo masivo, cada lead se evalúa de forma independiente y puede terminar en diferentes Agentes.
Parámetros de Ruta
| Parámetro | Tipo | Descripción |
|---|
processorId | string (uuid) | ID del processor |
Cuerpo de la Solicitud
Igual que Crear Lead(s), sin workflow_id:
| Campo | Tipo | Requerido | Descripción |
|---|
first_name | string | Sí | Nombre del lead |
last_name | string | No | Apellido del lead |
email | string | No | Dirección de email del lead |
phone | string | No | Número de teléfono del lead (requerido si el Agente de destino tiene pasos de llamada) |
source | string | No | Origen del lead, por defecto “api” |
company | string | No | Empresa del lead |
title | string | No | Cargo del lead |
campaign_id | string (uuid) | No | ID de campaña para etiquetar al lead |
metadata | object | No | Datos clave-valor arbitrarios, esto es lo que las reglas de enrutamiento típicamente evalúan |
El objeto metadata es la fuente principal para las condiciones de enrutamiento. Incluye todos los campos que las reglas de tu processor necesitan evaluar (ej., language, budget, city, campaign_name).
Ejemplos
Lead individual — enrutado por idioma
curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/leads \
-H "Content-Type: application/json" \
-H "X-API-Key: nxr_live_your_api_key" \
-d '{
"first_name": "Tony",
"last_name": "Stark",
"phone": "+5215512345678",
"email": "tony.stark@gmail.com",
"source": "meta_ads",
"metadata": {
"language": "ES",
"campaign_name": "Q1 Launch"
}
}'
Lead individual — enrutado por presupuesto + ciudad
curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/leads \
-H "Content-Type: application/json" \
-H "X-API-Key: nxr_live_your_api_key" \
-d '{
"first_name": "Tony",
"last_name": "Stark",
"phone": "+5215598765432",
"metadata": {
"budget": 750000,
"city": "CDMX",
"property_type": "departamento"
}
}'
Masivo — enrutamiento mixto
Cada lead se evalúa de forma independiente y puede terminar en diferentes Agentes:
curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/leads \
-H "Content-Type: application/json" \
-H "X-API-Key: nxr_live_your_api_key" \
-d '[
{
"first_name": "Tony",
"phone": "+5215512345678",
"metadata": { "language": "ES" }
},
{
"first_name": "Tony",
"phone": "+12025551234",
"metadata": { "language": "EN" }
}
]'
Respuestas
201 — Lead(s) creado(s) y enrutado(s)
Respuesta de lead individual:
{
"success": true,
"lead": {
"id": "lead-uuid",
"first_name": "Tony",
"last_name": "Stark",
"email": "tony.stark@gmail.com",
"phone": "+5215512345678",
"source": "meta_ads",
"metadata": {
"language": "ES",
"campaign_name": "Q1 Launch"
},
"created_at": "2026-03-31T12:00:00Z"
},
"workflow_run": {
"id": "run-uuid",
"job_id": "job-123",
"workflow": {
"id": "uuid-of-es-workflow",
"name": "Enlace de Pago Enviado"
},
"cadence": {
"stepIndex": 0,
"channel": "call",
"attemptNumber": 1,
"maxAttempts": 3,
"totalSteps": 5
}
},
"routing": {
"processor_id": "abc-123-uuid",
"processor_name": "Language Router",
"matched_rule": {
"id": "rule-2-uuid",
"name": "Spanish leads",
"position": 2
}
}
}
Cuando se usa el Agente por defecto (ninguna regla coincidió):
{
"success": true,
"lead": { "..." : "..." },
"workflow_run": { "..." : "..." },
"routing": {
"processor_id": "abc-123-uuid",
"processor_name": "Language Router",
"matched_rule": null
}
}
Respuesta masiva:
{
"success": true,
"results": [
{
"success": true,
"lead": { "id": "lead-1-uuid", "first_name": "Tony", "..." : "..." },
"workflow_run": {
"id": "run-1-uuid",
"workflow": { "id": "uuid-es", "name": "Enlace de Pago Enviado" }
},
"routing": {
"processor_id": "abc-123-uuid",
"processor_name": "Language Router",
"matched_rule": { "id": "rule-2-uuid", "name": "Spanish leads", "position": 2 }
},
"index": 0
},
{
"success": true,
"lead": { "id": "lead-2-uuid", "first_name": "Tony", "..." : "..." },
"workflow_run": {
"id": "run-2-uuid",
"workflow": { "id": "uuid-en", "name": "Payment Link Sent" }
},
"routing": {
"processor_id": "abc-123-uuid",
"processor_name": "Language Router",
"matched_rule": { "id": "rule-1-uuid", "name": "English leads", "position": 1 }
},
"index": 1
}
],
"summary": {
"total": 2,
"created": 2,
"failed": 0
}
}
400 — Error de validación
{
"error": "Validation error",
"message": "first_name is required"
}
Otros errores de validación:
"Processor is misconfigured: default workflow is inactive or deleted"
"phone is required when assigning to a workflow with call steps"
"Maximum 1000 leads per request"
401 — Error de autenticación
Ver Autenticación.
404 — Processor no encontrado
{
"error": "Not found",
"message": "Processor not found or does not belong to your account"
}
500 — Error interno del servidor