Reporte de Productividad de Usuarios de Workflow
Carga de trabajo de workflow por usuario — tareas completadas, pendientes y vencidas, tiempo promedio de finalización, cumplimiento de SLA y reasignaciones.
/apidev/v1/reports/workflow/user-productivityResumen
Agrega la actividad de tareas de workflow por usuario asignado durante el rango de fechas. Cada fila informa el usuario, sus cantidades de tareas completadas, pendientes y vencidas, el tiempo promedio de finalización, el porcentaje de cumplimiento de SLA y cuántas tareas fueron reasignadas. El vencimiento se calcula contra la hora actual de la compañía. Los resultados se paginan y ordenan del lado del servidor. Usá los filtros opcionales para acotar por definición de workflow o por un único asignado.
slaCompliancePercent solo tiene sentido cuando el seguimiento de SLA está configurado para la compañía. Cuando el SLA no está configurado, ninguna tarea tiene un resultado de SLA y el valor toma 100 por defecto.
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. |
assignee_id | string | No | — | Acota a un único ID de usuario asignado. |
sort_by | string | No | completedTasks | Columna por la cual ordenar. Una de: completedTasks, pendingTasks, overdueTasks, avgCompletionSeconds, reassignments, userName, slaMet, slaTotal. |
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:
completedTasks · pendingTasks · overdueTasks · avgCompletionSeconds · reassignments · userName · slaMet · slaTotal
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/user-productivity?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/workflow/user-productivity?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/user-productivity",
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 |
|---|---|---|
usuid | string | ID del usuario. |
userName | string | Nombre del usuario. |
completedTasks | number | Tareas completadas en el período. |
pendingTasks | number | Tareas pendientes o en progreso. |
overdueTasks | number | Tareas pendientes que pasaron su fecha de vencimiento (vs hora actual de la compañía). |
slaCompliancePercent | number | Tasa de cumplimiento de SLA para las tareas del usuario. Toma 100 por defecto cuando el SLA no está configurado. |
avgCompletionSeconds | number | Tiempo promedio de finalización en segundos. |
reassignments | number | Cantidad de tareas reasignadas. |
Respuesta de ejemplo
{
"success": true,
"data": [
{
"usuid": "552398174620055",
"userName": "Carlos Martinez",
"completedTasks": 37,
"pendingTasks": 6,
"overdueTasks": 2,
"slaCompliancePercent": 91.89,
"avgCompletionSeconds": 7420.5,
"reassignments": 3
}
],
"meta": {
"total": 1,
"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. |