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

5.8 KiB
Raw Permalink Blame History

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

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

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)

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

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

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ü