AI + Human Customer Support System
SupportIQ is a full‑stack customer support platform that combines an AI assistant with a human escalation workflow and an admin dashboard. It was built as an experiment in AI‑assisted ("vibe") coding, focusing on real‑world system design, integration, and debugging while using AI tools (ChatGPT & Claude) to accelerate implementation.
- AI powered chat support (Gemini)
- Product issue matching from database
- Context‑aware conversation memory
- Human escalation with phone number capture
- Rate limiting & request validation
- Secure admin login (dummy credentials for demo)
- View open escalation tickets
- View full chat history & user phone number
- Start fixing → submit human solution
- Resolve ticket & auto‑create knowledge base entry
- Ticket lifecycle: Open → Assigned → Resolved
- Keyword extraction from conversation
- Automatic knowledge base growth (ProductIssue collection)
React (Vite),Axios,React Router
Node.js,Express,MongoDB + Mongoose,Gemini AI
SupportIQ is designed around three main subsystems:
- AI Chat System
- Ticket & Escalation System
- Knowledge Base (Auto‑learning)
Flow
- User sends message from frontend
- Backend receives /api/chat
- Relevant ProductIssues are fetched from MongoDB
- Conversation memory + DB context is passed to LLM (Gemini)
- AI generates structured support response
- Response is returned to frontend
Context injection using: conversation memory, matched product issues, rate limits, Fail‑safe handling when AI is unavailable
Escalation Flow
User Chat
↓
Clicks “Need Human Support”
↓
POST /api/support/escalate
↓
SupportTicket created
↓
Admin Dashboard lists ticket
Duplicate Protection
One active ticket per sessionId
Backend validation prevents duplicate escalations
Admin Dashboard Flow
Login → View Tickets → Show Details → Start Fixing → Submit Solution
Resolve Ticket Flow
Admin submits solution
↓
POST /admin/tickets/:id/resolve
↓
Create ProductIssue entry
↓
Mark ticket resolved
↓
Remove from open list
This allows the AI to automatically learn from human solutions.
Keywords are generated on the backend using a text‑based extractor:
Combine chat history + issue summary Normalize text Filter short words Store keywords in SupportTicket Admin UI uses keywords to generate short headings: ["headphones", "bluetooth"] → "Headphones – Bluetooth issue" This avoids frontend guessing and ensures consistency.
This project was built using AI tools as coding assistants: ChatGPT, Claude
Real challenges faced: Framework mismatches in generated code, Incorrect library usage, Context loss in long AI conversations, Integration bugs between frontend and backend, Reliance on official documentation to fix issues
Key learning:
AI accelerates development, but system design, debugging, and engineering judgment remain essential.
