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:
| Alan | Zorunlu? | Açıklama |
|---|---|---|
| Tanımlayıcı (identifier) | Evet | Verinin JSON anahtarı. Yalnızca küçük harf, rakam ve alt çizgi; en fazla 100 karakter. Hesabında benzersiz olmalı. Örn. budget_range. |
| Ad (name) | Evet | Panelde görünen okunur ad. Örn. “Bütçe Aralığı”. |
| AI’ın çıkaracağı bilgi (prompt) | Evet | Modele sorulan asıl soru. Türkçe veya İngilizce yazabilirsin. Örn. Kullanıcının bütçesi nedir? |
| Çıktı tipi (outputType) | Hayır | Yanıtın biçimi. Varsayılan open_question. |
| Çıktı örnekleri (outputExamples) | Hayır | Modele beklenen biçimi gösteren örnekler. İsabeti belirgin şekilde artırır. |
| Seçenekler (options) | Hayır | multiple_choice tipinde modelin seçebileceği kapalı liste. |
| Açıklama (description) | Hayır | Kendine not; çıkarıcının ne işe yaradığı. |
identifierdaha 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 sistem409(“Bu identifier zaten kullanılıyor”) döner.
Çıktı tipleri
| Tip | Panel adı | Ne döner | Örnek yanıt |
|---|---|---|---|
open_question | Açık Soru | Serbest metin | Fiyat bilgisi almak istedi |
multiple_choice | Çoktan Seçmeli | Verdiğin options listesinden biri | hot |
yes_no | Evet/Hayır | İkili yanıt | yes |
number | Sayı | Sayısal değer | 8 |
Çı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:
| Alan | Değer |
|---|---|
| Tanımlayıcı | bant_butce |
| Ad | Bütçe |
| AI’ın çıkaracağı bilgi | Kullanıcı bir bütçe aralığı belirtti mi? Belirttiyse aralığı yaz. |
| Çıktı tipi | Açık Soru (open_question) |
| Çıktı örnekleri | 500.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_yetki | Konuş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_zaman | Kullanı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.
outputExamplesalanı 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
numberveyamultiple_choiceyap; sadece okuyacağın notlarıopen_questionbırak. - Tanımlayıcıyı sabit tut.
identifiersenin 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
| Belirti | Olası 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ıyor | Aynı 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ğil | outputExamples ekle; multiple_choice için options listesini net tanımla; promptu tek bir bilgiye daralt. |
Değer raw içinde geldi | Model geçerli JSON döndüremeyince ham metin { "raw": "..." } olarak saklanır — promptu ve örnekleri sadeleştir. |
| Kaydederken hata | identifier, name ve prompt zorunludur; biri boşsa 400 döner. |