Proje: Okul Database · Hub: Okul Database — Domains

Leads & Sales Domain (~14 tablo)

Lead üretiminden CRM senkronizasyonuna kadar tüm satış süreci.


leads

28 kolon — lead lifecycle’ın tamamını takip eder.

KolonAçıklama
idPK
school_idFK → schools
user_idAtanan agent (FK → users)
approved_byOnaylayan
deal_status_change_customer_user_idDurumu değiştiren CU
approved_typeOnay tipi
approved_status_idOnay durumu ID
school_answered_deal_statusOkul cevap durumu
sourceLead kaynağı
source_actionKaynak aksiyon (2026-04-02 eklendi)
customer_viewed_atMüşterinin lead’i ilk gördüğü zaman
created_atLead oluşma zamanı
deleted_atSoft delete

Index: (created_at, deleted_at) compound index. Ayrıca: users tablosunda full-text index ile kullanıcı araması.


Lead Lifecycle

Lead Oluşma Kaynakları:
  school_offers   → Okul profil sayfasından form
  lead_pool_forms → Lead havuzu formu

Lead Akışı:
  leads
    → approved_status: bekliyor / onaylandı / reddedildi
    → school_answered_deal_status: cevaplandı / cevapsız
    → pipedrive_deals (CRM sync, deal_id ile eşleşir)
    → customer_user_schools (atama)
    → school_interactions (her temas logu)
    → customer_viewed_at (engagement timestamp)

school_offers

Okul profilinden gelen lead form verileri.

KolonAçıklama
school_idFK
user_idFormu dolduran kullanıcı
source_actionHangi aksiyonla oluştu (2026-04-02)
Çocuk bilgileriyaş, sınıf, bütçe vs.

lead_pool_forms

Lead havuzu form şablonları ve konfigürasyonu.


Pipedrive CRM Entegrasyonu

Harici Pipedrive CRM ile senkronizasyon. Lag olabilir — real-time değil.

Tabloİçerik
pipedrive_dealsDeal kayıtları (deal_id, pipeline_id, stage_id, status)
pipedrive_organizationsFirma kayıtları
pipedrive_personsKişi kayıtları
pipedrive_notesNotlar
pipedrive_schoolsOkul eşleşmeleri

Tüm pipedrive tablolarında details JSON kolonu var — raw CRM verisi.


Sales Operasyon Tabloları

TabloAçıklama
sales_campaignsİndirim kampanyaları (yüzde bazlı)
sales_school_appointmentsRandevu planlama
lead_pool_suggestedÖneri lead havuzu

Analytics İçin Önemli Noktalar

Lead Funnel:

-- Kaynak bazlı lead dağılımı
SELECT source, source_action, COUNT(*) as count
FROM leads
WHERE deleted_at IS NULL
GROUP BY source, source_action
 
-- Onay oranı
SELECT approved_type,
       COUNT(*) as total,
       AVG(DATEDIFF(updated_at, created_at)) as avg_response_days
FROM leads
WHERE deleted_at IS NULL
GROUP BY approved_type

Engagement Ölçümü:

  • customer_viewed_at IS NULL → Lead henüz görülmemiş
  • customer_viewed_at - created_at → Görme gecikmesi