Raporlar & AnalitikHız-Lead SLA ve Kadans Performansı

SLA ve Performans

Panelin Genel Bakış ekranındaki “SLA & Kadans Performansı” kartı tek bir soruya cevap arar: yeni gelen lead’ler yeterince hızlı mı aranıyor, yoksa masada mı bekliyor? Bu sayfa o kartın ve arkasındaki GET /api/dashboard/sla uç noktasının döndürdüğü her alanı satır satır açıklar — lead’i kaç dakikada aradığından, aranmayı bekleyen lead’lerin ortalama yaşına, pipeline’ın hangi aşamada tıkandığına ve dokunuşlarının kanallar arasında nasıl dağıldığına kadar.

Tek bakışta neyi ölçüyoruz?

Lead gelir (leadReceivedAt damgalanır)

İlk temas kurulur (firstContactAt damgalanır) ── 5 dk içinde mi? → SLA

Kontak pipeline'da ilerler (new → contacted → evaluating → committed → closed / lost)

Kadans dokunuşları biriktirir (arama / SMS / WhatsApp / e-posta) ── kanal dağılımı

Rapor, oturum açan kullanıcının kendi hesabıyla sınırlıdır (getServerSession ile doğrulanır); başka bir hesabın verisi hiçbir alanda görünmez.

Neden 5 dakika?

Lead’i 5 dakika içinde aramak, 30 dakika sonra aramaya göre kat kat daha yüksek dönüşüm sağlar — lead’in ilgisi tıpkı taze bir yemek gibi hızla soğur; formu doldurduktan yarım saat sonra gelen bir aramayı çoğu kişi hatırlamaz bile. Purvisor bu yüzden “5 dakika kuralı”nı bir panel süsü değil, doğrudan koddaki bir eşik olarak tutar: SLA_THRESHOLD_MS = 5 * 60 * 1000.

AlanNe anlatır
slaComplianceRateİlk teması kurulmuş lead’lerin yüzde kaçı 5 dakika veya altında arandı.
avgFirstResponseMinutesAynı grubun ortalama ilk yanıt süresi (dakika, 1 ondalık).
totalLeadsTrackedleadReceivedAt damgası olan tüm lead sayısı (henüz aranmamış olanlar dahil).
leadsWithFirstContactBunlardan hem leadReceivedAt hem firstContactAt damgası olanlar — SLA oranının hesaplandığı asıl grup.
⚠️

slaComplianceRate, totalLeadsTracked üzerinden değil, leadsWithFirstContact üzerinden hesaplanır. Yani henüz hiç aranmamış lead’ler bu orana dahil edilmez — sadece “listede bekliyor” görünürler. totalLeadsTracked her zaman leadsWithFirstContact’a eşit veya ondan büyüktür; aradaki fark, henüz temasa geçilmemiş lead sayısını gösterir.

Panelde nasıl görünür

Dashboard’daki kart altı metrik karosu gösterir; her biri bir renk eşiğiyle uyarır:

KartDeğerRenk kuralı
SLA Uyum%slaComplianceRate%80 ve üzeri yeşil, %50-79 sarı, altı kırmızı
Ort. İlk YanıtavgFirstResponseMinutes dk5 dk veya altı yeşil (“5dk kuralı: Uyumlu”), üzeri kırmızı (“Aşılıyor”)
Aktif KadanslaractiveCadences— (aktif kayıt sayısı alt bilgide)
Ort. Temas/LeadavgTouchesPerLeadHedef 6-12 temas; 6 ve üzeri yeşil, altı sarı
Lead → Fırsat%leadToOpportunityRate
Sıcak LeadhotLeadCountAlt bilgide kadans tamamlama oranı da görünür

📸 [Ekran görüntüsü: Dashboard → “SLA & Kadans Performansı” kartı, 6 karo + “Kadansları Yönet” bağlantısı]

Panel kartı yukarıdaki altı metrikle sınırlı. Aşağıda anlatılan pipeline dağılımı ve kanal dağılımı, aynı GET /api/dashboard/sla yanıtında bulunur ama şu an panelde ayrı bir grafikle görselleştirilmiyor — bu iki alana bugün için yalnızca doğrudan API çağrısıyla erişebilirsin.

Lead aging: bekleyen lead’lerin yaşı

Bir lead ne kadar süre “henüz nitelikli bir görüşme olmadı” durumunda kalırsa, o kadar soğur. avgLeadAgingHours, pipeline’da hâlâ new veya contacted aşamasında olan — yani evaluating/committed/closed/lost’a hiç geçmemiş — ve bir leadReceivedAt damgası taşıyan lead’lerin, şu ana kadar geçen ortalama saatidir. unconvertedLeadsCount bu grubun eleman sayısıdır.

AlanNe anlatır
avgLeadAgingHoursnew/contacted aşamasındaki lead’lerin ortalama bekleme yaşı (saat, 1 ondalık).
unconvertedLeadsCountBu gruptaki lead sayısı.
⚠️

Bu bir anlık kesit (snapshot), zaman içindeki bir eğilim grafiği değil. avgLeadAgingHours yükseliyorsa iki olası neden var: ya yeni lead’ler hiç aranmıyor ya da aranan lead’ler pipeline’da ilerlemiyor (görüşme sonrası AI analizi outcome üretmiyor olabilir). Aşama neden ilerlemiyor sorusu için: Satış Pipeline.

Pipeline dönüşümü (aşama bazlı)

leadToOpportunityRate, hesaptaki tüm kontakların (silinmemiş, kaynak fark etmeksizin) yüzde kaçının şu anda evaluating, committed veya closed aşamasında olduğunu gösterir — yani “değerlendirme aşamasına ulaşmış veya ondan ileri gitmiş” oranı. Bu da bir anlık kesittir; belirli bir zaman aralığındaki lead’lerin dönüşüm hunisini değil, hesabın şu anki aşama dağılımını ölçer.

pipelineDistribution nesnesi dört aşamayı ayrı sayar, kalan her şeyi new altında toplar:

AlanKapsamı
pipelineDistribution.newtotalContacts - evaluating - committed - closed - lost
pipelineDistribution.evaluatingSadece evaluating aşamasındakiler
pipelineDistribution.committedSadece committed aşamasındakiler
pipelineDistribution.closedSadece closed aşamasındakiler
pipelineDistribution.lostSadece lost aşamasındakiler
hotLeadCountheat: "hot" etiketli kontak sayısı (lead skoru ≥70)
⚠️

Altı olası universalStage değerinden (Satış Pipeline’daki tabloya bak) bu rapor beş kova döndürür — contacted aşaması ayrı sayılmaz, new kovasının içine karışır (çıkarma işlemi sadece evaluating/committed/closed/lost’u düşer). Yani panelde/API’de gördüğün “Yeni” sayısı, gerçekte hem hiç aranmamış hem de bir kez temas kurulmuş ama henüz ilgi belirtmemiş kontakları birlikte kapsar. Aradaki ayrımı görmek istiyorsan kontak listesini “Durum” filtresiyle ayrıca süzmen gerekir.

Kanal dağılımı

channelDistribution, kadans adımlarının hangi kanaldan ve kaç kez başarıyla çalıştırıldığını sayar — kadans adım kayıtlarından (CadenceStepLog), yalnızca status: "executed" olanlar üzerinden, hesabına ait tüm kadans kayıtları (enrollment) genelinde. Purvisor’da bir kadans adımı dört kanaldan birini kullanır:

KanalKod değeri
Aramacall
SMSsms
WhatsAppwhatsapp
E-postaemail

Yanıt, her kanal için toplam yürütülmüş adım sayısını taşıyan düz bir obje döner, örn. { "call": 340, "sms": 210, "whatsapp": 95, "email": 40 }.

⚠️

Bu dağılım sadece kadans adımlarını kapsar — kadans dışında elle yapılan aramaları, kampanya aramalarını veya kadans dışı gönderilen SMS/WhatsApp/e-postaları içermez. Ayrıca sorgu bir hata alırsa (.catch) sessizce boş obje döner; yani channelDistribution boş görünüyorsa bu “hiç dokunuş yok” da anlamına gelebilir, “sorgu başarısız oldu” da — hiç kadans kaydın yoksa bu beklenen davranıştır, kadansların varsa ve yine de boşsa destek ile paylaş.

Kadans temas ve tamamlama metrikleri

Aynı yanıt, kadans sağlığına dair dört ek alan taşır:

AlanNe anlatır
activeCadencesDurumu active olan kadans sayısı.
totalEnrollments / activeEnrollments / completedEnrollments / stoppedEnrollmentsKadansa kayıtlı kontakların durum kırılımı.
cadenceCompletionRatecompletedEnrollments ÷ totalEnrollments × 100.
avgTouchesPerLeadEn az bir dokunuşu olan kayıtların ortalama touchCount’u (hiç dokunulmamış kayıtlar bu ortalamaya girmez).

Bir lead’i hangi gün/saatte aramanın daha yüksek ulaşma oranı verdiğini (hesabına özel öğrenilmiş öneriler + 7×24 ısı haritası) bu rapor değil, ayrı bir uç nokta hesaplar: GET /api/cadences/insights. Detaylı açıklama: Kadans Şablonları ve İçgörüler.

Örnek yanıt

{
  "slaComplianceRate": 74,
  "avgFirstResponseMinutes": 6.8,
  "totalLeadsTracked": 512,
  "leadsWithFirstContact": 480,
  "avgLeadAgingHours": 11.4,
  "unconvertedLeadsCount": 38,
  "activeCadences": 5,
  "totalEnrollments": 640,
  "activeEnrollments": 210,
  "completedEnrollments": 350,
  "stoppedEnrollments": 80,
  "cadenceCompletionRate": 55,
  "avgTouchesPerLead": 4.2,
  "totalContacts": 1840,
  "leadToOpportunityRate": 32,
  "hotLeadCount": 96,
  "pipelineDistribution": {
    "new": 980,
    "evaluating": 410,
    "committed": 150,
    "closed": 30,
    "lost": 270
  },
  "channelDistribution": {
    "call": 1120,
    "sms": 640,
    "whatsapp": 310,
    "email": 95
  }
}

Bu örnekte SLA uyumu %74 — iyi ama mükemmel değil; ortalama ilk yanıt 6,8 dakika, 5 dakika hedefinin biraz üzerinde. Lead → Fırsat oranı %32, yani her 100 kontaktan 32’si en az “değerlendiriyor” aşamasına ulaşmış. Kanal dağılımında call ağır basıyor — beklenen davranış, çünkü ilk temas adımı hemen her şablonda arama.

İyi uygulamalar

  • avgFirstResponseMinutes’ı 5’in altında tutmayı hedefle — bunun üzerindeki her dakika dönüşüm kaybı demektir. Otomatik aramayı geciktiren ayarlar için Meta Lead Ads veya Zapier gecikme alanlarını kontrol et.
  • unconvertedLeadsCount büyüyorsa ilk önce o lead’lerin bir kadansa/kampanyaya bağlı olup olmadığına bak — bağlı değilse otomatik arama hiç tetiklenmemiş olabilir.
  • pipelineDistribution.lost oranı yüksekse kayıp nedenlerini (Satış PipelinelossReason) incele; tek bir neden (örn. fiyat) baskınsa bu bir prompt veya teklif sorunu olabilir.
  • Kanal dağılımı tek kanala (call) aşırı yığılmışsa kadans adımlarına SMS/WhatsApp takibi eklemeyi düşün — çok kanallı takip dönüşümü artırır (bkz. Cadence Nedir?).

KVKK notu

Bu rapor özet sayılar döndürse de, altındaki veriler (lead zaman damgaları, pipeline aşaması, kadans dokunuşları) kişisel veridir. Uç nokta yalnızca oturum açmış hesap sahibinin kendi verisini döner; başka bir hesabın kayıtlarına erişim yoktur. Kadans adımlarında gönderilen SMS/WhatsApp/e-posta içerikleri için genel KVKK ve açık rıza kurallarına uymaya devam et — detay: KVKK Veri Yönetimi.

Sorun giderme

BelirtiOlası neden / çözüm
slaComplianceRate 0 görünüyorHiçbir lead’in hem leadReceivedAt hem firstContactAt alanı dolu değil — otomatik arama/entegrasyon hiç tetiklenmemiş olabilir.
avgLeadAgingHours sürekli artıyornew/contacted aşamasındaki lead’ler aranmıyor veya aranıyor ama AI analizi aşamayı ilerletmiyor — Çağrı Sonrası Analiz’i kontrol et.
pipelineDistribution.new beklenenden yüksekBu kova contacted aşamasını da kapsar — gerçek “hiç aranmamış” sayısını görmek için kontak listesini durum filtresiyle ayrıca süz.
channelDistribution tamamen boşHesapta hiç kadans kaydı (enrollment) yok ya da hiçbir adım henüz executed durumuna geçmedi — kadans aktif mi ve adımlar çalıştı mı kontrol et.
cadenceCompletionRate 0totalEnrollments sıfırsa oran her zaman 0 döner — henüz kimse bir kadansa kaydedilmemiş demektir.
Rapor 401 dönüyorOturum süresi dolmuş — tekrar giriş yap.

İlgili