CASE STUDY 01

Set Dialer

An AI support agent that answers customer questions using live order and subscription data, so customers get the same answer a human agent would — immediately.

ROLE
Full-stack + AI engineering
STACK
NestJS · pgvector · Claude API · Shopify
TIMELINE
[x weeks]
TYPE
Client project
Set Dialer
01 — PROBLEM

Support teams were buried in the same handful of questions — where's my order, why was I charged, how do I pause my subscription — spread across email, chat and social. Every answer meant opening three different dashboards to piece together one customer's history.

02 — ARCHITECTURE
Customer message
email · chat
NestJS API
auth · routing
Shopify + Recharge
orders · subscriptions
Embed + retrieve
pgvector
Claude API
drafts the reply
Reply or handoff
agent review
FIG. 01 · SIMPLIFIED
03 — KEY DECISIONS & TRADE-OFFS
Retrieve live order data, not just docsA generic FAQ bot can't tell a customer why their charge happened. Each reply pulls that customer's real orders and subscription state before drafting an answer.TRADE-OFF Every reply needs a live Shopify/Recharge lookup, adding latency the docs-only version didn't have.
Draft-then-send, not auto-sendBilling questions are high-stakes. Claude drafts a reply and a cited reason; an agent approves or edits before anything reaches the customer.TRADE-OFF Caps how much the bot can fully automate — it speeds up agents rather than replacing the queue.
One retrieval pipeline for docs and order dataPolicies and a customer's own order history are embedded into the same pgvector store, so one retrieval step finds whichever is relevant.TRADE-OFF Order data changes constantly, so embeddings need refreshing far more often than static docs do.
04 — STACK
NestJS
API + orchestration
pgvector
Docs & order-data retrieval
Claude API
Drafts grounded replies
Shopify + Recharge
Orders & subscriptions
05 — RESULTS
[metric]
First-response time, before vs after.
[metric]
Replies sent without an edit.
[metric]
Tickets resolved without escalation.
NEXT CASE STUDYNexus ODM →