/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ámetro | Tipo | Descripción |
|---|---|---|
processorId | string (uuid) | ID del processor |
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre legible de la regla (ej., “English leads”) |
workflow_id | string (uuid) | Sí | Agente de destino cuando esta regla coincide |
conditions | array | Sí | Array de objetos de condición (lógica AND: todas deben coincidir) |
position | integer | No | Orden de evaluación (menor = primero). Se agrega al final automáticamente si se omite |
is_active | boolean | No | Por defecto true |
Objeto de Condición
Cada condición evalúa un solo campo en el payload del lead entrante:| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
field | string | Sí | Ruta con puntos al campo del lead (ver campos soportados abajo) |
operator | string | Sí | Operador de comparación |
value | any | Depende | Valor de comparación (no requerido para exists/not_exists) |
Campos Soportados
| Campo | Origen |
|---|---|
first_name, last_name, email, phone, source, company, title | Campos de nivel superior del lead |
campaign_id | Asociación de campaña |
metadata.<key> | Cualquier clave dentro del objeto metadata (ej., metadata.language, metadata.budget) |
Operadores Soportados
| Operador | Descripción | Aplica a |
|---|---|---|
eq | Igual a | string, number, boolean |
neq | No igual a | string, number, boolean |
gt | Mayor que | number |
gte | Mayor o igual que | number |
lt | Menor que | number |
lte | Menor o igual que | number |
contains | Coincidencia de subcadena (sin distinción de mayúsculas) | string |
not_contains | Sin coincidencia de subcadena | string |
in | El valor está en la lista | string, number |
not_in | El valor no está en la lista | string, number |
exists | El campo está presente y no es nulo | any |
not_exists | El campo está ausente o es nulo | any |
regex | Coincidencia de patrón regex | string |
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
Regla con múltiples condiciones (lógica AND)
Enruta leads de alto presupuesto de CDMX a un Agente premium:Usando el operador in para múltiples valores
Respuestas
201 — Regla creada
400 — Error 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"