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.
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.
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.
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.