AI Support Platform
An internal platform that unifies five support channels, uses guarded LangGraph agents to resolve tickets, and automates review, payment, delivery, and observability workflows.
- 5
- verified channel adapters
- 80%
- backend coverage gate
- Live
- production workflow
- Agentic AI
- Omnichannel support
- Payment automation
- Reliability engineering


One reliable ticket lifecycle across five very different support channels.
Support requests arrived through email, social platforms, and live chat, each with different event formats and reply semantics. The challenge was preserving conversation continuity without creating duplicate tickets, missed replies, unsafe payment actions, or fragmented manual handling.
I designed an internal platform around a shared ticket lifecycle. A FastAPI service normalizes channel events, a Next.js workspace gives operators one place to work, and a LangGraph ReAct agent classifies requests, retrieves trusted context, and invokes bounded support, refund, cancellation, knowledge, or review tools.
I treated reliability as part of the product: idempotency keys, execution claims, distributed locks, signed webhooks, a durable outbound-email pipeline, dead-letter recovery, graceful worker shutdown, and fail-soft tracing protect the workflow around the agent.
From incoming message to guarded resolution and verified delivery.
The platform brings channel-specific conversations into one operational model while keeping agent decisions, payment actions, escalation, and outbound delivery within explicit trust boundaries.
- 01
Omnichannel Intake
Normalize Microsoft Graph email, Instagram, Facebook, TikTok, and Chatwoot events into a shared ticket lifecycle while preserving each channel's reply behavior.
- 02
Agent-Guided Resolution
Use a unified LangGraph ReAct agent to classify intent, retrieve context, search knowledge, and choose bounded tools for support or review.
- 03
Guarded Payment Actions
Protect refund and cancellation workflows with server-owned account context, policy evaluation, explicit confirmation, persisted requests, and idempotent execution claims.
- 04
Constrained Human Review
Route unsupported and high-risk cases to operators without letting duplicate alerts, unsupported promises, or policy pushback become uncontrolled escalation paths.
- 05
Durable Message Delivery
Keep outbound email reliable through atomic enqueueing, leased claims, bounded retries, payload hashes, conditional finalization, and dead-letter recovery.
- 06
Abuse-Resilient Operations
Filter automated noise and prompt injection with Redis-cached rules, ReDoS protections, safe fallbacks, and operator-managed controls.

A guarded agent workflow backed by durable operational infrastructure.
The operator layer uses Next.js and React, while FastAPI services normalize channel events, enforce role-aware access, coordinate scheduled jobs, and expose the bounded tools used by the agent workflow.
LangGraph and LiteLLM orchestrate classification, retrieval, and tool execution with PostgreSQL checkpoints and pgvector context. Redis coordinates locks and cached rules; a relational outbox, Microsoft Graph transport, Stripe safeguards, and Langfuse tracing support reliable production execution.
Full-stack and AI systems engineering across the platform.
I built across the Next.js operator experience, FastAPI services, LangGraph agent workflow, channel integrations, payment automations, background workers, data stores, and observability infrastructure.
The difficult work was defining trustworthy failure behavior. Financial actions cannot trust model-supplied identities, webhook retries cannot create duplicate tickets, and uncertain provider responses cannot be treated as safe reasons to send the same message again.
An agent becomes useful in production when every action has a trust boundary, every retry has an identity, and every failure has a recovery path.

