What this audit checks
Authentication & access
- OAuth token valid (auth on /v2/users/me) and not expired/revoked
- client_credentials grant still issues a token (App ID/Secret current)
- Connector app has Conversations + Reports read scope
- All expected mailboxes readable (multi-mailbox aggregation complete)
Backlog health
- Open conversation count vs 30-day baseline (sudden growth = drowning signal)
- Blocked / waiting-tagged pending conversation count + change WoW
- Oldest open conversation age (>90 days = backlog rot)
- Backlog-by-priority skew (Highest+High priority tags >50% of open = firefighting)
- Backlog-by-status distribution (active/pending/closed/spam mix)
Throughput & capacity
- Conversations resolved (7d) dropped >25% vs prior week
- Avg cycle time degradation >25% week-over-week
- Assignees with >10 open conversations (overload signal)
- Unassigned conversations > 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 - vortex_iq-tagged conversations, no status change >14d
- Finding resolution rate over rolling 90d (target >75%, alert <50%)
- Avg time-to-fix for resolved findings (>14d sustained)
- Findings closed without a deploy/evidence note (silent dismissals)
- Regression rate - findings reopened after closed
Cross-channel: revenue-at-risk (the killer area)
- Critical findings from sibling connectors (shopify/bigcommerce/adobe/cybersource) older than 7 days with NO Help Scout conversation - coverage gap
- Abandoned findings count rising while a commerce sibling’s refund_rate climbs - measured-but-not-fixed revenue leak
- High-LTV customers (top decile per commerce sibling) waiting on unresolved vortex_iq conversations
- Help Scout conversations 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://api.helpscout.net/v2/users/me- Token + account/region sanityGET https://api.helpscout.net/v2/mailboxes- Mailbox inventory for multi-mailbox aggregationGET https://api.helpscout.net/v2/users- Agent inventory + capacity calc (assignee load)GET https://api.helpscout.net/v2/tags- Tag taxonomy (priority/blocked/topic clustering)GET https://api.helpscout.net/v2/conversations- Backlog reads: status/tag counts, oldest-open, by-assignee, abandoned-findings, blockedGET https://api.helpscout.net/v2/reports/conversations- Throughput / volume / closed aggregates (resolved-7d, trend, velocity)GET https://api.helpscout.net/v2/reports/productivity- Resolution time, replies, handled (cycle/lead time)GET https://api.helpscout.net/v2/reports/company- Resolved counts over windows (finding resolution-rate numerator/denominator, time-to-fix)