// concept · not a client story

support copilot

a product surface that answers from your docs, your tickets, and your UI state — with citations, tools, and a human gate when it should shut up.

2026·B2B SaaS·Next.js · Vercel AI SDK · pgvector · tool calling · feature flags · eval harness·4–8 weeks · one workflow

// labeled concept · pattern we ship · not a client seal

book a call →send a brief30 min · no workshop · no deck
// The brief

Composite intake (not a named client): help center nobody reads, support tool full of macros, a model demo that looks great on localhost. Users still open tickets for the same twelve questions. A chat widget lied about pricing twice. Sales is still angry. // concept · not a client story.

// The approach

Stop selling AI support. Sell quiet tickets that never open — and clean tickets when they must. Dock the copilot in the product. Build context assembly before any pretty stream. Citations as UI. Eval harness before the public flag. Cost ceiling per session and per tenant.

// the body
// product · billing
same session · same auth · context already packed
support
idle
Billing · Pro plan · Invoice #1842

why was I charged twice this month

Invoice #1842 is the renewal. #1847 is the seat add from the 12th. Both are open under Pro.

Docs · Billing · §SeatsMacro · double-charge
proposed · invite seat

add one seat on Pro · you confirm before it runs

do itcancel
// empty · starters
  • · why was I charged twice
  • · how do I add a seat
  • · sso login loops forever

answers cite your docs · actions need your confirm

// concept · static storyboard · not a live model

// Process · what we threw away
REJECTED · v0
floating mega-prompt bubble · marketing-site corpus only · no product context

We killed the default: a round chat orb in the corner, system prompt the length of a terms page, crawl of the public marketing site. It demos well. It fails the moment a user asks something that depends on their plan, their role, or a doc that only exists behind login.

// The work

Next.js · Vercel AI SDK · pgvector · tool calling · feature flags · eval harness. One workflow first — billing, seats, SSO. Docked panel, not a floating bubble. Citations required. Tools behind confirm. Human gate on money and access.

// metrics · hypothesis

// not measured client outcomes · targets for a first instrumented slice

// 01
↓ tickets

hypothesis · same twelve billing/SSO questions deflect when citations match product state

// 02
cite > invent

hypothesis · refuse rate stays healthy; citation clicks prove verification

// 03
$ ceiling

hypothesis · session and tenant caps protect margin

// If we did it again
01

Shipping admin polish before one golden ticket passed — feels productive; delays truth.

02

Too many tools in v1 — every tool is a liability surface; start with read + escalate.

03

Treating a Notion export as a done corpus — without owners and dates, retrieval is archaeology.

04

Skipping refuse UX — teams fear "I don't know"; users fear silence less than lies.

// Built with Next.js · Vercel AI SDK · pgvector · tool calling · feature flags · eval harness · 4–8 weeks · one workflow

if you need a 40-page RFP response or a chatbot install by friday — write someone else