Saltar al contenido principal
POST /processors/:processorId/rules Agrega una regla de enrutamiento a un processor. Las reglas se evalúan de arriba a abajo por position: la primera regla donde todas las condiciones coinciden determina el Agente de destino.

Parámetros de Ruta

ParámetroTipoDescripción
processorIdstring (uuid)ID del processor

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
namestringNombre legible de la regla (ej., “English leads”)
workflow_idstring (uuid)Agente de destino cuando esta regla coincide
conditionsarrayArray de objetos de condición (lógica AND: todas deben coincidir)
positionintegerNoOrden de evaluación (menor = primero). Se agrega al final automáticamente si se omite
is_activebooleanNoPor defecto true

Objeto de Condición

Cada condición evalúa un solo campo en el payload del lead entrante:
CampoTipoRequeridoDescripción
fieldstringRuta con puntos al campo del lead (ver campos soportados abajo)
operatorstringOperador de comparación
valueanyDependeValor de comparación (no requerido para exists/not_exists)

Campos Soportados

CampoOrigen
first_name, last_name, email, phone, source, company, titleCampos de nivel superior del lead
campaign_idAsociación de campaña
metadata.<key>Cualquier clave dentro del objeto metadata (ej., metadata.language, metadata.budget)

Operadores Soportados

OperadorDescripciónAplica a
eqIgual astring, number, boolean
neqNo igual astring, number, boolean
gtMayor quenumber
gteMayor o igual quenumber
ltMenor quenumber
lteMenor o igual quenumber
containsCoincidencia de subcadena (sin distinción de mayúsculas)string
not_containsSin coincidencia de subcadenastring
inEl valor está en la listastring, number
not_inEl valor no está en la listastring, number
existsEl campo está presente y no es nuloany
not_existsEl campo está ausente o es nuloany
regexCoincidencia de patrón regexstring

Lógica

  • Múltiples condiciones dentro de una regla usan lógica AND: todas deben coincidir.
  • Para lógica OR, crea reglas separadas apuntando al mismo Agente.
  • Primera coincidencia gana: una vez que una regla coincide, la evaluación se detiene.
  • Si ninguna regla coincide, se usa el Agente por defecto del processor.

Ejemplos

Enrutamiento simple basado en idioma

curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/rules \
  -H "Content-Type: application/json" \
  -H "X-API-Key: nxr_live_your_api_key" \
  -d '{
    "name": "English leads",
    "workflow_id": "uuid-of-en-workflow",
    "position": 1,
    "conditions": [
      {
        "field": "metadata.language",
        "operator": "eq",
        "value": "EN"
      }
    ]
  }'

Regla con múltiples condiciones (lógica AND)

Enruta leads de alto presupuesto de CDMX a un Agente premium:
curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/rules \
  -H "Content-Type: application/json" \
  -H "X-API-Key: nxr_live_your_api_key" \
  -d '{
    "name": "Premium CDMX",
    "workflow_id": "uuid-of-premium-workflow",
    "position": 1,
    "conditions": [
      {
        "field": "metadata.budget",
        "operator": "gte",
        "value": 5000000
      },
      {
        "field": "metadata.city",
        "operator": "eq",
        "value": "CDMX"
      }
    ]
  }'

Usando el operador in para múltiples valores

curl -X POST https://api.getnexor.ai/api/public/processors/abc-123-uuid/rules \
  -H "Content-Type: application/json" \
  -H "X-API-Key: nxr_live_your_api_key" \
  -d '{
    "name": "Coastal regions",
    "workflow_id": "uuid-of-coastal-workflow",
    "position": 2,
    "conditions": [
      {
        "field": "metadata.state",
        "operator": "in",
        "value": ["Quintana Roo", "Yucatan", "Baja California"]
      }
    ]
  }'

Respuestas

201 — Regla creada

{
  "success": true,
  "rule": {
    "id": "rule-uuid",
    "processor_id": "abc-123-uuid",
    "name": "English leads",
    "workflow_id": "uuid-of-en-workflow",
    "workflow": {
      "id": "uuid-of-en-workflow",
      "name": "Payment Link Sent"
    },
    "conditions": [
      {
        "field": "metadata.language",
        "operator": "eq",
        "value": "EN"
      }
    ],
    "position": 1,
    "is_active": true,
    "created_at": "2026-03-31T12:00:00Z"
  }
}

400 — Error de validación

{
  "error": "Validation error",
  "message": "workflow_id not found or does not belong to your account"
}
Otros errores de validación:
  • "name is required"
  • "conditions must be an array"
  • "Invalid operator: must be one of eq, neq, gt, gte, lt, lte, contains, not_contains, in, not_in, exists, not_exists, regex"
  • "Invalid field: must be a lead field or metadata.<key> path"

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

Última modificación el 18 de junio de 2026