Talep Referans Listeleri

1.6k görüntülenme Markdown

Talep yazarken geçerli değerleri veren dört liste ve bir istatistik ucu.

Genel Bakış

Bu beş uç veri değiştirmez; talep yazarken hangi değerlerin geçerli olduğunu söyler. Departman, personel, öncelik ve durum listeleri, talep oluşturma ve güncelleme uçlarının kabul ettiği değerleri buradan alır.

Dördü de kuruluma göre değişir. Departmanlar operatörün kurduğu kadardır, öncelik etiketleri dil dosyasından gelir ve durumlara kurulumun kendi durumları eklenebilir. Bu yüzden hiçbirini koda gömmeyin; başka bir kuruluma taşındığında liste tutmaz.

Beşincisi bir özet: seçtiğiniz dönem için açık ve çözülmüş talep sayıları, ortalama yanıt ve çözüm süreleri ile memnuniyet puanı.

Referans

Departmanları Listeleme

get/api/v1/admin/tickets/departments
Tickets/GetTicketDepartments admin

Talebin gönderilebileceği departmanları döndürür.

Dönen alanlar data[] — 5
idintDepartmanın numarası. Talep yazarken bu değer verilir.
namestringDepartmanın adı.
descriptionstringNe için olduğu.
iconstringSimgesi.
icon_typestringSimgenin türü.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/tickets/departments' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/departments', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/tickets/departments');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Adlar KURULUMUN dilinde gelir; kendi ekraniniza cevirmeyi beklemeyin.
$departments = Api::Tickets()->GetTicketDepartments()['data'];

Atanabilir Personeli Listeleme

get/api/v1/admin/tickets/assignable-staff
Tickets/GetTicketAssignableStaff admin

Talebe atanabilecek personeli döndürür.

Dönen alanlar data[] — 3
idintPersonelin numarası. Atama yaparken bu değer verilir.
full_namestringAdı soyadı.
emailstringE-posta adresi.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/tickets/assignable-staff' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/assignable-staff', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/tickets/assignable-staff');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Liste TUM yoneticiler degildir: yalniz bir departmana gorevli yazilmis kisiler doner.
$staff = Api::Tickets()->GetTicketAssignableStaff()['data'];

Öncelikleri Listeleme

get/api/v1/admin/tickets/priorities
Tickets/GetTicketPriorities admin

Talebe verilebilecek öncelikleri döndürür.

Dönen alanlar data[] — 2
valueintÖnceliğin değeri. Talep yazarken bu sayı verilir.
labelstringÖnceliğin adı.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/tickets/priorities' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/priorities', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/tickets/priorities');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Etiket dil dosyasindan gelir; sayilari koda gomun, ADLARI degil.
$priorities = Api::Tickets()->GetTicketPriorities()['data'];

Durumları Listeleme

get/api/v1/admin/tickets/statuses
Tickets/GetTicketStatuses admin

Standart durumları ve kuruluma özel durumları birlikte döndürür.

Dönen alanlar data[] — 8
keystringDurumun anahtarı. Standartta düz bir sözcük, özelde taban ile numaranın birleşimidir.
namestringGörünen adı.
typestringStandart mı özel mi.
badgestringRozetin sınıfı. Standart durumlarda gelir.
iconstringSimgesi. Standart durumlarda gelir.
idintÖzel durumun numarası. Özel durumlarda gelir.
basestringTüretildiği standart durum. Yalnız özel durumlarda gelir.
colorstringRengi. Özel durumlarda gelir.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/tickets/statuses' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/statuses', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();

const standard = data.filter((s) => s.type === 'standard');
$ch = curl_init('https://panel.ornek.com/api/v1/admin/tickets/statuses');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Iki ayri alana yazilirlar: standart olan durum alanina, ozel olan kendi alanina.
$all    = Api::Tickets()->GetTicketStatuses()['data'];
$custom = array_filter($all, fn ($s) => $s['type'] === 'custom');

İstatistikleri Okuma

get/api/v1/admin/tickets/stats
Tickets/GetTicketStats admin

Seçilen dönem için destek sayılarını ve hız ölçülerini döndürür.

Sorgu 1
periodstringHangi dönem: today, yesterday, this_week, last_week, this_month, last_month, last_3_months, last_6_months, this_year, last_year, all_time. Öntanımlı olarak tüm zamanlar.
Dönen alanlar data — 12 + meta
openintAçık talep sayısı. Hiçbir kod yolu bu durumu yazmaz, normalde sıfırdır. Dönemi dinlemez.
processintBir personelin üzerinde çalıştığı talep sayısı. Dönemi dinlemez.
pendingintPersonel yanıtı bekleyen talep sayısı. Dönemi dinlemez: açık kuyruk anlık iş yüküdür, dönem dışında açılmış ama hâlâ yanıtsız talep de sayılır.
answeredintYanıtlanmış talep sayısı.
resolvedintÇözülmüş talep sayısı.
totalintDönemde açılan talep sayısı. Yukarıdaki adetlerin toplamı değildir: process ve pending dönemi dinlemez.
avg_responsestringOrtalama yanıt süresi. Okunur bir metin, sayı değil.
avg_resolutionstringOrtalama çözüm süresi. Bu da okunur bir metin.
resolution_ratenumberÇözülme oranı.
avg_ratingnumber | nullOrtalama memnuniyet puanı. Hiç puan yoksa boştur.
rating_countintKaç puan verildiği.
rangestringDönemin çözüldüğü tarih aralığı, YYYY-MM-DD - YYYY-MM-DD biçiminde. Tüm zamanlarda boş.
periodstringHesabın kapsadığı dönem. Meta altında döner.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/tickets/stats?period=this_month' \
  -H "Authorization: Bearer $API_KEY"
const url = new URL('https://panel.ornek.com/api/v1/admin/tickets/stats');
url.searchParams.set('period', 'this_month');

const res  = await fetch(url, {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/tickets/stats?' . http_build_query(['period' => 'this_month']));
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Sure alanlari OKUNUR METINDIR ('2h 5m'); tabloya yazmadan once kendiniz ayristirin.
$s = Api::Tickets()->GetTicketStats([], ['period' => 'this_month'])['data'];
$rate = $s['resolution_rate'];

Tuzaklar

Atanabilir personel tüm yöneticiler değildir

Bu liste bir departmanda görevli yazılmış kişileri döndürür. Panelde oturum açabilen her yönetici burada çıkmaz. Kendi yönetici listenizden bir numara alıp atama yaparsanız çağrı geçersiz personel diyerek düşer; atama değerini daima buradan seçin.

Durum listesi iki ayrı alanı besler

Liste standart durumlarla kuruluma özel durumları birlikte döndürür, ama ikisi ayrı alanlara yazılır: standart olan durum alanına, özel olan kendi numarasıyla özel durum alanına gider. Özel bir durumun anahtarını durum alanına yazmak geçersiz durum hatası verir.

Süre alanları metindir, sayı değil

Ortalama yanıt ve çözüm süreleri okunur metin olarak gelir; doğrudan grafik çizemez ya da toplayamazsınız. Sayıya ihtiyacınız varsa kendiniz ayrıştırın. Aynı özette çözüm oranı ve puan sayısı gerçek sayıdır, o ikisi hesaba doğrudan girer.

Etiketler kurulumun dilindedir

Departman adları, öncelik etiketleri ve durum adları kurulumun geçerli dilinde gelir; anahtar bir kimlik değil, gösterilecek metindir. Karar verirken adları değil sayısal değerleri ve anahtarları kullanın, yoksa dil değiştiği gün mantığınız sessizce kayar.

Boş bir dönem sıfır döndürür

Hiç talep olmayan bir dönemde sayılar sıfır, süreler sıfır dakika ve puan ortalaması boş gelir. Bunlar başarı göstergesi değildir: sıfır çözüm süresi hızlı çalıştığınız anlamına gelmez, o dönemde iş olmadığı anlamına gelir. Bir panoya basmadan önce toplam sayıya bakın.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.