Skip to main content
Aynı kişinin iki kez açılmış hasta kayıtlarını bulur, karşılaştırır ve tek kayıtta birleştirirsiniz. Birleştirmede kalacak hasta (hedef) yol parametresindeki {id} hastasıdır. Silinecek hasta (kaynak) isteğin gövdesindeki source_customer_id hastasıdır. Kaynağın randevu, satış, dosya ve sohbet gibi ilişkili kayıtları hedefe taşınır. Panelde aynı akış Hasta Birleştirme sayfasında bulunur. Panel anlatımı için Hasta birleştirme (panel) sayfasına bakın.
Birleştirme geri alınamaz. Kaynak hasta kalıcı olarak silinir ve Geri Dönüşüm Kutusu’ndan geri getirilemez. Birleştirmeden önce mutlaka önizleme isteği yapın.

Endpoint özeti

Tüm endpoint’ler /api/v1 altındadır ve Authorization: Bearer <access_token> ile X-Tenant: <tenant_id> başlıklarını ister. Hepsi için Birleştir izni (Merge:Customer) gerekir. Scope ve izin kuralları için Scope’lar ve İzinler ve görünürlük sayfalarına bakın.

Mükerrer adaylar

Flextell iki hastayı yalnızca ad ve soyadı aynıysa mükerrer sayar. Karşılaştırma büyük/küçük harf ve baştaki/sondaki boşlukları yok sayar, Türkçe İ, I ve ı harflerini i olarak eşler. TC kimlik numarası ve telefon karşılaştırılmaz. Yalnızca kimlik numarası aynı olan iki hasta aday olarak önerilmez. Yalnızca çağıran kullanıcının görebildiği hastalar hem adaylarda hem birleştirmede yer alır. Kapsamınızın dışındaki bir hasta için 404 alırsınız.

Grup listesi

GET /customers/duplicates isteği per_page ve page parametrelerini alır. Gruplar üye sayısına göre azalan, sonra ada göre sıralanır.
meta.total, hariç tutulan çiftler ayıklanmadan önceki ad gruplarını sayar. Bu yüzden bir sayfada per_page değerinden az grup gelebilir. Sayfalama kuralları için Sayfalama sayfasına bakın.

Tek hastanın adayları

GET /customers/{id}/duplicate-candidates isteği limit parametresini alır (1–100, varsayılan 10). Yanıtta target (istediğiniz hasta) ve candidates (adaylar, ID sırasıyla) döner. Hariç tutulan çiftler listeye girmez. Adı veya soyadı boş olan bir hastanın adayı çıkmaz.
Bu örnekte yalnızca ilgili alanlar gösterilmiştir. Aday nesnelerinde ayrıca id, record_state, email, is_masked, is_lead_stage ve lead_id alanları bulunur.
Verileri imha edilmiş hastalar da gruplarda ve adaylarda görünür, ancak birleştirilemez (bkz. Kısıtlar).

Önizleme

GET /customers/{id}/merge/preview?source_customer_id=456 isteği iki kaydı alan alan karşılaştırır ve birleştirme sonucunda taşınacak kayıtları sayar. Hiçbir şey yazmaz.
integer
gerekli
Silinecek hastanın ID’si. {id} ile aynı olamaz.
Yanıt üç parçadan oluşur. target ve source değerleri ham gelir. Ülke, il, ilçe, meslek, kanal ve sorumlu kullanıcı için ID, gender için sabit değer, doğum tarihi için Y-m-d biçimi, avatar_url için dosya anahtarı döner. İnsan tarafından okunacak ad için ilgili hasta kayıtlarını ayrıca okuyun. counts ve total, aktivite kaydı, birleştirme geçmişi ve hariç tutma kayıtları gibi iç kayıtları da sayar. Panel bu kalemleri gizler. Kullanıcıya gösterecekseniz activity_log, customer_merges ve customer_merge_exclusions anahtarlarını ayıklayabilirsiniz.

Birleştirilebilir alanlar

Her alan için target (kalacak hastanın değeri) ya da source (silinecek hastanın değeri) seçebilirsiniz.

Birleştirme

POST /customers/{id}/merge isteği birleştirmeyi yapar.
integer
gerekli
Silinecek hastanın ID’si. {id} ile aynı olamaz.
object
Alan adı → target veya source eşlemesi. Anahtarlar yukarıdaki 16 alandan biri olmalıdır. Göndermediğiniz alanlarda target değeri kalır.
Yanıttaki customer kaydında notification_channels ve import_source alanları yoktur, latest_conversation_id ise null döner. Güncel hâli için hastayı GET /customers/{id} ile yeniden okuyun.

Neler olur

  • Kaynağın şu kayıtları hedefe taşınır: randevular, satışlar, destek talepleri, mesajlar, sohbetler, hasta işlemleri, formlar, faturalar, teklifler, AI yanıt önerileri, lead’ler, görevler, veri imha talepleri, notlar, dosyalar, etiketler, iletişim kimlikleri ve kara liste kayıtları. Silinmiş (geri dönüşüm kutusundaki) kayıtlar da taşınır.
  • Hedefte zaten bulunan etiketler tekrar eklenmez. Aynı kanalda hedefin zaten birincil kimliği varsa kaynağın birincil kimliği birincillikten çıkar.
  • Hedefin lead’i yoksa ve kaynağın varsa, hedef kaynağın lead’ini devralır ve hasta olarak kalır. Hedefte kayıtlı bir içe aktarma kaynağı yoksa kaynaktakini alır.
  • Kaynaktaki telefon numarası aynı işlemde serbest kalır; bu sayede phone_number için source seçebilirsiniz.
  • Korunmayan dolu alan değerleri (hedefin ezilen değeri ya da silinen kaydın değeri) hedef hastaya otomatik bir not olarak yazılır. Not, Hasta birleştirme: "<kaynak adı>" kaydı birleştirilirken korunmayan dolu alanlar: satırıyla başlar ve birleştiren kullanıcıya aittir.
  • İşlem bir bütündür. Bir adım başarısız olursa hiçbir değişiklik kalmaz.
  • Kaynağın dosyaları, birleştirme yanıtı döndükten sonra hedefin klasörüne taşınır. Dosyaların yeni konumda görünmesi kısa süre alabilir.

Birleştirme geçmişi

Her birleştirme bir geçmiş kaydı bırakır. GET /customer-merges listesi şu parametreleri alır. Liste kayıtları id, target_customer_id, source_customer_id, source_customer_name, performed_by_user_id, field_selections, moved_counts, total_moved_count, target_customer, performed_by, created_at ve updated_at alanlarını içerir. Detay endpoint’i ek olarak source_snapshot döndürür: silinen hasta kaydının tam kopyası.
Geçmiş kayıtları hasta kapsamına göre süzülmez; Birleştir iznine sahip her kullanıcı klinikteki tüm birleştirmeleri ve source_snapshot içindeki kişisel verileri görür. Bu izni yalnızca gerekli kullanıcılara verin.

Hariç tutma

İki kaydın gerçekten farklı kişiler olduğunu biliyorsanız POST /customers/{id}/merge/exclusions ile çifti “mükerrer değil” olarak işaretleyin.
integer
gerekli
Diğer hastanın ID’si. {id} ile aynı olamaz.
Yanıttaki target_customer_id her zaman düşük ID’yi, source_customer_id yüksek ID’yi gösterir; hangi tarafı gönderdiğiniz fark etmez. data.message çevrilmeyen İngilizce bir metindir; mantığınızı created alanına bağlayın.
  • İşaretlenen çift tüm grup ve aday listelerinden çıkar. Bir grupta kalan üyeler artık mükerrer çift oluşturmuyorsa grup kaybolur.
  • İşaret sonradan kaldırılamaz; bunun için bir endpoint yoktur.
  • Verileri imha edilmiş hastalar için de işaret koyabilirsiniz.

Kısıtlar

Başka kurallar:
  • Lead aşamasındaki kayıtlar hasta sayılmaz. Bunlar için bu endpoint’ler 404 verir; kayıt, lead hastaya dönüştükten sonra görünür.
  • Başka bir kliniğin hastası ya da silinmiş (Geri Dönüşüm Kutusu’ndaki) hasta birleştirilemez.
  • Birleştirme geri alınamaz ve hariç tutma işareti kaldırılamaz.
  • Her iki hasta da hasta kapsamınızda olmalıdır; kapsam kuralları için İzinler ve görünürlük sayfasına bakın.
Genel hata biçimi ve kodlar için Hata kodları sayfasına bakın.

Hastalar

Hasta kayıtlarını listeleme, oluşturma ve düzenleme.

Veri imha talepleri

Birleştirmeyi engelleyen açık imha talepleri.