Systems
Architect and engineer
Agentic IT Helpdesk
The same problem solved twice: an enterprise helpdesk agent on Microsoft Copilot Studio, and an independent full-stack platform where four cooperating agents triage, resolve, escalate and read sentiment.
Stack
Copilot Studio, Power Automate, Azure OpenAI, FastAPI, SQLAlchemy, Celery, Redis, PostgreSQL, React, TypeScript, WebSockets, Claude API
Problem
IT support queues fill with repetitive tickets. Triage is manual, SLAs slip quietly, and angry users wait behind calm ones.
Interface
Architecture
What I built
- Copilot Studio agent with custom skills, adaptive cards and Power Automate flows for triage, intent classification, routing to sub-agents and escalation; reduced MTTR.
- Full-stack platform: FastAPI (async) + SQLAlchemy 2.0 + Celery/Redis backend, React 18 + TypeScript frontend with shadcn/ui.
- Four agents: Triage runs on create, Resolution does knowledge-base and similar-ticket RAG with optional auto-resolve at 0.9 confidence, Escalation sweeps SLAs every five minutes, Sentiment auto-escalates angry users.
- Every agent decision logged with reasoning, confidence, model, latency and fallback flag; runs keyless on deterministic heuristics.
- JWT auth with RBAC, refresh tokens in httpOnly cookies, audit log, sliding-window rate limiting, prompt-injection hardening.
- Native WebSocket ticket events, live activity feed, analytics dashboard with SLA at-risk queue.
Proof
- Built four cooperating agents that triage, resolve, escalate and read sentiment on every ticket, with an SLA sweep every 5 minutes that escalates at-risk tickets on its own
- Kept it production-ready with 82 backend tests at about 87% coverage
- Shipped multi-tenant organisations with plan-based feature gating on a Docker Compose production stack with health checks
Stack
- Copilot Studio
- Power Automate
- Azure OpenAI
- FastAPI
- SQLAlchemy
- Celery
- Redis
- PostgreSQL
- React
- TypeScript
- WebSockets
- Claude API
Share this case
