Skip to main content

Workflow SLA Compliance Report

SLA compliance per workflow step — met vs missed counts, compliance rate, average response/resolution times, and breaches.

GET/apidev/v1/reports/workflow/sla-compliance
PermissionAPICLI_RPTWF_SLA
Rate Limit10 req/min
Cache300s
Max Range92 days

Overview​

Aggregates SLA outcomes by workflow step over the date range. Each row reports the step and its parent workflow, the total tasks with an SLA outcome, how many met vs missed the SLA, the resulting compliance percentage, the average response and resolution times, and the number of breaches. Results are paginated and ordered server-side.

Requires SLA configuration

This report depends on SLA tracking being enabled per company. If the company has no SLA configuration, the report returns an empty result (data: [], total: 0) instead of an error. Configure SLA on the affected workflow steps to populate this report.


Request​

Request Headers​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Query Parameters​

ParameterTypeRequiredDefaultDescription
startdatestringYes—ISO 8601 start date-time (e.g. 2026-03-01T00:00:00). Filters by task creation date.
enddatestringYes—ISO 8601 end date-time. Max range 92 days from startdate.
definition_idsstringNo—Comma-separated workflow definition IDs to include. Max 100.
sort_bystringNototalTasksColumn to sort by. One of: totalTasks, slaMetCount, slaMissedCount, avgResponseSeconds, avgResolutionSeconds, breachCount, stepName, workflowName.
sort_dirstringNodescSort direction: asc or desc.
limitintegerNo25Number of records per page (1–100).
offsetintegerNo0Number of records to skip for pagination.
sort_by is validated per report

This report accepts exactly these values:

totalTasks · slaMetCount · slaMissedCount · avgResponseSeconds · avgResolutionSeconds · breachCount · stepName · workflowName

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 -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"

Response​

Response Fields​

FieldTypeDescription
wfstepidstringWorkflow step ID.
stepNamestringWorkflow step name.
workflowNamestringParent workflow definition name.
totalTasksnumberTasks with an SLA outcome in the period.
slaMetCountnumberTasks that met the SLA (MET / ON_TIME).
slaMissedCountnumberTasks that missed the SLA (BREACHED / MISSED).
slaCompliancePercentnumberCompliance rate: met / total × 100.
avgResponseSecondsnumberAverage time to first response (seconds).
avgResolutionSecondsnumberAverage time to resolution (seconds).
breachCountnumberTasks explicitly marked BREACHED.

Example Response​

{
"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
}
}

When SLA is not configured for the company, the response is empty:

{
"success": true,
"data": [],
"meta": { "total": 0, "limit": 25, "offset": 0 }
}

Errors​

CodeHTTPDescription
VALIDATION_ERROR400Invalid params: missing dates, range > 92 days, invalid enum values.
INVALID_DATE_RANGE400Date range invalid or greater than 92 days.
UNAUTHORIZED401Missing, invalid, or expired tenant / Authorization / X-API-Key
FORBIDDEN403User lacks required permission.
RATE_LIMITED429Exceeded 10 req/min.
INTERNAL_ERROR500Unexpected server error.