AI case study
AI Workflow Automation Platform
A workflow builder that routes incoming client requests through AI classification, approvals and notifications.
- Manual triage time
- -82%
- Requests logged
- 100%
- Avg. response time
- 4h → 25m
Runs
1284
Success
99.4%
Queued
3
Interface reference — rendered from the real component structure, not a stock image.
The problem
An operations team triaged every inbound request by hand in a shared inbox. Requests were missed, and nobody could say how long anything took.
The solution
A workflow engine where each request is classified by an LLM, assigned an owner, escalated on a timer and logged to Postgres with a full audit trail.
Hard parts
Model output had to be constrained to a fixed schema, and retries could not create duplicate tasks. I added schema validation on every completion plus idempotency keys on the queue.
Outcome
Manual triage went from a full-time task to a short daily review, with every request timestamped and traceable.
Technology used
- Next.js
- TypeScript
- Supabase
- OpenAI
- n8n
- Vercel
How it was delivered
- 01Client problemInbound work arrived by email and WhatsApp with no owner and no tracking.
- 02ResearchTwo weeks of message samples were labelled to find the real request categories.
- 03PlanningMapped a state machine: received → classified → assigned → resolved, with escalation timers.
- 04WireframeLow-fidelity queue and detail views validated with the ops lead before any code.
- 05DevelopmentNext.js front end, Supabase Postgres with row level security, n8n for outbound notifications.
- 06TestingReplayed historical messages through the classifier and compared against human labels.
- 07DeploymentPreview environments per branch on Vercel, production promoted after sign-off.
- 08ResultsTriage collapsed to a daily review; SLA breaches became visible instead of invisible.
Lessons learned
Constrain model output at the schema level early. Prompt tuning is far less valuable than a validator that refuses malformed responses.