Bilet Yönlendirme ve Üst Birime Aktarma Mantığı
Niyeti sınıflandırma, uzman aracılarına yönlendirme ve üst birime aktarma tetikleyicileri.
Bilet Yönlendirme ve Üst Birime Aktarma Mantığı, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Yönlendirme Sorunu
Bir müşteri hizmetleri temsilcisi her gün faturalandırma itirazları, parola sıfırlama talepleri, ürün kusurları, kargo gecikmeleri ve özellik istekleri gibi binlerce farklı mesaj alır. Her mesajı aynı işleyiciye göndermek, yavaş ve düşük kaliteli yanıtlar üretilmesine neden olur.
Destek talebi yönlendirme, her mesajı sınıflandırır ve çözüm için en uygun ekibe gönderir.
LLM ile Niyet Sınıflandırması
Yönlendirme katmanı, bir sınıflandırma istemiyle bir LLM'yi çağırır. Model, intent etiketi ve confidence puanı içeren yapılandırılmış bir yanıt döndürür.
import openai, json
client = openai.OpenAI(api_key='YOUR_OPENAI_KEY')
INTENTS = ['billing', 'technical_support', 'returns_refunds',
'account_access', 'shipping', 'general_inquiry']
def classify_intent(message: str) -> dict:
prompt = (
f'Classify this customer message into exactly one intent.\n'
f'Intents: {INTENTS}\n'
f'Message: "{message}"\n'
f'Respond with JSON: {{"intent": "...", "confidence": 0.0-1.0}}'
)
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
response_format={'type': 'json_object'}
)
return json.loads(resp.choices[0].message.content)Uzman Kuyruklarına Yönlendirme
Niyet belirlendikten sonra destek talebini uygun uzman kuyruğuna yönlendirin. Her kuyruğun kendi yanıt şablonları, SLA'ları ve yükseltme kuralları vardır.
ROUTING_MAP = {
'billing': 'queue_billing',
'technical_support': 'queue_tech',
'returns_refunds': 'queue_returns',
'account_access': 'queue_tech',
'shipping': 'queue_fulfillment',
'general_inquiry': 'queue_general'
}
def route_ticket(ticket: dict) -> str:
result = classify_intent(ticket['message'])
intent = result['intent']
confidence = result['confidence']
queue = ROUTING_MAP.get(intent, 'queue_general')
ticket['intent'] = intent
ticket['confidence'] = confidence
ticket['queue'] = queue
return queueYükseltme için Güven Eşiği
Sınıflandırıcı kararsızsa (güven puanı 0,7'nin altındaysa) otomatik yönlendirme yanlış olabilir. Güven puanı düşük destek talepleri, otomatik olarak bir uzmana yönlendirilmek yerine manuel önceliklendirme için bir insana aktarılmalıdır.
CONFIDENCE_THRESHOLD = 0.70
def route_with_escalation(ticket: dict) -> dict:
result = classify_intent(ticket['message'])
intent = result['intent']
confidence = result['confidence']
if confidence < CONFIDENCE_THRESHOLD:
return {
'ticket_id': ticket['id'],
'action': 'escalate_to_human',
'reason': f'Low confidence: {confidence:.2f}',
'suggested_intent': intent
}
queue = ROUTING_MAP.get(intent, 'queue_general')
return {
'ticket_id': ticket['id'],
'action': 'route_to_queue',
'queue': queue,
'intent': intent,
'confidence': confidence
}SLA'ya Dayalı Öncelik Yükseltme
Otomatik yönlendirilen destek talepleri bile zamanında çözülmezse SLA ihlaline yol açabilir. Arka plan işi, destek talebinin yaşını SLA hedefleriyle karşılaştırır ve süresi aşılmış talepleri bir yönetici kuyruğuna yükseltir.
from datetime import datetime, timezone
SLA_HOURS = {
'queue_billing': 4,
'queue_tech': 8,
'queue_returns': 24,
'queue_fulfillment': 12,
'queue_general': 48
}
def check_sla_breach(ticket: dict) -> bool:
created = datetime.fromisoformat(ticket['created_at'])
age_hours = (datetime.now(timezone.utc) - created).total_seconds() / 3600
sla = SLA_HOURS.get(ticket['queue'], 24)
if age_hours > sla and ticket['status'] == 'open':
ticket['queue'] = 'queue_supervisor_escalation'
ticket['escalation_reason'] = f'SLA breach: {age_hours:.1f}h > {sla}h'
return True
return False
if __name__ == '__main__':
from datetime import datetime, timedelta, timezone
old_ticket = {
'created_at': (datetime.now(timezone.utc) - timedelta(hours=10)).isoformat(),
'queue': 'queue_billing',
'status': 'open',
}
breached = check_sla_breach(old_ticket)
print(f'SLA breached: {breached}')
if breached:
print('Escalation reason:', old_ticket['escalation_reason'])
Karmaşık Destek Talepleri için Çok Etiketli Yönlendirme
Bazı mesajlar birden fazla alana dokunur: “Siparişim kırık geldi ve benden iki kez ücret alındı.” Çok etiketli bir sınıflandırıcı birden fazla niyet döndürür; destek talebi her iki kuyruğa da kopyalanır ve temsilciler çözüm üzerinde koordineli çalışır.
def classify_multi_intent(message: str) -> list[dict]:
prompt = (
f'A customer message may have multiple intents.\n'
f'Intents: {INTENTS}\n'
f'Message: "{message}"\n'
f'Return JSON array: [{{"intent": "...", "confidence": 0.0}}]\n'
f'Include only intents with confidence > 0.5'
)
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
response_format={'type': 'json_object'}
)
data = json.loads(resp.choices[0].message.content)
return data.get('intents', [])
# Route to multiple queues
def route_multi(ticket: dict) -> list[str]:
intents = classify_multi_intent(ticket['message'])
return [ROUTING_MAP.get(i['intent'], 'queue_general') for i in intents]Destek Talebi Üst Verilerini Çıkarma
Yönlendirmeden önce, uzmanlara yardımcı olması için mesajdan üst verileri çıkarın: sipariş numaraları, ürün adları ve hesap kimlikleri. Bu işlem, ilk turdaki açıklayıcı soruları ortadan kaldırarak çözümü hızlandırır.
def extract_metadata(message: str) -> dict:
prompt = (
f'Extract structured metadata from this customer message.\n'
f'Return JSON: {{"order_id": null, "product": null, "account_email": null}}\n'
f'Use null for fields not mentioned.\n'
f'Message: "{message}"'
)
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
response_format={'type': 'json_object'}
)
return json.loads(resp.choices[0].message.content)
meta = extract_metadata('My order #A12345 for the blue headphones never arrived.')
print(meta) # {'order_id': 'A12345', 'product': 'blue headphones', 'account_email': None}Duyguya Dayalı Öncelik Artışı
Öfkeli müşterilerin ayrılma olasılığı daha yüksektir. Olumsuz duyguyu algılayın ve destek talebinin önceliğini artırın; böylece SLA süresi henüz dolmamış olsa bile memnuniyetsiz müşteriler daha hızlı yanıt alır.
def detect_sentiment(message: str) -> str:
prompt = f'Classify sentiment as positive/neutral/negative.\nMessage: "{message}"\nReturn JSON: {{"sentiment": "..."}}'
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
response_format={'type': 'json_object'}
)
return json.loads(resp.choices[0].message.content)['sentiment']
def set_priority(ticket: dict) -> str:
sentiment = detect_sentiment(ticket['message'])
if sentiment == 'negative':
ticket['priority'] = 'high'
elif sentiment == 'positive':
ticket['priority'] = 'low'
else:
ticket['priority'] = 'normal'
return ticket['priority']Yükseltme Zincirini Tanımlama
Her kuyruğun bir yedek seçeneği olması için açık bir yükseltme zinciri tanımlayın. Ön saflardaki kuyruk, SLA süresi içinde çözüm üretemediğinde destek talebi önce 2. seviyeye, ardından 3. seviyeye (kıdemli uzman) ve son olarak yöneticiye aktarılır.
ESCALATION_CHAIN = {
'queue_tech': 'queue_tech_tier2',
'queue_tech_tier2': 'queue_tech_senior',
'queue_tech_senior': 'queue_supervisor_escalation',
'queue_billing': 'queue_billing_senior',
'queue_billing_senior': 'queue_supervisor_escalation',
'queue_returns': 'queue_supervisor_escalation',
'queue_fulfillment': 'queue_supervisor_escalation',
'queue_general': 'queue_supervisor_escalation',
'queue_supervisor_escalation': None # terminal — human manager
}
def escalate(ticket: dict) -> str | None:
next_queue = ESCALATION_CHAIN.get(ticket['queue'])
if next_queue:
ticket['queue'] = next_queue
return next_queue
if __name__ == '__main__':
ticket = {'queue': 'queue_tech'}
for _ in range(3):
nxt = escalate(ticket)
print(f"Escalated to: {ticket['queue']}")
if nxt is None:
break
Eksiksiz Yönlendirme İşlem Hattı
Sınıflandırmayı, üst veri çıkarmayı, duygu analizini ve SLA denetimini her gelen destek talebinde çalışan tek bir işlem hattında birleştirin.
def process_ticket(raw_ticket: dict) -> dict:
ticket = dict(raw_ticket)
# Step 1: Classify and route
routing = route_with_escalation(ticket)
ticket.update(routing)
# Step 2: Extract metadata
ticket['metadata'] = extract_metadata(ticket['message'])
# Step 3: Set priority from sentiment
ticket['priority'] = set_priority(ticket)
# Step 4: Check if already breaching SLA
if ticket.get('created_at'):
check_sla_breach(ticket)
return ticket
result = process_ticket({
'id': 'T001',
'message': 'I was charged twice for my subscription last month!',
'created_at': '2026-05-28T10:00:00+00:00',
'status': 'open'
})
print(result)Yönlendirme Doğruluğunu İzleme
Otomatik yönlendirilen destek taleplerinin belirli bir yüzdesini insan incelemesi için örnekleyerek yönlendirme doğruluğunu takip edin. Bir uzman destek talebini başka bir kuyruğa yeniden atadığında bu, bir yönlendirme hatasıdır. İstemleri geliştirmek veya bir sınıflandırıcıyı ince ayarlamak için hataları sisteme geri besleyin.
import random
def log_routing_decision(ticket: dict, final_queue: str):
was_correct = ticket.get('queue') == final_queue
if not was_correct:
print(f'[ROUTING_ERROR] ticket={ticket["id"]} '
f'predicted={ticket["queue"]} actual={final_queue} '
f'confidence={ticket.get("confidence", 0):.2f}')
# Specialist reassigns ticket: log the discrepancy
def specialist_reassign(ticket: dict, new_queue: str):
log_routing_decision(ticket, new_queue)
ticket['queue'] = new_queue
return ticket
if __name__ == '__main__':
ticket = {'id': 'T-1001', 'queue': 'queue_billing', 'confidence': 0.62}
specialist_reassign(ticket, 'queue_tech')
Otomatik yönlendirme yerine insan aktarımını hangi güven eşiği tetiklemelidir?
Doğru güven eşiğini seçmek, otomasyon oranı ile yönlendirme doğruluğu arasında denge kurar. Çok yüksek bir eşik gereğinden fazla aktarmaya, çok düşük bir eşik ise yanlış yönlendirmelere yol açar.
Destek Talebi Yönlendirmenin Özeti
Etkili destek talebi yönlendirme; insan aktarımı için LLM niyet sınıflandırmasını bir güven eşiğiyle, daha hızlı çözüm için üst veri çıkarmayı, risk altındaki müşteriler için duyguya dayalı önceliği ve hiçbir destek talebinin gözden kaçmamasını sağlamak için bir SLA yükseltme zincirini birleştirir.
Sıkça Sorulan Sorular
“Bilet Yönlendirme ve Üst Birime Aktarma Mantığı” dersi ücretsiz mi?
Evet — “Bilet Yönlendirme ve Üst Birime Aktarma Mantığı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Bilet Yönlendirme ve Üst Birime Aktarma Mantığı” dersinde ne öğreneceğim?
Niyeti sınıflandırma, uzman aracılarına yönlendirme ve üst birime aktarma tetikleyicileri. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Bilet Yönlendirme ve Üst Birime Aktarma Mantığı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Bilet Yönlendirme ve Üst Birime Aktarma Mantığı
- CRM Entegrasyonu: Salesforce ve HubSpot
- İnsanlara Devretme Protokolleri
- Müşteri Bağlamı ve Geçmişi Yönetimi