Loading.
Back to work
CASE 03 INTERNAL TOOLS FULL-STACK

SupportDesk —
CS ticketing system

A custom internal support desk that replaced a Gmail-based workflow and an earlier Apps Script system. Combined-action modals, SLA tracking, gift card module, CSAT engine — everything a 7-person CS team needs in one place.

Role Solo build
Stack FastAPI · React · DuckDB
Replaces Gmail + 2 Apps Script tools
Status Production

Customer service was running on a shared inbox.

Seven agents, hundreds of tickets a day, all funneling through Gmail. SLA tracking happened in a spreadsheet. Refunds, cancellations, reships and gift cards each required a separate form, a different sheet, and at least one approval message. Repetitive single-action flows ate hours every week.

An earlier Apps Script-based CRM had moved things forward, but it was hitting walls: poor concurrency, no real database, painful to iterate on.

One modal, four actions, zero context-switching.

The biggest win wasn't the database or the UI — it was a single workflow change. When a customer reports a spillage, the agent typically needs to cancel the bad order, reship the products, issue a partial refund, and credit a gift card. Four separate flows, four separate forms, four chances to forget a step.

SupportDesk has one Combined Action modal that does all four in a single multi-step flow. Shopify payment mode auto-fetched. Reason codes preserved for reporting. CSV export for finance reconciliation built in.

SPILLAGE REPORT
Agent opens modal
STEP 1
Cancel order
STEP 2
Reship products
STEP 3
Partial refund
STEP 4
Gift card issued
RESOLVED
1 modal · logged
4-in-1 Action workflow
SLA Tracked per ticket
CSAT Survey engine

Everything CS does, in one tool.

  • Ticket management — queue views, agent assignment, status flows, live polling. Gmail worker auto-ingests customer emails as tickets.
  • Combined Action — cancellation + reship + refund + gift card in one multi-step flow.
  • Gift Card module — unique alphanumeric code generator (ccgc prefix), full issuance log, analytics.
  • CSAT engine — agents trigger surveys per ticket; short/long-lived Meta token exchange; rep details auto-captured in Google Sheets via JWT.
  • Supervisor views — WFM scheduling, agent login/logout, break monitoring.
  • Quick actions analytics — week-on-week trends, reason-code breakdowns, CSV export.
GMAIL WORKER
Auto-ingest as tickets
TICKET MANAGEMENT
Queue · assign · SLA
COMBINED ACTION
4-step single modal
GIFT CARD MODULE
ccgc · auto-generated codes
CSAT ENGINE
JWT · Google Sheets sync
SUPERVISOR VIEW
WFM · agent monitoring

FastAPI + React, DuckDB for analytics.

Python/FastAPI backend, React (Vite) frontend, PostgreSQL for transactional data, DuckDB for analytics-heavy queries. Google OAuth via Workspace SSO. Shopify Admin API for live order data. Deployed on AWS Tokyo behind Caddy with pm2 process management.

FastAPI React Vite PostgreSQL DuckDB Shopify Admin API Google OAuth AWS EC2 pm2 Caddy

Agents reply, the system tracks.

What used to take four forms takes one modal. SLA tracking is automatic. Gift cards generate themselves. CSAT surveys go out on a click. The CS lead has supervisor views without asking for them.

Iterated from a Gmail workflow → Apps Script CRM → custom FastAPI app over about a year. Each iteration kept the team running while the next one was being built.

Next case · 04 AISHA — AI Shopping Assistant