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.
// labeled concept · pattern we ship · not a client seal
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.
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.
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.
add one seat on Pro · you confirm before it runs
- · 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
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.
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.
// not measured client outcomes · targets for a first instrumented slice
hypothesis · same twelve billing/SSO questions deflect when citations match product state
hypothesis · refuse rate stays healthy; citation clicks prove verification
hypothesis · session and tenant caps protect margin
Shipping admin polish before one golden ticket passed — feels productive; delays truth.
Too many tools in v1 — every tool is a liability surface; start with read + escalate.
Treating a Notion export as a done corpus — without owners and dates, retrieval is archaeology.
Skipping refuse UX — teams fear "I don't know"; users fear silence less than lies.
if you need a 40-page RFP response or a chatbot install by friday — write someone else
