What this audit checks
Authentication & access
- V3 API key valid (auth on /api/v3/agents) and not revoked
- Subdomain / custom domain correct and reachable (correct data-residency region)
- API key role can read tickets, agents, departments and contacts
- All expected departments readable (multi-department aggregation complete)
Backlog health
- Open ticket count vs 30-day baseline (sudden growth = drowning signal)
- Blocked / SLA-breached ticket count + change WoW
- Oldest open ticket age (>90 days = backlog rot)
- Backlog-by-priority skew (Urgent+High >50% of open = firefighting)
- Backlog-by-status distribution (New/Open/Answered/Postponed mix)
Throughput & capacity
- Tickets resolved (7d) dropped >25% vs prior week
- Avg cycle time degradation >25% week-over-week
- Assignees with >10 open tickets (overload signal)
- Unassigned tickets > 5 (warn) / > 20 (critical) - work nobody owns
- Sprint scope-creep (>15% added after the triage window started)
VortexIQ findings lifecycle (the stickiness test)
- Abandoned findings - vortexiq-finding-tagged tickets, no date_changed activity >14d
- Finding resolution rate over rolling 90d (target >75%, alert <50%)
- Avg time-to-fix for resolved findings (>14d sustained)
- Postpone-and-forget - Postponed findings aged >14d past the postpone action
- Findings resolved without an evidence note (silent dismissals)
Cross-channel: revenue-at-risk (the killer area)
- Critical findings from sibling connectors (shopify/bigcommerce/adobe/cybersource) older than 7 days with NO LiveAgent ticket - coverage gap
- Abandoned findings count rising while a commerce sibling’s refund_rate climbs - measured-but-not-fixed revenue leak
- High-LTV contacts (top decile per commerce sibling) waiting on unresolved vortexiq-finding tickets
- LiveAgent tickets referencing decommissioned / archived integrations - stale work
Severity thresholds
| Signal | Warn | Critical |
|---|---|---|
vortexiq_findings_abandoned | 5 | 15 |
vortexiq_finding_resolution_rate | 75 | 50 |
blocked_tickets | 3 | 8 |
unassigned_tickets | 5 | 20 |
oldest_open_ticket_age_days | 60 | 90 |
cycle_time_change_pct | 25 | 50 |
scope_creep_pct | 15 | 30 |
Data sources
GET https://{subdomain}.ladesk.com/api/v3/agents- API key + account/region sanity, agent inventory + capacity calcGET https://{subdomain}.ladesk.com/api/v3/departments- Department inventory for multi-department aggregation + workload splitGET https://{subdomain}.ladesk.com/api/v3/contacts- Requester inventory for cross-channel customer joinsGET https://{subdomain}.ladesk.com/api/v3/tickets- Backlog reads: status/priority counts, oldest-open, by-assignee, abandoned-findings, blocked, resolution-rate numerator/denominatorGET https://{subdomain}.ladesk.com/api/v3/tickets/{ticketId}- Finding-ticket lifecycle reads (in-flight, resolved, time-to-fix)