38980-vm/app-9w9pd00g5j41/PERSONA_ENGINE_GUIDE.md
2026-03-04 18:25:09 +00:00

206 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Persona Engine - Kullanım Kılavuzu
## Genel Bakış
Persona Engine, lead'leri otomatik olarak 7 farklı turist profiline göre sınıflandırır ve harcama potansiyelini belirler.
## Persona Tipleri
1. **💑 Romantik Çift** (Romantic Couple)
- Harcama Potansiyeli: Yüksek
- Önerilen Hizmetler: Özel balon turu, romantik akşam yemeği, butik otel, spa
2. **🎒 Bütçe Gezgini** (Budget Backpacker)
- Harcama Potansiyeli: Düşük
- Önerilen Hizmetler: Grup turları, hostel, yürüyüş turları
3. **👑 Lüks Gezgin** (Luxury Traveler)
- Harcama Potansiyeli: Çok Yüksek
- Önerilen Hizmetler: VIP balon turu, helikopter turu, 5 yıldızlı otel
4. **📸 İçerik Üreticisi** (Content Creator)
- Harcama Potansiyeli: Orta
- Önerilen Hizmetler: Fotoğraf turları, drone çekimi, Instagram lokasyonları
5. **👨‍👩‍👧‍👦 Aile Gezgini** (Family Explorer)
- Harcama Potansiyeli: Orta
- Önerilen Hizmetler: Aile dostu turlar, çocuk dostu oteller
6. **🧗 Solo Maceracı** (Solo Adventurer)
- Harcama Potansiyeli: Orta
- Önerilen Hizmetler: Grup turları, macera aktiviteleri, trekking
7. **👥 Grup Turu** (Group Tour)
- Harcama Potansiyeli: Yüksek
- Önerilen Hizmetler: Grup turları, toplu konaklama, rehberli turlar
## Kullanım Örnekleri
### 1. PersonaBadge Komponenti
```tsx
import { PersonaBadge } from '@/components/planner/PersonaBadge';
// Basit kullanım
<PersonaBadge persona={lead.tourist_persona} />
// Açıklama ile
<PersonaBadge
persona={lead.tourist_persona}
showDescription={true}
/>
// Özel stil ile
<PersonaBadge
persona={lead.tourist_persona}
className="my-custom-class"
/>
```
### 2. Persona Detection
```tsx
import { detectPersona } from '@/utils/persona-engine';
const personaResult = detectPersona({
interests: ['romantik', 'özel'],
planned_activities: ['Sıcak hava balonu', 'Akşam yemeği'],
number_of_travelers: 2,
start_date: '2026-03-01',
end_date: '2026-03-05',
budget_range: 'high'
});
console.log(personaResult.persona.label); // "Romantik Çift"
console.log(personaResult.confidence); // 0.85
console.log(personaResult.persona.key_signals); // ["2 kişilik rezervasyon", "Romantik ilgi alanları"]
```
### 3. Lead Card (Provider Dashboard)
```tsx
import { LeadCard } from '@/components/provider/LeadCard';
<LeadCard
lead={lead}
onContact={(leadId) => {
// İletişim işlemi
}}
/>
```
### 4. Admin Persona Analytics
Admin panelinde `/admin/persona-analytics` sayfasına giderek:
- Persona dağılımını görüntüleyin
- Harcama potansiyeli analizini inceleyin
- Lead istatistiklerini takip edin
## Otomatik Entegrasyon
Persona Engine, lead oluşturulduğunda otomatik olarak çalışır:
1. **Trip Planner'da Lead Oluşturma**
- Kullanıcı seyahat planı oluşturur
- Lead capture modal'ıılır
- Form gönderildiğinde persona otomatik tespit edilir
- Başarı mesajında persona gösterilir: "Seyahat profiliniz: 💑 Romantik Çift"
2. **Persona Tespiti**
- İlgi alanları analiz edilir
- Planlanan aktiviteler değerlendirilir
- Gezgin sayısı dikkate alınır
- Bütçe aralığı (varsa) incelenir
- En yüksek güven skoruna sahip persona seçilir
3. **Veri Saklama**
- Persona bilgisi `tourist_persona` alanında saklanır
- Güven skoru `persona_confidence` alanında saklanır
- Tespit edilen sinyaller `key_signals` array'inde tutulur
## API Kullanımı
### Lead Oluşturma
```typescript
import { leadsApi } from '@/db/api';
import { detectPersona } from '@/utils/persona-engine';
const personaResult = detectPersona({
// ... trip data
});
await leadsApi.create({
trip_id: 'xxx',
destination: 'Kapadokya',
// ... other fields
tourist_persona: personaResult.persona,
persona_confidence: personaResult.confidence,
});
```
### Persona İstatistikleri
```typescript
import { supabase } from '@/db/supabase';
// Yüksek değerli lead'leri getir
const { data } = await supabase.rpc('get_high_value_leads');
// Persona istatistiklerini getir
const { data: stats } = await supabase.rpc('get_persona_statistics');
```
## Özelleştirme
### Yeni Persona Ekleme
1. `/src/types/lead.ts` dosyasında `TouristPersonaType` enum'ına yeni tip ekleyin
2. `/src/types/persona.ts` dosyasında `TOURIST_PERSONAS` objesine yeni persona tanımı ekleyin
3. `/src/utils/persona-engine.ts` dosyasında `analyzeSignals` fonksiyonuna yeni tespit mantığı ekleyin
### Tespit Mantığını Güncelleme
`/src/utils/persona-engine.ts` dosyasındaki `analyzeSignals` fonksiyonunda:
- Yeni anahtar kelimeler ekleyin
- Güven skorlarını ayarlayın
- Yeni sinyaller tanımlayın
## Performans
- Persona tespiti client-side'da yapılır (hızlı)
- Database'de JSONB olarak saklanır (esnek)
- Index'ler ile hızlı sorgulama (optimize)
- Güven skoru ile kalite kontrolü (güvenilir)
## Güvenlik
- Lead oluşturma için kullanıcı onayı gereklidir
- RLS policies ile veri güvenliği sağlanır
- Persona bilgisi sadece yetkili kullanıcılar tarafından görülebilir
## Sorun Giderme
### Persona tespit edilmiyor
- İlgi alanları ve aktivitelerin dolu olduğundan emin olun
- Gezgin sayısının doğru olduğunu kontrol edin
- Console'da persona detection sonuçlarını inceleyin
### Güven skoru düşük
- Daha fazla ilgi alanı ekleyin
- Aktivite detaylarını zenginleştirin
- Bütçe aralığı bilgisi ekleyin
### Yanlış persona tespit ediliyor
- Tespit mantığını `/src/utils/persona-engine.ts` dosyasında güncelleyin
- Anahtar kelimeleri gözden geçirin
- Güven skorlarını ayarlayın
## Gelecek Geliştirmeler
- Machine learning ile persona detection iyileştirme
- Geçmiş lead verilerinden öğrenme
- Dinamik önerilen hizmetler
- Persona bazlı otomatik email şablonları
- A/B testing ile persona accuracy ölçümü