X-Tenant) kayıtlı kişisidir. Randevular, satışlar, notlar, görevler, formlar ve sohbetler hastaya bağlanır. Bu sayfa hastanın kendisini yönetir: kayıt, arama, güncelleme, iletişim kimlikleri, etiketler, silme ve görünürlük. Notlar, birleştirme ve formlar kendi sayfalarındadır: Hasta notları ve görevleri, Hasta birleştirme, Hasta formları.
Her istekte
Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıkları gerekir. Başlık yoksa 400 TENANT_HEADER_REQUIRED döner. Ayrıntı: Klinikler ve X-Tenant.Endpoint özeti
Taban adreshttps://app.flextell.ai/api/v1. Okuma uç noktaları customers:read, yazma uç noktaları customers:write scope’u ister. Scope’lar hakkında: Scope’lar.
Kimlik uç noktaları da aynı kuralı izler: okuma
customers:read, yazma customers:write. /customers/{id}/files için dosya scope’u gerekmez, ama View:File izni gerekir.
Panelde bu izinler rol editöründe Hastalar grubunda (Görüntüle, Tümünü Görüntüle, Oluştur, Güncelle, Birleştir, Sil) ve Hasta İletişim Kanalları grubunda görünür.
Nesne modeli
Tek hasta ve liste yanıtları aynı alanları taşır. Tarih-saat alanları klinik saat dilimiyle ofsetli döner (2026-10-12T14:30:00+03:00), date_of_birth ise YYYY-MM-DD biçimindedir.
user_id yalnızca yazarken kullanılır, okurken related_user döner. Aşağıdaki alanlar API’den yazılamaz: lead_id, converted_at, import_source_id, avatar_url, is_intake_completed, erased_at.Listeleme ve filtreler
GET /customers lead aşamasındaki ve silinmiş kayıtları döndürmez. İmha edilmiş hastalar varsayılan olarak listelenir. Sayfalama (per_page 1–100, varsayılan 15; page) ve yanıt zarfı için Sayfalama ile Yanıt yapısı sayfalarına bakın.
Aralık parametrelerinde uç değerler dahildir; yalnızca tarih içeren
_to değeri günün tamamını kapsar ve _from değerinden önce olamaz. Sıralama genel kuralları için Filtreleme ve sıralama sayfasına bakın. sort_by tek başına verilirse metin sütunları Türkçe sıralamayla A→Z, diğerleri azalan sıralanır.
Oluşturma ve güncelleme
POST /customers hasta oluşturur ve 201 döner. PUT /customers/{id} kısmi güncellemedir: gönderdiğiniz alanlar değişir. Zorunlu üç alan güncellemede atlanabilir ama boş gönderilemez.
Telefon normalleştirmesi:
@ sonrası ve rakam olmayan her karakter atılır. 5 ile başlayan 10 hane başına 90 alır; 0 ile başlayan 11 hane 0 yerine 90 alır. Diğer numaralar olduğu gibi kalır, bu yüzden uluslararası numaralarda ülke kodunu gönderin. @lid ile biten WhatsApp kimlikleri hiç değiştirilmez. +90 5xx xxx xx xx, 05xx xxx xx xx ve 5xxxxxxxxx aynı kayda çözülür. Silinen hastanın telefon, TCKN ve pasaport numarası hemen yeniden kullanılabilir.
Varsayılan kanal. Oluşturmada yalnızca telefon tabanlı aktif bir kanal ve dolu
phone_number kabul edilir. Güncellemede hastanın o kanalda sohbeti ya da kimliği olmalı; kanal telefon tabanlıysa kayıtlı telefon yeterlidir. Aksi halde 422 ve Hastanın seçilen varsayılan kanalda kayıtlı adresi yok. döner. Oluşturmadaki ret mesajı İngilizcedir ve çevrilmez.403), alan doğrulaması (422), hasta bulunamadı veya görünürlük dışı (404), imha edilmiş hasta (409). Bu yüzden geçersiz gövdeyle olmayan bir kimliğe yazarsanız 404 değil 422 alırsınız.
İletişim kimlikleri
İletişim kimliği, hastanın bir kanaldaki adresidir: WhatsApp numarası, Telegram sohbet kimliği, Instagram kullanıcı kimliği (IGSID) veya web sitesi ziyaretçi kimliği. Panelde İletişim Kanalları sekmesinde görünür. Kanallar için Kanallar sayfasına bakın.
Liste
channel_id ile filtrelenir, created_at_from ve created_at_to ile daraltılır; birincil kimlikler önce gelir. Her kimlik id, record_state, channel (id, name, type), identifier, is_primary, metadata, created_at ve updated_at alanlarıyla döner. Kimliği silmek adresi serbest bırakır. Yeni bir kimlik, hastanın notification_channels bilgisine yansır.
Görünürlük
Hasta görünürlüğü kullanıcının iznine ve Lead atamasına bağlıdır. Görünürlük kurallarının dışında kalan hasta403 değil, her zaman 404 döner; okuma ve yazmada aynıdır.
- Lead aşamasındaki kayıtlar hasta sayılmaz. Lead hastaya dönüşene kadar bu uç noktalarda
404döner. Bkz. Lead’ler. ViewAllCustomers:Customer(Tümünü Görüntüle) görünürlük anahtarıdır. Bu izne sahip kullanıcılar ve platform yöneticileri kliniğin tüm hastalarını görür. İzin açıkça verilmedikçe geçerli değildir.- İzin yoksa Satış Temsilcisi rolü, dönüştürülmüş ve Lead’siz tüm hastaları ve kendi Lead’lerinin kayıtlarını görür.
- İzin yoksa diğer roller (doktor, asistan gibi) yalnızca Lead’i kendilerine atanmış hastaları görür. Doğrudan, Lead’siz oluşturulmuş hastalar ve atanmamış Lead’lerin hastaları onlara görünmez.
- İlgili Personel (
user_id) görünürlük sağlamaz.
View:Customer, Update:Customer ve Create:CustomerIdentity, Update:CustomerIdentity, Delete:CustomerIdentity vardır; ViewAllCustomers:Customer yoktur. Satış Direktörü rolünde ViewAllCustomers:Customer dahil View:Customer, Create:Customer, Update:Customer ve Delete:Customer vardır. Ayrıntılar için İzinler ve görünürlük sayfasına bakın.
Silme ve imha edilmiş hasta
Silme
DELETE /customers/{id} hastayı yumuşak siler ve Hasta başarıyla silindi mesajını döner. Aynı Geri Dönüşüm Kutusu grubunda şunlar da silinir: ileri tarihli bekleyen veya onaylı randevular, sohbetler, Destek Talepleri, hasta formları, iletişim kimlikleri, notlar, görevler ve dosyalar. Geçmiş randevular, satışlar, teklifler, faturalar ve hesap hareketleri kalır ve customer_name bilgisini korur. “İlişkili kayıt var” engeli yoktur.
Silinen hasta her yerde 404 döner. Hastayı geri getiren bir API uç noktası yoktur; kayıt, süre dolana kadar (varsayılan 30 gün) Geri Dönüşüm Kutusu’ndan geri yüklenir. Bkz. Silme yaşam döngüsü ve Loglar ve geri dönüşüm.
İmha edilmiş hasta
Hasta KVKK kapsamında veri imhası istediğinde kayıt silinmez, salt okunur olur. Bkz. Veri imha talepleri.- Hasta listelerde ve detayda görünmeye devam eder;
erased_atdolu,record_stateise{"is_read_only": true, "reason_code": "CUSTOMER_ERASED"}olur. Hastaya bağlı kayıtlar da aynı durumu taşır. - Kişisel alanlar maskelenmiş döner. Ad her kelimede ilk iki harfi, doğum tarihi yalnızca yılı korur; adres tamamen
••••••olur. - Hasta ve kayıtları üzerindeki her yazma (güncelleme, silme, kimlik, not, görev) hiçbir değişiklik yapılmadan
409 CUSTOMER_ERASEDdöner. - Yeni iş açan seçicilerde
exclude_erased=1kullanın.
record_state.is_read_only değerinin false olması yazma izniniz olduğu anlamına gelmez; izin kontrolleri ayrıca uygulanır.