Skip to content
All projects

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
dashboard · workflows

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

  1. 01Client problemInbound work arrived by email and WhatsApp with no owner and no tracking.
  2. 02ResearchTwo weeks of message samples were labelled to find the real request categories.
  3. 03PlanningMapped a state machine: received → classified → assigned → resolved, with escalation timers.
  4. 04WireframeLow-fidelity queue and detail views validated with the ops lead before any code.
  5. 05DevelopmentNext.js front end, Supabase Postgres with row level security, n8n for outbound notifications.
  6. 06TestingReplayed historical messages through the classifier and compared against human labels.
  7. 07DeploymentPreview environments per branch on Vercel, production promoted after sign-off.
  8. 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.

More case studies