AI Support Ticket Classifier
Independent Development
An automated workflow system that processes customer tickets to generate routing metadata.
Industry: AI / Customer Support / Automation
Purpose
Automatically categorize, prioritize, and summarize incoming customer support requests using OpenAI
Timeline: June 2026
Tech Stack
Overview
Customer support teams traditionally spend valuable time manually reviewing incoming requests — reading each ticket, determining its category, assigning a priority level, and routing it to the appropriate team. This manual triage leads to slow response times, inconsistent categorization, incorrect priority assignments, and increased operational costs. This project automates the entire classification process by using AI to analyze ticket content and generate structured metadata — category, priority, sentiment, and a summary — that can be consumed by downstream systems such as CRMs, help desks, Slack, or email automation platforms.
Developmental Challenges
One of the main technical hurdles was container-to-host Docker networking — enabling a containerized n8n workflow running inside Docker to communicate with a local Express/TypeScript backend on the host machine via the host.docker.internal DNS name. Additionally, I had to implement strict request input validation using Zod schemas to reject malformed or missing payloads before they reached the OpenAI API, preventing unnecessary API costs. Finally, configuring robust system prompts was critical to achieving consistent classification results across four ticket categories and three priority levels, requiring careful engineering of the prompt to handle edge cases and ambiguous inputs.
Tailored Software Solution
The system exposes a REST API built with Express.js and TypeScript featuring two endpoints: a GET /health endpoint for uptime monitoring and a POST /classify-ticket endpoint for classification. Incoming POST requests are validated using Zod schemas accepting subject (optional) and message (required) fields — any invalid or missing payloads are rejected with validation errors before reaching the OpenAI API, preventing wasted inference costs. Valid requests are sent to OpenAI with carefully engineered prompts that extract the ticket's category (Billing, Technical Support, Refund Request, Feature Request), priority (High, Medium, Low), customer sentiment, and an executive summary. The structured JSON response is returned to an n8n workflow, which serves as the central orchestrator — receiving manual webhook triggers, routing data to the Express API via host.docker.internal for container-to-host communication, and executing category-specific automation paths: storing tickets in Supabase with email and Slack notifications for billing issues, storing tickets with conditional priority-based Slack alerts for technical support, and direct Slack notifications for refund and feature requests. Multiple test scenarios were used to validate consistent classification behavior across diverse ticket types.
System & Workflow Architecture
System Architecture
n8n Workflow

Demo Video
Measurable Results & Impact
The automated workflow processes tickets in seconds, eliminating manual triage latency and reducing operational costs. Strict Zod validation prevented wasted API calls by blocking malformed requests before they reached OpenAI. The prompt-engineered AI classification delivered consistent results across multiple test scenarios covering all four categories and three priority levels. The n8n-to-Docker networking configuration demonstrated a production-ready containerized architecture with Supabase persistence for billing and technical support tickets, category-specific Slack notifications with priority-based formatting, and email automation for billing-related workflows. The system proved how modern AI can be integrated into business automation without requiring changes to existing customer-facing systems.
Key Features Implemented
- ✓AI-powered ticket classification analyzing category, priority, sentiment, and summary
- ✓Robust input validation using Zod schemas to block invalid payloads and prevent wasted API costs
- ✓n8n workflow orchestration routing tickets through classification, logging, and notification pipelines
- ✓Supabase PostgreSQL ticket persistence with structured record storage for audit trails
- ✓Category-based conditional routing with distinct automation paths for billing, technical, refund, and feature requests
- ✓Slack notifications with priority-based alerts and Gmail email notifications for team awareness
- ✓Docker containerized architecture with host-to-container networking via host.docker.internal
- ✓REST API with health monitoring endpoints and structured JSON responses