Back to Portfolio
AI / SaaSIn Development

Atlas Desk

An AI-first customer support ticketing platform with automated triage, routing tickets intelligently across WhatsApp, email, and chat — without human intervention on first contact. Custom AI agents act as an automated L1 support tier, gated by a confidence-threshold system that escalates uncertain tickets instead of acting on them.

Founder & Engineer
2025 – Present
AI / SaaS
View Project
3
Channels Unified
AI
Automated First Triage
~80%
Build Complete
SaaS
Subscription Model

Early-stage startups can't afford full support teams, but slow ticket response kills user trust. Most ticketing tools are designed for large teams — expensive, complex to set up, and blind to unstructured messages coming in over WhatsApp or email.

Someone needed to build the layer in between: smart enough to handle first contact automatically, simple enough for a two-person team to run.

Underneath that, the deeper operational drag isn't fixing bugs — it's the hours wasted triaging duplicate tickets, deciphering vague reports, and hunting for context. Traditional helpdesks are dumb databases waiting for humans to do the heavy lifting.

An AI-native support tier

Atlas Desk is an AI-native ticketing platform where an agent layer handles the first pass. It classifies intent, extracts urgency, and routes tickets to the right queue before a human ever sees them.

Messages from WhatsApp, email, and a chat widget flow into a unified inbox. AI agents triage automatically based on rules the team defines. The whole thing is gated by a confidence-threshold system — below a certain certainty level, the agent escalates to a human instead of acting.

The AI's failure mode is 'ask for help,' not 'act incorrectly.' That single design decision changed the trust dynamic completely.

The origin was chaos

Atlas Desk started from a personal pain point. I was helping a startup manage support over WhatsApp and it was chaos. Messages got missed. Priorities were unclear. There was no audit trail.

I started building a simple routing layer for myself and it grew into a full platform once I saw how much of the triage work could actually be automated safely.

The AI agent layer that almost killed the product

The AI agent layer took several iterations to get right. Early versions were too aggressive — they'd auto-close tickets that actually needed human attention, or downgrade urgency on messages that were genuinely time-sensitive.

That's the exact failure mode you can't ship in a customer support product: an AI that acts confidently and wrongly is worse than no AI at all, because it silently breaks trust with the operator. Teaching the agent to know what it doesn't know was the hardest part of the whole build.

Confidence thresholds fixed the trust problem

The fix was a confidence-threshold system. Every agent decision produces a probability score. If the score is below a threshold the operator can tune, the ticket escalates to a human with the AI's reasoning attached instead of being auto-acted on.

That single design decision changed the trust dynamic completely. Operators started letting the agent do more, because they could see that when the agent wasn't sure, it escalated instead of guessing.

Designing LLM-powered agents to read completely unstructured data and accurately assign priority levels — without ever hallucinating a critical P0 alert or ignoring a real one — required rigorous prompt engineering, structured confidence scoring, and fallback safety mechanisms at every decision point. Every agent output goes through a validation layer before it becomes a ticket action.

The inbox comes before the AI

The biggest product lesson was that the AI wasn't the thing operators cared about first. They cared about the unified inbox.

Getting messages from WhatsApp, email, and chat into one queue with a consistent format solved the first-order problem of 'nothing is falling through the cracks.' The AI triage was second-order value, and I only earned the right to ship it because the inbox worked.

If you try to sell operators on the AI first, they don't trust the platform. If the inbox works, they'll try the AI.

What I learned

AI agents in customer-facing contexts need a confidence threshold. Below a certain certainty level, the agent should escalate rather than act. Confidence scoring plus operator-tunable thresholds is the design pattern that makes AI-in-the-loop actually shippable in high-stakes workflows.

The most important feature isn't the AI triage — it's the unified inbox. Operators don't care about the AI until they trust the inbox. Get the basics right first; earn the right to ship the fancy layer.

Building a multitenant SaaS taught me how to balance heavy backend AI orchestration with a fast, responsive frontend. A brilliant AI model is useless if it's wrapped in a clunky UI. The Next.js App Router work was as load-bearing as the agent design.

What I owned

  • Architected the full platform — unified inbox ingesting WhatsApp, email, and chat widget into a single queue with a consistent format, solving the first-order 'nothing falls through the cracks' problem before any AI
  • Designed the AI agent decision layer — classifying intent, extracting urgency signals, and routing tickets without human intervention, with every output passing through a validation layer before becoming a ticket action
  • Built the confidence threshold system that escalates low-certainty tickets to human agents rather than acting incorrectly — with operator-tunable thresholds so teams can dial the AI's autonomy per queue
  • Implemented the subscription billing system and multi-tenant architecture for SaaS deployment, with tenant isolation at both the data and agent-behavior layers
  • Designed the operator dashboard for rule definition, queue management, and ticket audit trails — so operators can see and override every AI decision
  • Owned frontend architecture on Next.js App Router to deliver a responsive, enterprise-grade operator experience that could keep up with high ticket volume