Skip to main content

Genel Bakış

Yapılandırılmış çıktılar, AI Agent’ın görüşme sonunda belirli bir formatta veri döndürmesini sağlar. Bu özellik sayesinde, görüşme sırasında toplanan bilgileri otomatik olarak JSON formatında alabilir ve CRM, veritabanı veya diğer sistemlere aktarabilirsiniz.

Kullanım Senaryoları

Randevu Alma

  • Müşteri adı, telefon, tercih edilen tarih/saat
  • Otomatik takvim entegrasyonu
  • SMS/E-posta onayı

Anket ve Form Doldurma

  • Müşteri memnuniyet anketi
  • Ürün/hizmet geri bildirimi
  • Demografik bilgi toplama

Sipariş Alma

  • Ürün adı, miktar, fiyat
  • Teslimat adresi
  • Ödeme tercihi

Lead Kalifikasyonu

  • Bütçe bilgisi
  • Satın alma zamanlaması
  • Karar verici bilgisi

JSON Schema Nedir?

JSON Schema: Veri yapısını tanımlayan bir format. Agent’ın hangi bilgileri toplaması gerektiğini belirtir. Örnek Schema:
{
  "type": "object",
  "properties": {
    "customerName": {
      "type": "string",
      "description": "Müşterinin tam adı"
    },
    "appointmentDate": {
      "type": "string",
      "format": "date",
      "description": "Randevu tarihi (YYYY-MM-DD)"
    },
    "phoneNumber": {
      "type": "string",
      "pattern": "^[0-9]{10}$",
      "description": "Telefon numarası"
    }
  },
  "required": ["customerName", "appointmentDate"]
}

Yapılandırılmış Çıktı Oluşturma

1

Agent Düzenleme

  1. AI Agent’lar sayfasına gidin
  2. Düzenlemek istediğiniz agent’ı seçin
  3. Düzenle butonuna tıklayın
  4. Gelişmiş Ayarlar sekmesine geçin
2

Schema Tanımlama

Structured Output bölümü:
  1. Etkinleştir switch’ini açın
  2. Schema Editor açılır
  3. JSON schema’nızı girin veya Template kullanın
3

Template Seçimi

Platform hazır template’ler sunar. İhtiyacınıza uygun olanı seçin veya özelleştirin.
4

Schema Doğrulama

Validate butonuna tıklayın:
  • ✅ “Schema is valid” - Yeşil onay işareti
  • ❌ Hata mesajı - Satır numarası ve düzeltme önerileri
5

Prompt Güncellemesi

Agent promptuna structured output ile ilgili talimat ekleyin.
6

Kaydetme

Test Et butonuyla test edin, sonra Kaydet
Yapılandırılmış çıktı ayarları
Ekran görüntüsü eklenecek: Structured Output bölümünde schema editor ve template seçimi

Hazır Template’ler

{
  "type": "object",
  "properties": {
    "name": {"type": "string"},
    "phone": {"type": "string"},
    "date": {"type": "string", "format": "date"},
    "time": {"type": "string"}
  },
  "required": ["name", "phone", "date"]
}
Agent promptuna structured output ile ilgili talimat eklemeyi unutmayın. Örnek: “Görüşme sonunda müşteri adı, telefon numarası ve randevu tarihini topla.”

Veri Tipleri

String (Metin)

{
  "type": "string",
  "description": "Açıklama",
  "minLength": 2,
  "maxLength": 100,
  "pattern": "^[A-Za-z ]+$"
}
Kullanım: İsim, adres, açıklama

Number (Sayı)

{
  "type": "number",
  "description": "Açıklama",
  "minimum": 0,
  "maximum": 100
}
Kullanım: Miktar, fiyat, yaş, puan

Boolean (Evet/Hayır)

{
  "type": "boolean",
  "description": "Açıklama"
}
Kullanım: Onay, tercih, durum

Date (Tarih)

{
  "type": "string",
  "format": "date",
  "description": "YYYY-MM-DD formatında"
}

Array (Liste)

{
  "type": "array",
  "items": {
    "type": "string"
  },
  "minItems": 1,
  "maxItems": 10
}
Kullanım: Ürün listesi, tercih listesi

Zorunlu Alanlar

Required Kullanımı

{
  "type": "object",
  "properties": {
    "name": {"type": "string"},
    "email": {"type": "string"},
    "phone": {"type": "string"}
  },
  "required": ["name", "email"]
}
Anlamı: name ve email mutlaka doldurulmalı, phone opsiyonel.
Agent Davranışı:
  • Zorunlu alanları mutlaka sorar
  • Opsiyonel alanları konuşma akışına göre sorar
  • Zorunlu alan eksikse görüşmeyi tamamlamaz

Çıktıyı Görüntüleme

Görüşme Detayı

1

Görüşme Kayıtlarına Gidin

Çağrı İzleme > Görüşme Kayıtları
2

Görüşme Seçin

İlgili görüşmeye tıklayın
3

Structured Output Sekmesi

Toplanan veriler JSON formatında gösterilir
Örnek Görüntüleme:
{
  "name": "Ahmet Yılmaz",
  "phone": "5551234567",
  "appointmentDate": "2024-03-15",
  "appointmentTime": "14:00"
}

Export ve Kullanım

JSON Download

Download JSON butonu ile dosya indirin

Copy

Copy butonu ile panoya kopyalayın

Entegrasyon

Webhook ile otomatik gönderim veya API ile çekme

İleri Düzey Schema Özellikleri

Enum (Sabit Değerler)

{
  "type": "string",
  "enum": ["Küçük", "Orta", "Büyük"],
  "description": "Beden seçimi"
}
Agent sadece bu 3 değerden birini seçebilir.

Pattern (Regex)

{
  "type": "string",
  "pattern": "^[0-9]{10}$",
  "description": "10 haneli telefon numarası"
}
Telefon numarası formatını zorlar.

Conditional Schema

{
  "type": "object",
  "properties": {
    "hasDiscount": {"type": "boolean"},
    "discountCode": {"type": "string"}
  },
  "if": {
    "properties": {"hasDiscount": {"const": true}}
  },
  "then": {
    "required": ["discountCode"]
  }
}
hasDiscount true ise discountCode zorunlu olur.

Webhook Entegrasyonu

Otomatik Gönderim

Görüşme bittiğinde structured output otomatik olarak webhook’a gönderilebilir.
1

Webhook Ayarları

Ayarlar > Webhook bölümüne gidin
2

Webhook URL Girin

Webhook URL’inizi girin
3

Include Structured Output

Include Structured Output seçeneğini aktif edin
4

Kaydet

Ayarları kaydedin
Gönderilen Veri:
{
  "callId": "call_xyz123",
  "status": "ended",
  "structuredOutput": {
    "name": "Ahmet Yılmaz",
    "phone": "5551234567"
  }
}

İpuçları ve En İyi Uygulamalar

Schema Tasarımı

  • ✅ Sadece gerekli alanları ekleyin
  • ✅ Açıklayıcı description kullanın
  • ✅ Uygun validation (min, max, pattern) ekleyin
  • ✅ Zorunlu alanları minimize edin
  • ❌ Çok karmaşık schema oluşturmayın
  • ❌ Gereksiz nested object kullanmayın

Prompt ile Uyum

Agent promptu ile schema uyumlu olmalı. Promptta hangi bilgilerin toplanacağı belirtilmeli. Kötü Örnek:
Müşteriye şu soruları sor:
1. Adınız?
2. Telefonunuz?
3. Randevu tarihi?
İyi Örnek:
Müşteriyle doğal bir randevu konuşması yap.
Görüşme sırasında adını, telefon numarasını ve
tercih ettiği randevu tarihini öğren.

Gerçek Dünya Örnekleri

Schema:
{
  "type": "object",
  "properties": {
    "name": {"type": "string", "description": "Müşteri adı"},
    "phone": {"type": "string", "pattern": "^[0-9]{10}$"},
    "guests": {"type": "integer", "minimum": 1, "maximum": 20},
    "date": {"type": "string", "format": "date"},
    "time": {"type": "string", "pattern": "^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},
    "specialRequests": {"type": "string"}
  },
  "required": ["name", "phone", "guests", "date", "time"]
}
Schema:
{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "quantity": {"type": "integer", "minimum": 1}
        }
      }
    },
    "deliveryAddress": {
      "type": "object",
      "properties": {
        "street": {"type": "string"},
        "city": {"type": "string"},
        "zipCode": {"type": "string"}
      }
    },
    "paymentMethod": {"type": "string", "enum": ["Kredi Kartı", "Kapıda Ödeme"]}
  },
  "required": ["products", "deliveryAddress", "paymentMethod"]
}
Schema:
{
  "type": "object",
  "properties": {
    "overallSatisfaction": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "1-5 arası genel memnuniyet"
    },
    "productQuality": {"type": "integer", "minimum": 1, "maximum": 5},
    "customerService": {"type": "integer", "minimum": 1, "maximum": 5},
    "wouldRecommend": {"type": "boolean"},
    "suggestions": {"type": "string"}
  },
  "required": ["overallSatisfaction", "wouldRecommend"]
}

Sorun Giderme

Sebep: JSON syntax hatasıÇözüm:
  1. JSON validator kullanın (jsonlint.com)
  2. Virgül, parantez kontrolü yapın
  3. String değerleri çift tırnak içinde olmalı
Sebep: Prompt ile schema uyumsuzÇözüm:
  1. Promptu güncelleyin
  2. Schema’daki alanları prompt ile eşleştirin
  3. Test görüşmesi yapın
Sebepler:
  • Müşteri bilgi vermedi
  • Agent soruları sormadı
  • Görüşme erken sonlandı
Çözüm:
  1. Prompt’u daha direktif yapın
  2. Agent’ı zorunlu alanları mutlaka sormaya yönlendirin
  3. Görüşme akışını gözden geçirin
Çözüm:
  1. Webhook URL’i doğru mu kontrol edin
  2. “Include Structured Output” aktif mi?
  3. Webhook endpoint’i çalışıyor mu test edin
  4. Webhook loglarını inceleyin

Sık Sorulan Sorular

Hayır, opsiyoneldir. Ancak veri toplama ihtiyacınız varsa kullanmanız önerilir.
Teknik limit yok, ancak 5-10 alan ideal. Çok fazla alan agent’ı yavaşlatır.
Validation hatası oluşur ve veri kaydedilmez. Agent tekrar deneyebilir.
Hayır, ek ücret yok. Normal çağrı maliyeti geçerlidir.
Evet, istediğiniz zaman ekleyebilir veya çıkarabilirsiniz.
Bir agent’ta tek bir schema kullanılabilir. Farklı senaryolar için farklı agent’lar oluşturun.

İlgili Makaleler