> ## 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.

# Hasta kartı

> Hasta kartının bölümlerini (genel bakış, randevular, satışlar, teklifler, işlemler, formlar, destek talepleri, iletişim kanalları) ve kart üzerindeki sohbet panelini anlatır.

Hasta kartı, bir hastayla ilgili her şeyi tek yerde toplar: kişisel bilgiler, randevular, satışlar, teklifler, ödemeler, formlar, destek talepleri ve iletişim adresleri. Kartı **Randevu & Hasta Yönetimi → Hastalar** listesinden hastanın satırına tıklayarak açarsınız. Kartı görmek için **Görüntüleme: Hastalar** izni gerekir.

## Kartın düzeni

Kart, hasta bilgisini bir kez yükler; bölümler arasında gezinirken üst bilgi ve bölüm menüsü ekranda kalır.

### Üst bilgi

Üst bilgi alanında şunlar yer alır:

* Hastanın adı, cinsiyet simgesi, yaşı ve renkli etiketleri. Silinmiş bir hastada kırmızı **Silinmiş** rozeti çıkar.
* **Hasta No**, **Kimlik No**, **Telefon**, **E-posta** ve **Konum** bilgileri. Boş alanlar `—` olarak görünür.
* Bakiye rozeti. **Görüntüleme: Bakiyeler** izniniz varsa borcu olan hastada kırmızı **Açık Bakiye** tutarı, borcu olmadığı kesinse yeşil **Borcu Yok** görünür. Bakiye doğrulanamadığında rozet hiç gösterilmez.
* **Sohbeti Aç** düğmesi (bkz. aşağıda **Kart üzerinden sohbet**).
* **İşlemler** (⋯) menüsü.

### İşlemler menüsü

Menüdeki seçenekler izninize ve kaydın durumuna göre görünür. Silinmiş, salt okunur veya verisi imha edilmiş bir hastada ekleme ve düzenleme seçenekleri gizlenir.

| Seçenek | Ne yapar |
| - | - |
| **Düzenle** | Hasta düzenleme formunu açar. Ayrıntılar için [Hasta oluşturma ve düzenleme](/panel/hastalar/olusturma-ve-duzenleme). |
| **Randevu Oluştur** | Hasta önceden seçili olarak yeni randevu formunu açar. Bkz. [Randevu oluşturma](/panel/randevular/olusturma). |
| **Ödeme Ekle** | Hasta için ödeme kaydı açar (bkz. aşağıda **İşlemler ve bakiye**). |
| **Not Ekle** | Hastaya not ekler. Bkz. [Notlar ve görevler](/panel/hastalar/notlar-ve-gorevler). |
| **Aktivite Geçmişi** | **Hasta Aktivite Geçmişi** penceresinde hastaya ait son işlemleri listeler. |
| **Veri İmha Talebi Aç** | KVKK kapsamında imha talebi başlatır. Bkz. [Veri İmha Talepleri](/panel/sistem/veri-imha-talepleri). |
| **Sil** | Onay sorar, ardından hastayı siler ve **Hastalar** listesine döner. |

### Bölüm menüsü

Geniş ekranda sol sütunda, dar ekranda yatay şeritte **Hasta bölümleri** menüsü bulunur. İznizin olmadığı bölümler menüde görünmez. Randevu, satış, teklif ve destek talebi bölümlerinde, kayıt varsa sayısını gösteren bir rozet çıkar.

| Bölüm | Gereken izin |
| - | - |
| **Genel Bakış** | Görüntüleme: Hastalar |
| **Düzenle** | Güncelleme: Hastalar (silinmiş veya salt okunur hastada gizli) |
| **Randevular** | Görüntüleme: Randevular |
| **Satışlar** | Görüntüleme: Satışlar |
| **Teklifler** | Görüntüleme: Teklifler |
| **İşlemler** | Görüntüleme: Hasta Hareketleri (satırları düzenlemek için Güncelleme: Hasta Hareketleri, silmek için Silme: Hasta Hareketleri) |
| **Formlar** | Görüntüleme: Hasta Formları |
| **Dosyalar** | Görüntüleme: Dosyalar |
| **Notlar** | Görüntüleme: Notlar |
| **Görevler** | Görüntüleme: Hastalar |
| **Destek Talepleri** | Görüntüleme: Destek Talepleri |
| **İletişim Kanalları** | Görüntüleme: Hastalar (listeyi görmek için ayrıca Görüntüleme: Hasta İletişim Kanalları) |

İznizin olmadığı bir bölümün adresini açarsanız **Bilgilendirme** başlıklı bir uyarı görürsünüz: "Bu sayfayı görüntüleme yetkiniz yok". Uyarıdaki **Ana Sayfaya Dön** düğmesi sizi ana sayfaya götürür; erişim için klinik yöneticinize başvurun.

### Kartın üstündeki uyarılar

<AccordionGroup>
  <Accordion title="Verisi imha edilmiş hasta">
    Kartın üstünde şu uyarı çıkar: "Bu hastanın kişisel verileri imha edilmiştir. Kayıt yalnızca görüntülenebilir; düzenleme yapılamaz, mesaj gönderilemez ve yeni işlem oluşturulamaz." Kartın bütün bölümleri okunabilir kalır; ekleme, düzenleme ve silme düğmeleri gizlenir.
  </Accordion>

  <Accordion title="Salt okunur kayıt">
    Başka bir nedenle salt okunur olan kayıtlarda "Bu kayıt salt okunurdur. Yalnızca görüntüleme yapılabilir." uyarısı görünür. Kayıt durumu doğrulanamazsa panel değişiklikleri kapatır ve bunu bir uyarıyla bildirir.
  </Accordion>

  <Accordion title="İçe aktarılmış kayıt">
    Hasta başka bir sistemden aktarıldıysa **İçe Aktarılmış Kayıt** başlıklı bir uyarı, kaydın hangi sistemden geldiğini söyler.
  </Accordion>
</AccordionGroup>

<Note>
  Kart canlı güncellenmez. Başka bir yerde yapılan düzenleme ya da veri imhası, sayfayı yenilediğinizde veya başka bir bölüme geçtiğinizde görünür.
</Note>

## Genel bakış

**Genel Bakış**, hastanın salt okunur özetidir. İki kart içerir.

**Bilgi kartı** üç grupta bilgi gösterir. Boş değerler `—` olarak görünür.

| Grup | Alanlar |
| - | - |
| **Kişisel Bilgiler** | Kimlik Numarası, Pasaport Numarası, Cinsiyet, Doğum Tarihi, Telefon, E-Posta |
| **Adres Bilgileri** | Ülke (bayrak telefon numarasından bulunur), Şehir, İlçe, Adres |
| **Diğer Bilgiler** | Etiketler, İlgili Personel, Meslek, Varsayılan Kanal, Kayıt Tarihi, Güncellenme Tarihi |

**Hareket Geçmişi** kartı hastanın randevu, satış ve teklif kayıtlarını tek akışta, en yeni üstte olacak şekilde gösterir; en fazla 8 kayıt listelenir. Bu kartı görmek için randevu, satış veya teklif görüntüleme izninizden en az biri gerekir. Her satırda kaydın türü (**Randevu**, **Satış**, **Teklif**), başlığı, durum rozeti, tarihi ve ayrıntısı bulunur. Satıra tıkladığınızda ilgili kaydın sayfası açılır; salt okunur hastada satırlar tıklanamaz.

<Tip>
  Randevular, randevu saatine göre sıralandığı için ileri tarihli randevular listenin en üstünde görünür.
</Tip>

## Randevular, satışlar ve teklifler

Bu üç bölüm aynı düzeni kullanır: üstte başlık, **Yenile** düğmesi ve yeni kayıt düğmesi; altında arama kutusu, hızlı filtreler, **Gelişmiş Filtreler**, filtre varken **Temizle** ve tablo. Tablonun altında **Toplam n kayıttan a-b arası** bilgisi ve sayfa başına 10, 25, 50 veya 100 satır seçimi bulunur. Arama ve filtre değişince liste ilk sayfaya döner.

### Randevular

* **Yeni Randevu**: hasta seçili olarak randevu formunu açar.
* Hızlı filtreler: **Durum** (**Bekliyor**, **Onaylandı**, **Tamamlandı**, **İptal Edildi**, **Reddedildi**, **Gelmedi**), **Randevu Tarihi** ve **Randevu Tipi** (**Ana randevu** / **Seans**).
* **Gelişmiş Filtreler**: doktor, asistan, tedaviler, etiketler, oda, kontrol randevusu, seans tipi, oluşturulma şekli (**AI Tarafından** / **Manuel**), satış durumu ve oluşturulma tarihi. **Doktor** filtresi yalnızca tüm randevuları görme izni olanlara açılır.
* **Sütunlar** menüsünden **Kod**, **Satış**, **Oluşturulma Şekli** gibi ek sütunları açabilirsiniz. Seçiminiz tarayıcıda hatırlanır.
* Satıra tıklamak veya satır menüsünden **Görüntüle** ya da **Randevuya Git** seçmek randevu sayfasını açar. Bkz. [Randevu ayrıntısı ve düzenleme](/panel/randevular/detay-ve-duzenleme). **Sil**, randevu silme izni gerektirir.

### Satışlar

* **Yeni Satış**: hasta seçili olarak satış formunu açar. Bkz. [Satış oluşturma](/panel/finans/satis-olusturma).
* Sütunlar: **Tarih**, **Kalemler**, **Personel**, **Durum**, **Tutar**.
* Durumlar: **Taslak**, **Beklemede**, **Tamamlandı**, **Faturalandırıldı**, **İptal Edildi**.
* Filtreler: **Durum**, **Satış Tarihi**, para birimi, **Ödenmemiş Bakiye** (**Ödenmemiş var** / **Tamamen ödendi**) ve tutar aralığı. **Satışçı** filtresi yalnızca tüm satışları görme izni olanlara açılır.
* Satıra tıklayınca satış sayfasının açılması için **Güncelleme: Satışlar** izni gerekir.

### Teklifler

* **Yeni Teklif**: hasta seçili olarak teklif formunu açar. Bkz. [Teklif oluşturma ve satışa dönüştürme](/panel/teklifler/olusturma-ve-satisa-donusturme).
* Sütunlar: **Oluşturulma**, **Geçerlilik**, **Personel**, **Durum**, **Tutar**.
* Durumlar: **Taslak**, **Gönderildi**, **Kabul Edildi**, **Reddedildi**, **Satışa Dönüştü**.
* Satıra tıklayınca teklifin düzenleme ekranının açılması için **Güncelleme: Teklifler** izni gerekir. Kabul edilmiş veya satışa dönüştürülmüş teklif düzenlenemez.

## İşlemler ve bakiye

**İşlemler** bölümü hastanın cari hesap dökümüdür: satışlar, tahsilatlar, açılış bakiyesi ve diğer hareketler. **İşlem ara** kutusu açıklama ve fatura numarasında arar. Bu bölümde filtre ve toplam satırı yoktur. Tahsilat ve ödeme satırlarında ⋯ menüsü vardır (bkz. aşağıda **İşlemi düzenleme ve silme**).

| Sütun | Anlamı |
| - | - |
| **Hesap** | İşlemin yapıldığı hesap |
| **Fatura No**, **Açıklama** | Kayıttaki fatura numarası ve açıklama |
| **İşlem Tipi** | **Satış Faturası**, **Satış**, **Tahsilat**, **Alış Fiş/Fatura**, **Ödeme**, **Açılış Bakiyesi** |
| **Vade Tarihi**, **Taksit** | Taksitli kayıtlarda vade ve sıra (örneğin `3 / 6`) |
| **İşlem Tarihi** | İşlemin tarihi |
| **Tutar** | Alacak yeşil, borç kırmızı gösterilir |

### Ödeme ekleme

<Steps>
  <Step title="Pencereyi açın">
    **İşlemler** bölümünde **Ödeme Ekle**'ye tıklayın. Aynı pencereye kartın **İşlemler** (⋯) menüsünden, hasta listesinden ve **Bakiyeler** sayfasından da ulaşabilirsiniz.
  </Step>

  <Step title="Alanları doldurun">
    Aşağıdaki tabloya göre alanları girin.
  </Step>

  <Step title="Kaydedin">
    **Kaydet**'e tıklayın. "Ödeme başarıyla eklendi." mesajı görünür; kart, sayılar ve bakiye yenilenir.
  </Step>
</Steps>

| Alan | Zorunlu | Açıklama |
| - | - | - |
| **Hesap** | Hayır | Aktif banka veya kasa hesapları arasından seçilir. Hesabı seçince para birimi hesabın para birimine ayarlanır. |
| **Tutar** | Evet | 0'dan büyük olmalıdır. |
| **Para Birimi** | Evet | Varsayılan TRY'dir. |
| **Döviz Kuru** | Hayır | Yalnızca TRY dışındaki para birimlerinde görünür; son satış kuruyla dolar. |
| **Ödeme Yöntemi** | Evet | **Banka Hesabı**, **Nakit**, **Devir Kasa**, **Diğer**, **Kliniğe Ait Kredi Kartı**, **Kredi Kartı**, **Özel Sigorta**, **SGK**. |
| **Tarih** ve **Saat** | Evet | Varsayılan şu andır; saat 5 dakikalık adımlarla seçilir. |
| **Ek Bilgi** | Hayır | Açılır bölümde **Fatura No** (en çok 255 karakter) ve **Açıklama** (en çok 5000 karakter). |

Kayıt, **Tahsilat** türünde bir işlem olarak oluşur. Kartın **İşlemler** menüsündeki **Ödeme Ekle** seçeneği **Oluşturma: Hasta Hareketleri** izni olanlara görünür. **İşlemler** bölümündeki düğme her yazılabilir hastada görünür; izniniz yoksa kayıt sırasında reddedilir. Tahsilat süreci için [Tahsilat](/panel/finans/tahsilat) ve [Bakiyeler](/panel/finans/bakiyeler) sayfalarına bakın.

<Note>
  Hesap seçtiğinizde kayıt her zaman hesabın para birimiyle oluşur; farklı bir para birimi seçmiş olsanız bile hesabın para birimi kullanılır.
</Note>

### İşlemi düzenleme ve silme

**Tahsilat** ve **Ödeme** satırlarının sonundaki ⋯ menüsünde **Düzenle** ve **Sil** seçenekleri bulunur. Satış faturası ve taksit satırlarında menü çıkmaz; bu kayıtlar satışa aittir. Hasta salt okunursa (silinmiş, verisi imha edilmiş ya da size atanmamış bir lead) menü gizlenir. **Düzenle** için **Güncelleme: Hasta Hareketleri**, **Sil** için **Silme: Hasta Hareketleri** izni gerekir; hangisine izniniz yoksa o seçenek görünmez.

<Steps>
  <Step title="Satırı seçin">
    **İşlemler** bölümünde ilgili tahsilat ya da ödeme satırının ⋯ menüsünü açın.
  </Step>

  <Step title="Düzenleyin veya silin">
    **Düzenle**, **İşlemi Düzenle** penceresini açar. Pencerede **İşlem Tarihi**, **Ödeme Yöntemi** (ikisi de zorunlu), **Fatura No** (en çok 255 karakter) ve **Açıklama** alanları bulunur. **Sil** ise onay penceresi (**İşlemi sil**) açar.
  </Step>

  <Step title="Kaydedin ya da onaylayın">
    Düzenlemede **Kaydet**'e tıklayın; "İşlem güncellendi" mesajı görünür. Silmede onaylayın; "İşlem silindi" mesajı görünür. Tablo yenilenir ve üst bilgideki bakiye rozeti güncellenir.
  </Step>
</Steps>

<Note>
  Tutar ve işlem türü düzenleme penceresinde yer almaz; pencere "Tutar bu ekrandan değiştirilemez. Hatalı tutarı silip yeniden girin." diye hatırlatır.
</Note>

<Warning>
  İşlemi silmek, hesaptaki eşli hesap hareketini de siler ve hastanın bakiyesini günceller. Bu işlem geri alınamaz.
</Warning>

## Formlar

**Formlar** bölümü hastaya gönderilen ve hasta ya da klinik tarafından doldurulan formların salt okunur listesidir.

| Sütun | Anlamı |
| - | - |
| **Form Şablonu** | Doldurulan şablonun adı |
| **Dolduran** | **AI**, personel veya **Hasta** |
| **Durum** | **Bekliyor**, **Tamamlandı**, **İncelendi** |
| **Tamamlanma Tarihi** | Formun tamamlandığı tarih |
| **Oluşturulma Şekli** | **AI Tarafından**, **Manuel** veya **Belirsiz** |
| **Oluşturulma** | Kaydın oluşturulduğu tarih |

**Bu sayfada ara** kutusu yalnızca ekrandaki sayfada arama yapar. Satırlara tıklanmaz ve bu bölümden doldurulmuş formun içeriği açılmaz.

<Warning>
  **Hasta Yerine Doldur** düğmesi bu sürümde çalışmaz. Tıkladığınızda formun doldurulamadığını söyleyen bir hata mesajı görürsünüz. Doldurulmuş formlar için bkz. [Doldurulan formlar](/panel/iletisim/doldurulan-formlar) ve [Form şablonları](/panel/iletisim/form-sablonlari).
</Warning>

## Destek talepleri

**Destek Talepleri** bölümü, hastayla ilgili açılmış talepleri listeler. Hastanın bu bölümde kaç talebi olduğu bölüm menüsündeki rozette görünür.

* **Yeni Destek Talebi**: hasta önceden seçili olarak talep formunu açar (**Oluşturma: Destek Talepleri** izni gerekir).
* Arama kutusu (**Kod veya açıklama ara**), **Oluşturulma Tarihi** filtresi ve **Sütunlar** menüsü bulunur.
* Sütunlar: **Kod** (`TKT-` ile başlar), **Tür**, **Durum**, **Açıklama**, **Oluşturulma**. **Güncellenme Tarihi** ve **Silinme Tarihi** isteğe bağlı sütunlardır.
* **Tür** değerleri: **Genel**, **Şikayet**, **Yan Etki**, **İstek**, **Öneri**. **Durum** değerleri: **Açık**, **İşlemde**, **Çözüldü**, **Kapalı**.
* Satır menüsünde **Görüntüle** (**Destek Talebi Detayı** penceresi), **Düzenle** ve **Sil** seçenekleri bulunur. Silmeden önce onay istenir.

Destek taleplerinin kendisi için [Destek talepleri](/panel/sohbetler/destek-talepleri) sayfasına bakın.

## İletişim kanalları

**İletişim Kanalları** bölümü, hastanın klinik kanallarındaki adreslerini tutar: örneğin bir WhatsApp numarası veya bir Instagram kullanıcısı. Her kanal için bir adres **Birincil** olarak işaretlenebilir. Klinik, hastayla bu adresler üzerinden yazışır.

Tablo şu sütunlardan oluşur: **Kanal** (kanalın adı ve **WhatsApp**, **Instagram**, **Telegram** ya da **Web** türü), **İletişim adresi** ve **Öncelik** (**Birincil** rozeti veya `—`). Her kanalda birincil adres en üstte listelenir.

<Steps>
  <Step title="Adres ekleyin">
    **İletişim Kanalı Ekle**'ye tıklayın. Düğmeyi görmek için hasta güncelleme izniniz ve kanalları görüntüleme izniniz olmalıdır.
  </Step>

  <Step title="Kanalı ve adresi girin">
    **Kanal** listesinden kanalı seçin. **İletişim adresi** alanına telefon, e-posta veya kullanıcı adını yazın (en çok 255 karakter). Bu kanalda öncelikli kullanılacak adres buysa **Birincil iletişim adresi** anahtarını açın.
  </Step>

  <Step title="Kaydedin">
    **Kaydet**'e tıklayın. "İletişim kanalı kaydedildi." mesajı görünür.
  </Step>
</Steps>

Bir adresi düzenlemek için satıra tıklayın veya satır menüsü **İletişim kanalı işlemleri** altından **Düzenle**'yi seçin. **Sil** seçeneği onay ister ve adresin hastayla bağlantısını kaldırır.

<Note>
  Aynı adres, bir kanalda klinikteki yalnızca bir hastaya tanımlanabilir. Bir kanalda yeni bir adresi birincil yaparsanız önceki birincil adres otomatik olarak birincil olmaktan çıkar. Kanalları tanımlamak için [Kanallar](/panel/baglantilar/kanallar) sayfasına bakın.
</Note>

## Kart üzerinden sohbet

Hasta kartından ayrılmadan hastayla yazışabilirsiniz. Üst bilgideki **Sohbeti Aç** düğmesi (**Görüntüleme: Sohbetler** izni gerekir) kartın sağına bir sohbet paneli yerleştirir; küçük ekranlarda panel kartın üstüne biner. Aynı düğme **Sohbeti Kapat**'a dönüşür. Panel, mesajlaşma ekranındaki ileti akışı ve yazma alanıyla aynı şekilde çalışır ve yalnızca bu hastanın sohbetlerini gösterir. Verisi imha edilmiş hastada geçmiş okunabilir, ancak mesaj gönderilemez.

Panelin başlığındaki **Sohbet işlemleri** menüsünde şunlar bulunur:

* **Kanal**: Hastanın birden fazla sohbeti varsa aralarında geçiş yapar. Arşivdeki sohbetin yanında **(Arşivde)** yazar.
* **Sohbetlerde Aç**: Aynı sohbeti tam ekran **Sohbetler** sayfasında açar.
* **Etiketler**, **Arşivle** / **Arşivden Çıkar** (**Arşivleme: Sohbetler** izni gerekir) ve **Dışa Aktar**.
* **Sohbeti kapat** (X) paneli kapatır.

Panelde sohbeti silemezsiniz.

### Hastanın henüz sohbeti yoksa

Panel, **Kanal** listesiyle bir taslak gösterir. Listede, telefon numarasıyla ilk mesajı gönderebilen aktif kanallar çıkar. Hastanın varsayılan kanalı önceden seçilir; tek kanal varsa o seçilir.

<Steps>
  <Step title="Kanalı seçin">
    **Kanal seçin** listesinden kanalı belirleyin. Hiç uygun kanal yoksa **Kanal Bulunamadı** mesajı ve **Kanal Ekle** düğmesi çıkar; bkz. [Kanallar](/panel/baglantilar/kanallar).
  </Step>

  <Step title="İlk mesajı gönderin">
    Metin, hızlı yanıt, dosya veya sesli mesaj gönderin. Sohbet, ilk mesajı gönderdiğiniz anda oluşur; göndermeden panel kapatılırsa hiçbir kayıt oluşmaz.
  </Step>
</Steps>

Bu panelden yeni sohbet başlatmak için **Görüntüleme: Sohbetler**, **Oluşturma: Sohbetler** ve **Gönderme: Mesajlar** izinlerinin üçü de gerekir; biri eksikse panel "Bu kişiyle yeni sohbet başlatma yetkiniz yok." der. Verisi imha edilmiş hastada sohbet başlatılamaz ve panel "Bu hastaya ait görüntülenebilir bir sohbet bulunamadı." der.

Hastanın telefon numarası yoksa panel "Mesaj göndermek için kişinin telefon numarasını detay sayfasından ekleyin." diye uyarır. Önce kartın **Düzenle** bölümünden numarayı girin.

<Warning>
  Sohbet görünürlüğü ve sohbet başlatma izinlere bağlıdır. **Tüm konuşmaları görüntüleme** izniniz yoksa yalnızca size atanmış lead'lerin sohbetlerini görürsünüz; başka bir kullanıcıya atanmış lead'in hastasıyla yazışamazsınız. Sohbet size atanmamış bir kişiyle başlatılamazsa panel genel bir bilgi uyarısı gösterir. Bu kısıtlamalar yüzünden yeni mesajlar kendiliğinden görünmeyebilir; sayfayı yenileyin. Ayrıntılar için [Sohbetler genel bakış](/panel/sohbetler/genel-bakis), [Yeni sohbet](/panel/sohbetler/yeni-sohbet) ve [Mesajlaşma](/panel/sohbetler/mesajlasma) sayfalarına bakın.
</Warning>

## İlgili sayfalar

<CardGroup cols={2}>
  <Card title="Hastalara genel bakış" icon="users" href="/panel/hastalar/genel-bakis">
    Hasta listesi, arama ve filtreler.
  </Card>

  <Card title="Notlar ve görevler" icon="notebook-pen" href="/panel/hastalar/notlar-ve-gorevler">
    Karttaki **Notlar** ve **Görevler** bölümleri.
  </Card>

  <Card title="Tahsilat" icon="wallet" href="/panel/finans/tahsilat">
    Hastadan ödeme alma ve bakiye takibi.
  </Card>

  <Card title="Sohbetler" icon="messages-square" href="/panel/sohbetler/genel-bakis">
    Tam ekran sohbet kutusu.
  </Card>
</CardGroup>


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