Slack Thread Tracker (SLA + AI Triage)

Support-ops platform that ingests Slack threads, classifies EV/Auth work with Azure OpenAI (incl. images), and monitors first-reply / resolution SLAs.

Problem

Support work for eligibility and prior auth often lives in Slack channels. Without structured queues, SLA clocks, or triage, threads go unanswered, after-hours carry-over is invisible, and managers lack response-time analytics.

Solution

Built a Slack Thread Tracker FastAPI service behind the App Hub BFF:

  • Signed Events API ingestion — parents, replies, reactions, full message mirror (incl. bots) for audit; auto-resolve image-only messages; team emoji reactions map to RESOLVED / ANSWERED and can seed first-reply SLA timing
  • Per-workspace Slack credentials managed server-side (not in the portfolio or browser)
  • AI classification: EV / Auth / other — keyword fast-path or multimodal Azure OpenAI when images are present
  • AI-assisted resolution detection (vs acknowledgements / pending)
  • SLA engine: first-reply & resolution deadlines, shifts, after-hours / carry-over, warning & breach stamps via APScheduler

App Hub experience

  • Dashboard, resolved view, analytics, channel assignment & configuration (permission-gated) — notification users vs handling users; pre-shift HTML digest emails
  • Queues and reports scoped to channels assigned to the current user in the active org
  • Volume reporting in turnaround buckets (≤10 through 60+ minutes) with CSV export
  • Admin chat-style thread mirror for operational review across workspaces

Architecture

Slack delivers to POST /slack/events on the .NET BFF (anonymous ingress; signature verified in Python). Authenticated App Hub users hit /slack-api/{orgId}/... with JWT + org permission checks, then the Slack service applies channel-assignment scoping.

What I Built

  • Event ingestion, mirror, thread, resolve, and settings APIs
  • Classification + SLA monitor background jobs
  • Analytics / reports surface and App Hub integration wiring

Tech Stack

PythonFastAPIAzure OpenAIAPSchedulerSlack APISQL ServerReact.NET