Ana içeriğe atla
LeadsUp
Blog'a dön

Lead skorlama: 0-100 puan sistemini nasıl kurduk

LeadsUp'ın heuristic + AI hibrit lead scoring motorunun engineering hikayesi. Hangi sinyaller hangi puanları getiriyor, niye monotonic, threshold neden 70.

Altai Engineering

Platform Engineering

16 Mayıs 20263 dk okuma

Problem

Bir emlak ofisi günde ~80 WhatsApp mesajı alıyor. Bunların kabaca 3'ü gerçek alıcı, kalanı meraklı/fiyat sorgulayan/zaman geçiren trafik. Satıcı temsilcileri 8 saatlerini ortalama bir leadle harcayıp gerçek alıcıyı kaçırıyor.

Hipotez: Her konuşmaya 0-100 arası bir "alım niyeti skoru" verebilirsek, ekibin zamanını otomatik triajlayabiliriz. Yüksek skorlu lead → öncelikli, düşük → nurture listesi.

Sinyaller — niye bu altısı

İki ay süren manuel etiketleme + retrospective analiz sonucu 6 sinyal'in conversion ile en güçlü korelasyona sahip olduğunu bulduk:

SinyalPuanDetection
Bütçe net+20update_user_profile tool'unda budget_min veya budget_max set
Lokasyon net+15preferred_districts array dolu
Görme isteği+30schedule_viewing tool çağırıldı VEYA "randevu", "görmek istiyorum" keyword
Engagement+103+ inbound message
Satın alma sinyali+20"kapora", "hemen alırım", "anlaştık" gibi keyword
İlan detayı sorgu+5get_listing_details tool çağırıldı

Toplam: 100 puan.

Niye 70 threshold

Retrospective dataset (8.000 lead, 6 ay):

  • Skor 0-30 → conversion %2 (cold)
  • Skor 30-70 → conversion %8 (warm, nurture)
  • Skor 70-100 → conversion %34 (hot, immediate handoff)

70 puanda 9.3 kat conversion uplift. Eşik bu olarak sabitlendi.

Monotonik niye?

İlk versiyon her mesajda skoru yeniden hesaplıyordu. Sorun: müşteri "merhaba" derken skor 100, sonra "şaka şaka" deyince 0 düşüyordu. Score volatility = satıcı görevden yığılma.

Çözüm: Skor sadece artar, hiç düşmez. Bot her mesajdan sonra:

const finalScore = Math.max(score, input.currentScore);

Bu, hot lead'in soğumasını engelliyor. Sonraki mesajlarda yeni sinyal yakalanmasa bile threshold üstünde kalıyor → satıcı atanmış kalıyor.

Crossed threshold event'i

70'i aşma anında audit log + Slack alarm:

const crossedThreshold = input.currentScore < 70 && finalScore >= 70;
if (crossedThreshold) {
  await appendAudit({ tenantId, eventType: "high_lead_detected", ... });
}

Bu event Slack #sales channel'a düşüyor: "Sıcak lead — Ahmet Yılmaz, ₺3M bütçe, Kadıköy, görme istemiş. Konuşmaya git →"

Satıcı 30 saniye içinde devralıyor.

Sinyaller hangi senaryoda?

Real-world test data (anonimleştirilmiş):

Senaryo 1: "Merhaba, Kadıköy'de 2+1 daire var mı?"

  • Lokasyon (+15), Engagement (1 msg, 0). Toplam: 15.

Senaryo 2: "Kadıköy'de 4 milyona kadar 2+1 ararım, hafta sonu görebilir miyim?"

  • Bütçe (+20), Lokasyon (+15), Görme isteği (+30), Engagement (1 msg, 0). Toplam: 65 (sınırda).

Senaryo 3: Yukarıdakinden 5 mesaj sonra "Karadağ'dakini görebilir miyim, kapora yatırabilirim"

  • Bütçe + Lokasyon + Görme + Engagement (5+) + Satın alma sinyali = 95. Hot.

False positive'ler

Halüsinasyon guard ile entegrasyon: bot bir fiyat söylerse → DB'den doğrula → eşleşmiyorsa lead skoru otomatik düşmez ama "guard tripped" işareti event'e eklenir, satıcı bu lead'i daha dikkatli inceler.

Lead skoru false positive %12 (1.000 hot lead'de 120'si "soğuk çıktı"). Sektör ortalaması %25-30; biz sektör altındayız.

Sektör-bazlı varyantlar

8 sektör için ayrı sinyal seti (portal/content/sektor/*.ts):

  • Emlak: budget + location + viewing (yukarıdaki)
  • E-ticaret: cart_added + checkout_viewed + repeat_visitor
  • Sağlık: appointment_requested + symptom_described + insurance_match
  • Eğitim: price_asked + installment_inquiry + parent_consent
  • vb.

Her şablon lead-score.ts'i extend ediyor. Tenant ilk onboarding'de seçtiği sektöre göre default sinyal seti yüklü.

İleriye dönük: AI-driven sinyal

Şu an heuristic. v7'de Claude Haiku 4.5 ile intent classifier ekleyeceğiz: konuşmayı okuyup "alıcı/araştırmacı/spam" kategorize edecek. Heuristic skoru +AI sınıflandırması = blended score.

Ama heuristic'i de tutuyoruz; AI black box, retrospektif explain edilemez. Heuristic transparant ve audit'lenebilir — KVKK compliance + satıcı güveni açısından kritik.

Try it

/dashboard/leads sayfasında her konuşmanın skor + sinyal breakdown'unu görüyorsunuz. 70+ skor otomatik "hot lead" filter'a düşer. Sandbox modunda gerçek dataset olmadan test edebilirsin.

LeadsUp ile aynı sonuçları kendi botunuzda görün

14 gün ücretsiz. Kredi kartı gerekmez.

Ücretsiz dene