# Talep Referans Listeleri

https://dev.wisecp.com/tr/talep-referans-listeleri

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 JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/tickets/departments' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/departments', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$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);
```

```php
// 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 JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/tickets/assignable-staff' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/assignable-staff', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$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);
```

```php
// 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 JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/tickets/priorities' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/tickets/priorities', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$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);
```

```php
// 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 JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/tickets/statuses' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
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');
```

```php
$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);
```

```php
// 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 JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/tickets/stats?period=this_month' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
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();
```

```php
$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);
```

```php
// 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.

## İlgili Makaleler

- [Talep Yönetimi](https://dev.wisecp.com/tr/talep-yonetimi)
- [Talep Ayarları](https://dev.wisecp.com/tr/talep-ayarlari)
- [Talep Özel Alan Tanımları](https://dev.wisecp.com/tr/talep-ozel-alan-tanimlari)
