Reporte de Cumplimiento de SLA de Workflow
Cumplimiento de SLA por paso del workflow — cantidades cumplidas vs incumplidas, tasa de cumplimiento, tiempos promedio de respuesta/resolución e incumplimientos.
/apidev/v1/reports/workflow/sla-complianceResumen
Agrega los resultados de SLA por paso del workflow durante el rango de fechas. Cada fila informa el paso y su workflow padre, el total de tareas con un resultado de SLA, cuántas cumplieron vs incumplieron el SLA, el porcentaje de cumplimiento resultante, los tiempos promedio de respuesta y resolución, y la cantidad de incumplimientos. Los resultados se paginan y ordenan del lado del servidor.
Este reporte depende de que el seguimiento de SLA esté habilitado por compañía. Si la compañía no tiene configuración de SLA, el reporte devuelve un resultado vacío (data: [], total: 0) en lugar de un error. Configurá el SLA en los pasos del workflow afectados para poblar este reporte.
Solicitud
Encabezados de la solicitud
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your assigned tenant domain (default: geotareas.com) — always send your assigned tenant |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Parámetros de consulta
| Parámetro | Tipo | Requerido | Por defecto | Descripción |
|---|---|---|---|---|
startdate | string | Sí | — | Fecha-hora de inicio en ISO 8601 (ej. 2026-03-01T00:00:00). Filtra por la fecha de creación de la tarea. |
enddate | string | Sí | — | Fecha-hora de fin en ISO 8601. Rango máximo de 92 días desde startdate. |
definition_ids | string | No | — | IDs de definición de workflow a incluir, separados por comas. Máximo 100. |
sort_by | string | No | totalTasks | Columna por la cual ordenar. Una de: totalTasks, slaMetCount, slaMissedCount, avgResponseSeconds, avgResolutionSeconds, breachCount, stepName, workflowName. |
sort_dir | string | No | desc | Dirección de ordenamiento: asc o desc. |
limit | integer | No | 25 | Cantidad de registros por página (1–100). |
offset | integer | No | 0 | Cantidad de registros a omitir para la paginación. |
sort_by se valida por reporteEste reporte acepta exactamente estos valores:
totalTasks · slaMetCount · slaMissedCount · avgResponseSeconds · avgResolutionSeconds · breachCount · stepName · workflowName
Cualquier otro valor devuelve 400 VALIDATION_ERROR, y el mensaje enumera los valores aceptados. Hasta el 2026-08-16 un sort_by no reconocido se ignoraba en silencio y el reporte volvía en su orden por defecto, así que una columna mal escrita parecía haber funcionado.
Ejemplos de código
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/workflow/sla-compliance?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/workflow/sla-compliance?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&limit=25`,
{
headers: {
'Authorization': `Bearer ${TOKEN}`,
'X-API-Key': APIKEY,
'tenant': TENANT,
},
}
);
const data = await res.json();
import requests
response = requests.get(
f"https://{TENANT}/apidev/v1/reports/workflow/sla-compliance",
headers={"Authorization": f"Bearer {TOKEN}", "X-API-Key": APIKEY, "tenant": TENANT},
params={"startdate": "2026-03-01T00:00:00", "enddate": "2026-03-31T23:59:59", "limit": 25},
)
data = response.json()
Respuesta
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
wfstepid | string | ID del paso del workflow. |
stepName | string | Nombre del paso del workflow. |
workflowName | string | Nombre de la definición de workflow padre. |
totalTasks | number | Tareas con un resultado de SLA en el período. |
slaMetCount | number | Tareas que cumplieron el SLA (MET / ON_TIME). |
slaMissedCount | number | Tareas que incumplieron el SLA (BREACHED / MISSED). |
slaCompliancePercent | number | Tasa de cumplimiento: cumplidas / total × 100. |
avgResponseSeconds | number | Tiempo promedio hasta la primera respuesta (segundos). |
avgResolutionSeconds | number | Tiempo promedio hasta la resolución (segundos). |
breachCount | number | Tareas marcadas explícitamente como BREACHED. |
Respuesta de ejemplo
{
"success": true,
"data": [
{
"wfstepid": "120384756293001",
"stepName": "Field Inspection",
"workflowName": "Incident Resolution",
"totalTasks": 48,
"slaMetCount": 41,
"slaMissedCount": 7,
"slaCompliancePercent": 85.42,
"avgResponseSeconds": 512.4,
"avgResolutionSeconds": 8740.1,
"breachCount": 5
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0
}
}
Cuando el SLA no está configurado para la compañía, la respuesta es vacía:
{
"success": true,
"data": [],
"meta": { "total": 0, "limit": 25, "offset": 0 }
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos: fechas faltantes, rango > 92 días, valores de enum inválidos. |
UNAUTHORIZED | 401 | tenant / Authorization / X-API-Key faltante, inválido o expirado |
FORBIDDEN | 403 | El usuario no tiene el permiso requerido. |
RATE_LIMITED | 429 | Se superaron las 10 req/min. |
INTERNAL_ERROR | 500 | Error inesperado del servidor. |