Reporte de Rendimiento de Workflow
Rendimiento por definición de workflow — cantidad de instancias, finalización, tasa de errores, duración promedio, tasa de escalamiento y cumplimiento de SLA.
/apidev/v1/reports/workflow/workflow-performanceResumen
Agrega las métricas de ejecución de cada definición de workflow durante un rango de fechas — total de instancias, instancias completadas, instancias con error, duración promedio de finalización, tasa de escalamiento y cumplimiento de SLA. Usalo para comparar el rendimiento de distintos workflows en paralelo y detectar definiciones con altas tasas de error o escalamiento. Se incluyen tanto las instancias activas como las archivadas (completadas, canceladas, con error).
Los resultados se paginan y pueden ordenarse por cualquiera de las columnas de métricas. Filtrá por una o más definiciones de workflow, o por estado de instancia, para acotar la comparación.
El campo sla_compliance_percent refleja valores reales solo cuando el seguimiento de SLA está habilitado para tu compañía. Cuando el SLA no está configurado, este campo toma 100 por defecto para cada workflow (no se registran incumplimientos). Contactá a tu equipo de cuenta para habilitar el seguimiento de SLA por paso.
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). |
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 para filtrar, separados por comas. Máximo 100. |
statuses | string | No | — | Estados de instancia a incluir, separados por comas (ej. RUNNING,COMPLETED,ERROR). Máximo 20. |
sort_by | string | No | totalInstances | Columna por la cual ordenar. Una de: totalInstances, completedInstances, errorInstances, avgDurationSeconds, escalationRate, slaCompliancePercent, 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:
totalInstances · completedInstances · errorInstances · avgDurationSeconds · escalationRate · slaCompliancePercent · 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/workflow-performance?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/workflow/workflow-performance?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/workflow-performance",
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
Cada elemento en data representa una definición de workflow.
| Campo | Tipo | Descripción |
|---|---|---|
wfdefid | string | ID de la definición de workflow. |
workflowName | string | Nombre de la definición de workflow. |
totalInstances | number | Total de instancias iniciadas en el período. |
completedInstances | number | Instancias que finalizaron con éxito. |
errorInstances | number | Instancias que terminaron en error. |
avgDurationSeconds | number | Duración promedio de finalización (segundos) de las instancias completadas. |
escalationRate | number | Porcentaje de tareas que fueron escaladas. |
slaCompliancePercent | number | Porcentaje de cumplimiento de SLA (toma 100 por defecto cuando el SLA no está configurado). |
Respuesta de ejemplo
{
"success": true,
"data": [
{
"wfdefid": "8421003344556677",
"workflowName": "Incident Resolution",
"totalInstances": 184,
"completedInstances": 171,
"errorInstances": 3,
"avgDurationSeconds": 4820.5,
"escalationRate": 12.5,
"slaCompliancePercent": 92.31
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0
}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos: fechas faltantes, valores de enum inválidos, paginación fuera de rango. |
INVALID_DATE_RANGE | 400 | Rango de fechas inválido o mayor a 92 días. |
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. |