Workflow Tasks Detail Report
Paginated detail of every workflow task in a date range — step, assignee, status, due/completion dates, and SLA timings.
/apidev/v1/reports/workflow/tasksOverview
Returns one row per workflow task created within the date range, ordered and paginated server-side. Each row reports the parent workflow, the step name, the assignee, the task status, due and completion dates, the result code, and the linked entity. When SLA tracking is configured for the company, the response also includes the SLA status and response/resolution timings; otherwise those fields are null. Use the optional filters to narrow by workflow definition, task status, assignee, entity type, or a free-text search over the workflow and step names.
Request
Request Headers
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 |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startdate | string | Yes | — | ISO 8601 start date-time (e.g. 2026-03-01T00:00:00). Filters by task creation date. |
enddate | string | Yes | — | ISO 8601 end date-time. Max range 92 days from startdate. |
definition_ids | string | No | — | Comma-separated workflow definition IDs to include. Max 100. |
statuses | string | No | — | Comma-separated task statuses (e.g. PENDING,IN_PROGRESS,COMPLETED). Max 20. |
assignee_id | string | No | — | Filter by the assigned user ID. |
entity_type | string | No | — | Filter by the linked entity type. One of: TAREA, CUENTA, CLIENTE, PERSONAL, DISPOSITIVO, NINGUNA. |
search | string | No | — | Free-text search over workflow name and step name. Max length 120. |
sort_by | string | No | Creation date | Column to sort by. One of: workflowName, stepName, assigneeName, status, dueDate, completedAt. Omitted → ordered by task creation date. |
sort_dir | string | No | desc | Sort direction: asc or desc. |
limit | integer | No | 25 | Number of records per page (1–100). |
offset | integer | No | 0 | Number of records to skip for pagination. |
sort_by is validated per reportThis report accepts exactly these values:
workflowName · stepName · assigneeName · status · dueDate · completedAt
Four legacy aliases are also accepted: wftaskcreatedat (task creation date — the order used when sort_by is omitted), wftaskestado (= status), wftaskplazo (= dueDate), wftaskcompleteddat (= completedAt).
Anything else returns 400 VALIDATION_ERROR, and the message names the accepted values. Until 2026-08-16 an unrecognised sort_by was silently ignored and the report came back in its default order, so a mis-typed column looked like it had worked.
Code Examples
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/workflow/tasks?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/workflow/tasks?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/tasks",
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()
Response
Response Fields
| Field | Type | Description |
|---|---|---|
wftaskid | string | Task ID. |
workflowName | string | Parent workflow definition name. |
stepName | string | Workflow step name. |
assigneeName | string | null | Name of the assigned user. |
status | string | Task status (e.g. PENDING, IN_PROGRESS, COMPLETED). |
dueDate | string | null | Task due date, or null if none. |
completedAt | string | null | Completion timestamp, or null if not completed. |
slaStatus | string | null | SLA status (e.g. MET, BREACHED). null when SLA is not configured. |
responseTimeSeconds | number | null | Time to first response in seconds. null when SLA is not configured. |
resolutionTimeSeconds | number | null | Time to resolution in seconds. null when SLA is not configured. |
resultCode | string | null | Result code recorded on completion. |
entityType | string | Linked entity type (TAREA, CUENTA, CLIENTE, PERSONAL, DISPOSITIVO, NINGUNA). |
entityRef | string | Human-readable entity reference. |
slaStatus, responseTimeSeconds, and resolutionTimeSeconds are populated only when SLA tracking is enabled for the company. If SLA is not configured, these fields return null while the rest of the row is unaffected.
Example Response
{
"success": true,
"data": [
{
"wftaskid": "839201746203881",
"workflowName": "Incident Resolution",
"stepName": "Field Inspection",
"assigneeName": "Carlos Martinez",
"status": "COMPLETED",
"dueDate": "2026-03-04T12:00:00",
"completedAt": "2026-03-04T11:48:00",
"slaStatus": "MET",
"responseTimeSeconds": 420,
"resolutionTimeSeconds": 9360,
"resultCode": "OK",
"entityType": "TAREA",
"entityRef": "552398174620055"
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0
}
}
Errors
| Code | HTTP | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid params: missing dates, range > 92 days, invalid enum values. |
INVALID_DATE_RANGE | 400 | Date range invalid or greater than 92 days. |
UNAUTHORIZED | 401 | Missing, invalid, or expired tenant / Authorization / X-API-Key |
FORBIDDEN | 403 | User lacks required permission. |
RATE_LIMITED | 429 | Exceeded 10 req/min. |
INTERNAL_ERROR | 500 | Unexpected server error. |