> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flextell.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Destek ve geri bildirim

> Entegrasyon sırasında yardım almayı, sorun bildirirken iletilecek bilgileri ve geri bildirim yollarını anlatır.

Entegrasyon sırasında takıldığınızda önce hata yanıtını okuyun, sonra gerekirse Flextell ekibine sorun bildirin. Bu sayfa, hangi durumda ne yapacağınızı ve bir bildirimde hangi bilgilerin bulunması gerektiğini anlatır.

## Yardım alma

Çoğu hata, yanıtın kendisinden çözülür. Yanıttaki `error_code` ve `message` alanlarına bakın, ardından aşağıdaki tabloda ilgili satıra gidin.

| Belirti | Olası neden | Nereye bakın |
| - | - | - |
| 400 `TENANT_HEADER_REQUIRED` | `X-Tenant` başlığı yok. Bu, `/oauth/*` ve `/announcements*` yolları için de geçerlidir. | [Klinikler ve X-Tenant](/api/klinikler-ve-x-tenant) |
| 404 `TENANT_NOT_FOUND` | Başlık pozitif bir tam sayı değil, klinik yok ya da kullanıcı o klinikte üye değil. | [Klinikler ve X-Tenant](/api/klinikler-ve-x-tenant) |
| 401 `UNAUTHENTICATED` | Token eksik, geçersiz ya da süresi dolmuş. | [Token'lar](/api/kimlik-dogrulama/tokenlar) |
| 403 `FORBIDDEN` | Token'da gerekli scope yok ya da kullanıcının klinikte ilgili izni yok. Scope eksikse `message` değeri İngilizce `Invalid scope(s) provided.` olur. | [Scope'lar](/api/kimlik-dogrulama/scopelar), [İzinler ve görünürlük](/api/izinler-ve-gorunurluk) |
| 404 `RESOURCE_NOT_FOUND` | Kayıt yok, başka klinikte ya da kullanıcının görünürlük kapsamı dışında. API bu durumda 403 yerine 404 döndürür. | [İzinler ve görünürlük](/api/izinler-ve-gorunurluk) |
| 402 `SUBSCRIPTION_REQUIRED` veya `ACCESS_RESTRICTED_BY_OVERDUE_PAYMENT` | Kliniğin aboneliği sona ermiş ya da gecikmiş ödeme nedeniyle erişim kısıtlanmış. | [Erişim kilitleri](/api/istekler/erisim-kilitleri) |
| 428 `SETUP_REQUIRED` | Klinik kurulumu tamamlanmamış. `data.next_step` eksik adımı söyler. | [Erişim kilitleri](/api/istekler/erisim-kilitleri) |
| 422 `VALIDATION_FAILED` | Gönderilen veri geçersiz. Alan bazlı ayrıntı `errors` içindedir. | [Hatalar](/api/istekler/hatalar) |
| 429 `TOO_MANY_REQUESTS` | Oran sınırı aşıldı. Sınır, kullanıcı ve OAuth istemcisi başına dakikada 300 istektir. `Retry-After` süresi kadar bekleyin. | [Oran sınırları](/api/istekler/oran-sinirlari) |

Tüm kodların listesi için [Hata kodları](/api/istekler/hata-kodlari) sayfasına bakın. Ortam adresleri için [Ortamlar](/api/ortamlar), başlıklar için [Başlıklar](/api/istekler/basliklar) sayfasını kullanın.

<Note>
  Yönlendirme (routing) aşamasında oluşan hatalar, örneğin bilinmeyen yol için 404 ya da yanlış metot için 405, İngilizce çerçeve mesajı taşır. Bu mesajlar `Accept-Language` başlığından etkilenmez. Kodu (`RESOURCE_NOT_FOUND`, `METHOD_NOT_ALLOWED`) esas alın.
</Note>

Bir hata kodu dokümanda yoksa ya da yanıt dokümandaki davranışla uyuşmuyorsa, aşağıdaki bilgilerle Flextell ekibine bildirin.

## Sorun bildirirken gerekenler

Bildirimde aşağıdaki bilgileri bulundurmak, sorunun tekrar üretilmesini hızlandırır.

| Bilgi | Neden gerekli | Nereden alırsınız |
| - | - | - |
| Ortam | Sorunun üretimde mi geliştirme ortamında mı olduğunu ayırır. | `https://app.flextell.ai/api/v1` ya da `https://dev.flextell.ai/api/v1` |
| Metot ve yol | Hangi endpoint'in etkilendiğini gösterir. | İsteğiniz, örn. `GET /api/v1/customers` |
| Klinik kimliği | Veriler ve izinler kliniğe göre değişir. | `X-Tenant` başlığının değeri |
| Tarih ve saat | Kayıtlarla eşleştirmeyi sağlar. Saat dilimiyle birlikte yazın. | İsteği gönderdiğiniz an, örn. `2026-10-12T14:30:00+03:00` |
| HTTP durumu ve `error_code` | Hatanın hangi katmanda oluştuğunu belirler. | Yanıt gövdesi |
| `message` ve varsa `errors` ya da `data` | Hatanın ayrıntısını verir. | Yanıt gövdesi |
| İstek gövdesi | Doğrulama hatalarında sorunlu alanı gösterir. | Gönderdiğiniz JSON |
| Token'daki scope'lar | 403 hatalarında scope eksikliğini ayırır. | Uygulamanızın **Uygulamalar** ekranındaki scope listesi |
| Beklediğiniz ve aldığınız sonuç | Hatanın ne olduğunu açıklar. | Sizin gözleminiz |
| 429 için başlıklar | Sınırın ne zaman sıfırlandığını gösterir. | `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` |

Tarayıcıdan başka bir kaynaktan (origin) istek atıyorsanız `X-Timezone`, `X-RateLimit-*` ve `Retry-After` başlıklarını JavaScript ile okuyamazsınız. Saat dilimi için yanıttaki `meta.timezone` alanını kullanın.

Örnek bir bildirim metni:

```text theme={null}
Ortam: https://app.flextell.ai/api/v1
İstek: POST /api/v1/appointments
X-Tenant: 123
Zaman: 2026-10-12T14:30:00+03:00
Yanıt: 422 VALIDATION_FAILED
errors: {"status": ["..."]}
Beklenen: Randevunun oluşturulması
Gönderilen gövde: (parolalar ve token'lar silinmiş JSON)
```

<Warning>
  Bildirime `access_token`, `refresh_token`, istemci gizli anahtarı (client secret), gelen webhook'un `X-Flextell-Secret` değeri ya da parola eklemeyin. Gerçek hasta bilgilerini de örnek gövdeden çıkarın. Gerekirse `Ayşe Yılmaz` ve `+90 5xx xxx xx xx` gibi örnek değerlerle değiştirin.
</Warning>

### Bildirimi iletme

Flextell ekibine ulaşmanın kanalı, kliniğin panelindeki **Sorun Bildirimlerim** menüsüdür. Bildirimi, entegrasyonu kullanan kliniğin panel kullanıcısı oluşturur. Adımlar [Sorun bildirimleri](/panel/sistem/sorun-bildirimleri) sayfasında anlatılır. Yukarıdaki bilgileri **Açıklama** alanına yazın.

<Steps>
  <Step title="Menüyü açın">
    Sol menünün altındaki **Sorun Bildirimlerim** öğesine gidin.
  </Step>

  <Step title="Yeni bildirim açın">
    **Yeni Sorun Bildirimi** düğmesine tıklayın.
  </Step>

  <Step title="Formu doldurun">
    **Başlık** alanına kısa bir özet (en fazla 255 karakter), **Açıklama** alanına yukarıdaki bilgileri yazın (en fazla 5000 karakter).
  </Step>

  <Step title="Gönderin">
    **Oluştur** düğmesine tıklayın. Başarılı olursa **Sorun bildirimi oluşturuldu** bildirimi ve `PSR-` ile başlayan talep kodu görünür.
  </Step>
</Steps>

<Info>
  Bildirim oluşturmak için rolünüzde **Panel Destek Talepleri** grubunda **Görüntüle** ve **Oluştur** izinleri bulunmalıdır. Bu izinler yoksa klinik yöneticisi rol düzenleyicisinden ekleyebilir.
</Info>

Bildirim formunda ekran görüntüsü ya da dosya eki alanı yoktur. Gerekli her şeyi metin olarak **Açıklama** alanına yazın. Bildirimlerinizi **Sorun Bildirimlerim** listesinden, **Durum** sütunundaki `Açık`, `İşleniyor`, `Çözüldü` ve `Kapalı` değerleriyle izleyebilirsiniz. Listede yalnızca kendi açtığınız bildirimler görünür.

<Note>
  Bu bildirim, hastalarınızın açtığı **Destek Talepleri** ile aynı şey değildir. **Destek Talepleri** hasta tarafındaki sohbet kaydıdır (bkz. [Destek Talepleri](/panel/sohbetler/destek-talepleri)). **Sorun Bildirimi** ise kliniğin Flextell ekibine ilettiği bildirimdir.
</Note>

### API üzerinden bildirim

Sorun bildirimini API ile de oluşturabilirsiniz. Token'da `panel_tickets:write` scope'u, kullanıcıda ilgili klinikte `Create:PanelTicket` izni olmalıdır. Bildirimleri listelemek ve okumak için `panel_tickets:read` scope'u ve `View:PanelTicket` izni gerekir. Alanlar ve yanıtlar için [Sorun bildirimleri](/api/kaynaklar/sorun-bildirimleri) sayfasına bakın.

```bash theme={null}
curl -X POST https://app.flextell.ai/api/v1/panel-tickets \
  -H "Authorization: Bearer <access_token>" \
  -H "X-Tenant: <tenant_id>" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "POST /appointments 422 döndürüyor",
    "description": "Ortam: üretim. Zaman: 2026-10-12T14:30:00+03:00. Yanıt: 422 VALIDATION_FAILED."
  }'
```

`subject` zorunludur ve en fazla 255 karakterdir. `description` zorunludur. Yanıt `201` ile döner ve bildirimin `code` değerini içerir. İstek idempotent değildir: aynı isteği iki kez gönderirseniz iki bildirim oluşur.

## API referansı

Endpoint'lerin parametreleri, yanıt şemaları ve hata yanıtları bu sitenin **API Referansı** sekmesindedir. Bu sekme, Flextell'in OpenAPI belirtiminden otomatik üretilir. Metin açıklamaları ve iş kuralları ise bu sekmedeki kaynak rehberlerinde yer alır.

* Belirtimi makine tarafından okunur biçimde almak için API sunucusunun `/docs/api.json` adresini (OpenAPI 3.1), etkileşimli arayüz için `/docs/api` adresini kullanın. Bu adresler kimlik doğrulaması istemez.
* Belirtimdeki `info.version` değeri sürümleri izlemez. Değişiklikler için [API değişiklikleri](/surum-notlari/api-degisiklikleri) sayfasına bakın.
* Tüm uç noktalar `/api/v1` altındadır. `v2` yoktur; kırıcı değişiklikler de `v1` içinde yayımlanır. Ayrıntı için [Sürümleme](/api/istekler/surumleme) sayfasına bakın.

## Geri bildirim

Hata dışındaki konular için de aynı kanalı kullanabilirsiniz: eksik bir endpoint, belirsiz bir doküman cümlesi, yeni alan ya da iyileştirme önerisi.

* **Doküman geri bildirimi.** Hangi sayfanın hangi cümlesinin yanlış ya da eksik olduğunu yazın. Sayfanın yolunu, örneğin `/api/destek`, bildirime ekleyin.
* **Özellik isteği.** Çözmek istediğiniz iş problemini anlatın. Hangi endpoint'in ne döndürmesini beklediğinizi örnek bir istek ve yanıtla gösterin.
* **Hata bildirimi.** Yukarıdaki bölümdeki bilgilerle gönderin.

**Başlık** alanına konuyu tek cümleyle yazın. Panelin önerdiği örnek biçim `Randevu ekranında filtre çalışmıyor` gibi kısa ve somut bir ifadedir. **Açıklama** alanına sorunun hangi ekran ya da endpoint'te yaşandığını ve tekrar etme adımlarını yazın.

Panelde beklenmeyen bir hata ekranı çıkarsa ekrandaki **bize bildir** bağlantısı sizi aynı bildirim sayfasına götürür.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.