AksiyonlarBilgi Çıkarıcılar

Bilgi Çıkarıcılar

Bir yapay zeka görüşmesi bitince elinde bir transkript kalır — ama transkript aranabilir bir alan değildir. Bilgi çıkarıcılar o transkripti okur ve senin tanımladığın soruların yanıtlarını yapılandırılmış veriye dönüştürür: bütçe, karar yetkisi, ihtiyaç aciliyeti, tercih edilen randevu tarihi… Böylece 200 görüşmeyi tek tek dinlemek yerine bant_butce ya da lead_kalifikasyonu alanına göre süzersin. Bir bilgi çıkarıcı, “kulakla dinlenen bir görüşmeyi” Excel sütununa çeviren bir çevirmen gibidir.

Nasıl çalışır?

Görüşme biter → transkript kaydedilir

AI çağrı analizi kaydedilir (/api/agent/call-analysis)

Asistana bağlı, aktif bilgi çıkarıcılar çalışır (görüşme sonrası)
        ↓ (transkript ayrı bir yapay zeka geçişiyle taranır → JSON)
Sonuç çağrının aiAnalysis.extractedData[identifier] alanına yazılır

Çağrı detayında + kişinin aktivite akışında görünür
görüşme sonrası webhook'una (call.completed) eklenir

Çıkarma işlemi görüşme sırasında değil, görüşme bittikten sonra tüm transkript üzerinde tek seferde yapılır. Bu yüzden asistanı yavaşlatmaz ve tam metne baktığı için canlı tahmine göre çok daha isabetlidir. Bir sonraki objection’ı da burada peşinen karşılayalım: “Neden asistan sırasında doldurmuyor?” — Çünkü konuşma yarıda kesilebilir; en güvenilir çıkarım, konuşmanın tamamı eldeyken yapılan çıkarımdır.

Bir çıkarıcının anatomisi

Her bilgi çıkarıcı birkaç alandan oluşur:

AlanZorunlu?Açıklama
Tanımlayıcı (identifier)EvetVerinin JSON anahtarı. Yalnızca küçük harf, rakam ve alt çizgi; en fazla 100 karakter. Hesabında benzersiz olmalı. Örn. budget_range.
Ad (name)EvetPanelde görünen okunur ad. Örn. “Bütçe Aralığı”.
AI’ın çıkaracağı bilgi (prompt)EvetModele sorulan asıl soru. Türkçe veya İngilizce yazabilirsin. Örn. Kullanıcının bütçesi nedir?
Çıktı tipi (outputType)HayırYanıtın biçimi. Varsayılan open_question.
Çıktı örnekleri (outputExamples)HayırModele beklenen biçimi gösteren örnekler. İsabeti belirgin şekilde artırır.
Seçenekler (options)Hayırmultiple_choice tipinde modelin seçebileceği kapalı liste.
Açıklama (description)HayırKendine not; çıkarıcının ne işe yaradığı.

identifier daha sonra süzme ve raporlamada kullandığın anahtardır — bir kez oluşturduktan sonra değiştirmemek en iyisidir. Aynı tanımlayıcıyı ikinci kez oluşturmaya çalışırsan sistem 409 (“Bu identifier zaten kullanılıyor”) döner.

Çıktı tipleri

TipPanel adıNe dönerÖrnek yanıt
open_questionAçık SoruSerbest metinFiyat bilgisi almak istedi
multiple_choiceÇoktan SeçmeliVerdiğin options listesinden birihot
yes_noEvet/Hayırİkili yanıtyes
numberSayıSayısal değer8

Çıktı tipini, o veriyi sonradan nasıl kullanacağına göre seç. İlgi seviyesini number olarak (1-10 arası) çıkarırsan panelde sayısal eşiğe göre süzebilirsin; serbest metin olarak çıkarırsan yalnızca okuyabilirsin. Kısıtlı bir küme bekliyorsan (hot/warm/cold gibi) multiple_choice + options en temizidir.

Hazır şablonlar

Sıfırdan yazmak zorunda değilsin. Panelde Şablonlar butonu 14 hazır çıkarıcı sunar; tek tıkla forma yüklenir ve düzenleyebilirsin:

user_name · user_email · user_company · user_address · call_outcome · reason_for_call · user_interest_level · callback_requested · budget_range · lead_qualification · objection_handling · issue_description · dnd · appointment_date

Zaten oluşturduğun bir tanımlayıcı, şablon listesinde “Eklendi” olarak gri görünür — aynı anahtarı iki kez ekleyemezsin.

Örnek: BANT’ı görüşmeden çıkarmak

Klasik nitelendirme çerçevesi BANT’tır — Bütçe, Yetki (Authority), İhtiyaç (Need), Zaman (Timeline). Her biri için bir çıkarıcı tanımlarsan, her satış görüşmesi otomatik olarak dört yapılandırılmış alana dönüşür.

Çıkarıcıyı oluştur

Panelde Aksiyonlar → Bilgi Çıkarıcılar → Yeni Çıkarıcı. Bütçe alanı için:

AlanDeğer
Tanımlayıcıbant_butce
AdBütçe
AI’ın çıkaracağı bilgiKullanıcı bir bütçe aralığı belirtti mi? Belirttiyse aralığı yaz.
Çıktı tipiAçık Soru (open_question)
Çıktı örnekleri500.000 - 750.000 TL, Bütçe belirtilmedi

📸 [Ekran görüntüsü: Yeni Çıkarıcı formu — tanımlayıcı, prompt, çıktı tipi ve örnekler]

Aynı mantıkla üçünü daha ekle:

TanımlayıcıPromptÇıktı tipi
bant_yetkiKonuştuğumuz kişi satın alma kararını verebilecek yetkide mi?Evet/Hayır (yes_no)
bant_ihtiyacİhtiyacın aciliyetini 1-10 arasında puanla.Sayı (number)
bant_zamanKullanıcı bir satın alma/karar zaman aralığı belirtti mi?Açık Soru (open_question)

Çıkarıcıyı asistana bağla

Bir çıkarıcı, yalnızca oluşturmakla çalışmaz — bir asistana bağlanması gerekir. Asistanın aksiyonları arasına ekle (bkz. Aksiyonlar Genel Bakış). Bağlı ve aktif olan çıkarıcılar, o asistanın her görüşmesinden sonra çalışır.

⚠️

Çıkarıcıyı oluşturdun ama veri gelmiyorsa neredeyse her zaman iki sebepten biridir: çıkarıcı bir asistana bağlı değildir, ya da satırdaki geçiş kapalıdır (pasif). Panelde çıkarıcının mor açık/kapalı anahtarını ve asistana bağını kontrol et.

Sonucu oku

Görüşme bittikten sonra çıkarım çalışır ve o çağrının analizine yazılır. extractedData içinde, her çıkarıcının identifier değeri bir anahtar olur:

{
  "extractedData": {
    "bant_butce": "500.000 - 750.000 TL",
    "bant_yetki": "yes",
    "bant_ihtiyac": 8,
    "bant_zaman": "2 ay içinde karar verecek"
  }
}

Bu blok, çağrı detayında ve kişinin aktivite akışında görünür; ayrıca görüşme sonrası webhook’un (call.completed) verisinin bir parçası olarak dışarı akar — n8n, Zapier veya kendi CRM’ine gönderebilirsin.

Çıkarılan veri kişiye nasıl düşer?

Burada net olmakta fayda var: bir çıkarıcının sonucu, o çağrının yapay zeka analizine (aiAnalysis.extractedData) identifier anahtarıyla yazılır. Kişi kartında ayrı bir “özel alan sütunu” oluşturmaz; bunun yerine:

  • Kişinin aktivite akışında o görüşmenin analizinin içinde görünür.
  • Görüşme sonrası webhook’a eklenir; oradan istediğin sisteme yazabilirsin.

Purvisor’ın kişi kartındaki BANT rozetleri, ısı (cold/warm/hot) ve lead skoru ise ayrı bir motorla — AI çağrı analizinden sezgisel olarak — hesaplanır. Yani bilgi çıkarıcılar, bu standart alanların yanında, tamamen senin tanımladığın özel yapılandırılmış alanları yakalamak içindir. Bu iki katmanı birlikte kullanmak, kişinin satış hattındaki yerini (Satış Pipeline) hem standart skorla hem de kendi sorularının yanıtlarıyla zenginleştirir.

⚠️

KVKK notu. Bir görüşmeden bütçe, adres, karar yetkisi gibi kişisel/ticari veriyi çıkarıp saklamak, açık rıza kapsamında olmalıdır. Yalnızca gerçekten kullanacağın alanları çıkar (veri minimizasyonu), asistanın açılışta kim olduğunu ve neden aradığını net söylesin. “Tekrar aranmak istemiyorum” gibi bir sinyali dnd çıkarıcısıyla da yakalayabilirsin — ama kalıcı çözüm için asistanın “aramayın/silin” davranışını (do-not-call) kullan.

İyi uygulamalar

  • Örnek ver. outputExamples alanı boş bırakılınca model biçimi tahmin eder; iki-üç örnek eklemek isabeti belirgin şekilde artırır.
  • Doğru tipi seç. Sonradan eşiğe/segmente göre süzeceğin veriyi number veya multiple_choice yap; sadece okuyacağın notları open_question bırak.
  • Tanımlayıcıyı sabit tut. identifier senin rapor/webhook anahtarındır; sonradan değiştirmek eski verinin eşleşmesini bozar.
  • Az ama net. 20 çıkarıcı tanımlamak yerine, gerçekten aksiyon aldığın 4-6 alana odaklan.
  • Promptu tek bir bilgiye kilitle. Her çıkarıcı tek bir soruyu yanıtlasın; “bütçe ve zaman” gibi ikili sorular karışık sonuç verir — ikiye böl.

Sorun giderme

BelirtiOlası neden / çözüm
Hiç veri gelmiyorÇıkarıcı bir asistana bağlı değil ya da pasif; ya da görüşmede transkript oluşmamış (çok kısa arama).
409 — identifier zaten kullanılıyorAynı tanımlayıcıyla ikinci çıkarıcı oluşturamazsın; mevcut olanı düzenle veya farklı bir identifier seç.
Yanıt beklediğin biçimde değiloutputExamples ekle; multiple_choice için options listesini net tanımla; promptu tek bir bilgiye daralt.
Değer raw içinde geldiModel geçerli JSON döndüremeyince ham metin { "raw": "..." } olarak saklanır — promptu ve örnekleri sadeleştir.
Kaydederken hataidentifier, name ve prompt zorunludur; biri boşsa 400 döner.

İlgili