Listeye dön
AI-first B2B Micro/41

Site-İçi Müşteri Destek Chatbot

Şirketin Notion/dokümanlarını RAG ile bağlayıp, web widget + WhatsApp üzerinden kaynak alıntılı destek cevabı üreten bot.

Zaman
6 saat
bootcamp süresi
Kim ödeyecek
Küçük işletmelere
10-50 kişilik SaaS / e-ticaret
Para hedefi
$7.3k MRR
Abonelik
Stack
Next.js + Supabase + Claude
AI merkezde
/01

Kimin derdi bu?

Gerçek bir insan, gerçek bir acı. Kafanda canlandır.

Kim
10-50 kişilik SaaS / e-ticaret ekipleri, destek hacmi günde 50+ tekrarlayan soru
Canı yanan yer
Aynı soruya 20 kere cevap yazmak; gece gelen mesaj sabah cevaplanıyor; kullanıcı kaçıyor
Şu an nasıl yapıyor
Intercom/Zendesk + manuel cevap; FAQ sayfası kimse okumuyor
/02

6 saate sığar mı?

Bootcamp modunda sıkıştırılmış senaryo.

M — 8-12 saat. RAG embedding + retrieval + chat UI. 6 saatte tek doküman kaynağı + web widget'a daralt.

/03

Ne ile inşa edeceksin?

Sıfırdan yazmayacaksın — bu parçaları birleştireceksin.

FrameworkNext.js 15 App Router
UIshadcn/ui + Tailwind
DatabaseSupabase Postgres + pgvector
AuthSupabase Auth
AIClaude Sonnet 4.6 + voyage-3 embedding
DeployVercel
Entegrasyonlar
Notion APIGömülebilir <script> widget
/04

Hangi parçalar?

Her parça ayrı bir commit. Sırayla yakala.

  1. 1Doküman yükleme (PDF/MD/Notion sync)
  2. 2Chunking + embedding pipeline
  3. 3Vector search (pgvector cosine)
  4. 4Claude RAG cevabı + kaynak alıntısı
  5. 5Gömülebilir chat widget (iframe)
  6. 6Konuşma loglama + analytics
/05

Piyasada kimler var?

Rakip değil, referans. Sen onlardan küçük, hızlı ve yakın olacaksın.

/06

Neden evet, neden hayır?

Kısa bir gerçeklik testi.

Neden evet

Net ROI (destek saati tasarrufu), düşük müşteri edinme bariyeri, Türkçe RAG'da boşluk var

Neden hayır

Halüsinasyon riski; kaynak göstermek şart. Doküman güncelliği müşteriye bağlı.

/07

Para nereden gelir?

Bir çerçeve, değil kesin plan. İlk 100 kullanıcıya odaklan.

Fiyat
Starter $29/ay (1 bot, 500 mesaj), Pro $99/ay (sınırsız)
Hedef ARR
150 kullanıcı × $49 ort = $7.3k MRR
Model
Subscription
/08

Claude Code'a ver

Aşağıdaki prompt'u olduğu gibi kopyala, Claude Code'a yapıştır. Stack, veri modeli, 6 saatlik inşa sırası ve başarı kriterleri içinde.

prompt.md
# Site-İçi Müşteri Destek Chatbot (RAG)

**Ne inşa ediyoruz:** Şirketin kendi dokümanlarından (Notion/PDF/Markdown) beslenen, kaynak alıntılı cevap üreten ve web sitelerine gömülebilen bir destek chatbot'u.

**Kullanıcının işi (JTBD):** Müşteri saat 23:00'te "Faturamı nasıl indiririm?" sorduğunda, doğru sayfayı kaynak göstererek 5 saniyede cevaplamak istiyorum, böylece destek ekibim aynı şeyi 50. kez yazmasın.

---

## Stack
- Next.js 15 App Router + TypeScript strict
- Tailwind + shadcn/ui
- Supabase Postgres + pgvector extension
- Anthropic Claude Sonnet 4.6 (cevap), voyage-3 (embedding)
- Gömülebilir widget: tek satır <script> tag, iframe içinde React app
- Deploy: Vercel

## Veri modeli
```sql
create extension if not exists vector;

create table bots (
  id uuid primary key default gen_random_uuid(),
  user_id uuid references auth.users not null,
  name text, system_prompt text,
  created_at timestamptz default now()
);

create table documents (
  id uuid primary key default gen_random_uuid(),
  bot_id uuid references bots on delete cascade,
  source text, title text, content text,
  created_at timestamptz default now()
);

create table chunks (
  id uuid primary key default gen_random_uuid(),
  document_id uuid references documents on delete cascade,
  content text, embedding vector(1024),
  metadata jsonb default '{}'::jsonb
);

create index on chunks using ivfflat (embedding vector_cosine_ops);

create table conversations (
  id uuid primary key default gen_random_uuid(),
  bot_id uuid references bots on delete cascade,
  visitor_id text, messages jsonb, created_at timestamptz default now()
);
```

## Ana akışlar
1. Bot oluştur, sistem prompt'u yaz, Notion/PDF/MD yükle.
2. Backend chunking (~500 token) + voyage embedding + chunks'a yaz.
3. Visitor widget'tan soru → top-5 chunk retrieval → Claude'a context+soru → kaynak alıntılı cevap.
4. Konuşma loga; admin "boşluk var" dediği soruları işaretler, doküman yazar.

## 6 saatlik inşa sırası
- 0:00–1:00 — Scaffold, Supabase + pgvector, magic link, bot CRUD
- 1:00–2:30 — Doküman upload + chunking + embedding pipeline
- 2:30–4:00 — Retrieval + Claude RAG cevabı (kaynak ID'li)
- 4:00–5:00 — Web widget (iframe + postMessage), gömme kodu
- 5:00–5:30 — Admin konuşma görüntüleme, "iyi/kötü" işaretleme
- 5:30–6:00 — Vercel deploy + 1 gerçek doküman setiyle smoke test

## Başarı kriteri (akşam demo)
- [ ] 1 doküman seti yüklenip embed edilmiş
- [ ] Widget gömülen sayfada açılıyor, soru cevaplıyor
- [ ] Cevapta kaynak link/sayfa göstergesi var
- [ ] Halüsinasyon: bilmediği soruda "bunu bulamadım" diyor
- [ ] Konuşmalar admin panelinde listeleniyor

## Dikkat
- Kaynak göstermek **zorunda**, yoksa hallüsinasyon güveni öldürür.
- pgvector ivfflat index için en az 100 satır gerekir; küçük setler için flat sequential scan da yeter.
- Türkçe embedding'de voyage-3 OpenAI'den belirgin daha iyi.
- Streaming response (SSE) UX için kritik — "düşünüyor" yerine yazmaya başlasın.

Bu sana uymadı mı?

Hepsini gör