Skip to main content
Lead, kliniğe ulaşmış ama henüz hasta olmamış kişidir. Her lead kliniğin tek aktif pipeline’ında bir aşamada durur, bir satış temsilcisine atanabilir ve satışa varırsa hastaya dönüştürülür. Bu sayfa lead’in kendisini yönetir. Notlar, görevler ve iletişim kimlikleri Lead notları ve görevleri sayfasındadır. Pipeline ve aşama tanımları için Pipeline’lar sayfasına bakın. Uçtan uca akış için Lead akışı rehberini izleyin.
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 adres https://app.flextell.ai/api/v1. Okuma uç noktaları leads:read, yazma uç noktaları leads:write scope’u ister. Dönüştürme ayrıca customers:write ister. Scope’lar için Scope’lar sayfasına bakın.
ViewAllLeads:Lead iznine sahip olmayan kullanıcı yalnızca kendisine atanmış lead’leri görür. Lead’i oluşturmak görünürlük kazandırmaz. Başkasına atanmış bir lead’in /leads/{id} ile başlayan uç noktaları 403 LEAD_NOT_ASSIGNED döner. Silinmiş, başka klinike ait veya bulunmayan lead için 404 RESOURCE_NOT_FOUND döner.

Nesne modeli

Tek lead ve liste yanıtları aynı alanları taşır. Tarih-saat alanları klinik saat dilimiyle ofsetli döner (2026-10-12T14:30:00+03:00).
Her lead’in arka planda bir kişi kaydı (customer_id) vardır. Lead hastaya dönüşene kadar bu kayıt hasta listelerinde görünmez ve /customers uç noktaları onu 404 ile reddeder. Aynı telefon numarasına sahip bir kişi kaydı varsa yeni lead onu kullanır, ikinci kayıt açmaz.

Listeleme ve filtreler

GET /leads yalnızca görebildiğiniz lead’leri döner. Silinmiş lead’ler listelenmez. Yanıt {"data": [...], "links": {...}, "meta": {...}} biçimindedir. Sayfalama (per_page 1–100, varsayılan 15; page) için Sayfalama, genel filtre ve sıralama kuralları için Filtreleme ve sıralama sayfalarına bakın. Atanmamış lead’leri süzen bir filtre yoktur. Lead sayısını aşama bazında görmek için GET /leads/pipeline-summary kullanın. Yanıt pipeline (id, name) ile her aşama için stage, count ve expected_value değerlerini verir. Aktif pipeline yoksa pipeline null, stages boş döner. GET /leads/stats aktif, yeni, dönüşen lead sayılarını ve potansiyel değeri verir.

Oluşturma

POST /leads hiçbir alanı zorunlu tutmaz. Boş gövdeyle de lead açılır, ancak gerçek kullanımda en az ad ve telefon gönderin.
Başarılı istek 201 ve {"success": true, "data": {...}} döner. Sahip belirleme şöyle çalışır:
  • assigned_user_id göndermezseniz ve Assign:Lead izniniz yoksa (satış temsilcisi) ama View:Lead ile ReceiveLeads:Lead izinleriniz varsa lead size atanır.
  • Yöneticinin sahipsiz bıraktığı lead’ler, kliniğin otomatik atama moduna göre dağıtılır. Mod Manuel (otomatik atama yok) ise lead atanmadan kalır. Bu davranış kliniğinizin ayarlarına göre değişir.
  • Uygun temsilci yoksa ya da herkes aktif lead sınırındaysa lead atanmadan kalır ve Assign:Lead iznine sahip kullanıcılara bildirim gider. Atama hatası lead oluşturmayı engellemez.

Aşama değiştirme

Tüm aşama değişiklikleri aynı kuralları izler:
  • Hedef aşama aktif pipeline’a ait olmalı.
  • Dönüşmüş lead’in aşaması değişmez (LEAD_ALREADY_CONVERTED).
  • Kayıp aşamasına geçişte, aşama Kayıp Sebebi Zorunlu ise lost_reason gerekir. Varsayılan kayıp aşaması bunu ister. Eksikse LEAD_LOST_REASON_REQUIRED döner ve errors.lost_reason alanı dolar.
  • Kayıp olmayan herhangi bir aşamaya geçmek lost_reason, lost_at ve lost_by_user_id değerlerini temizler. Kayıp lead’i yeniden açmanın yolu budur.
  • Kazanıldı aşamasına girişte won_at damgalanır, çıkışta temizlenir.

Tek lead

Üç yol vardır:
  • PUT /leads/{id} gövdesine pipeline_stage_id ekleyin. Kayıp aşaması için lost_reason da gönderin.
  • POST /leads/{id}/won lead’i aktif pipeline’ın kazanıldı aşamasına alır. Gövde gerekmez. Aktif pipeline’da kazanıldı aşaması yoksa LEAD_NO_WON_STAGE döner. Dönüşmüş lead için çağrı bir şeyi değiştirmez ve 200 döner.
  • POST /leads/{id}/lost lead’i kayıp aşamasına alır ve gövdede lost_reason ister. Kayıp aşaması yoksa LEAD_NO_LOST_STAGE döner.

Toplu aşama değiştirme

POST /leads/bulk-stage gövdesi lead_ids[], pipeline_stage_id ve gerekirse lost_reason alanlarını taşır.
  • Seçimde görebildiğiniz dönüşmüş bir lead varsa (LEAD_ALREADY_CONVERTED) ya da hedef aşama sebep isteyip lost_reason yoksa (LEAD_LOST_REASON_REQUIRED) isteğin tamamı reddedilir. Seçimde verisi imha edilmiş hastaya ait lead varsa istek 409 CUSTOMER_ERASED ile reddedilir.
  • Görmediğiniz veya güncelleme izniniz olmayan lead’ler sessizce atlanır.
  • En fazla 200 kimlikte işlem hemen yapılır: {"queued": false, "moved_count": 5}.
  • 200’den fazla kimlikte iş kuyruğa alınır: {"queued": true, "lead_count": 250}. İş bitince işlemi yapan kullanıcıya uygulama içi bildirim gider.
POST /leads/move-stage-group bir aşamadaki tüm lead’leri başka aşamaya taşır. Gövde source_pipeline_stage_id ve target_pipeline_stage_id (ikisi de aktif pipeline’da ve birbirinden farklı) ile gerekirse lost_reason içerir. İş her zaman kuyruğa alınır ve {"queued": true} döner. Kaynak aşamada görebildiğiniz dönüşmüş bir lead varsa istek LEAD_ALREADY_CONVERTED ile reddedilir. Görmediğiniz dönüşmüş lead’ler kaynak aşamada kalır.

Atama ve toplu atama

Atanabilir kullanıcı, ReceiveLeads:Lead iznine sahip bir klinik üyesidir; super_admin rolü hariçtir. Aday listesi için GET /leads/assignable-users kullanın (search, per_page, page). Yalnızca aktif kullanıcılar gelir. email alanı yalnızca Assign:Lead iznine sahip çağıranlara döner.

Tek lead atama

POST /leads/{id}/assign gövdesi: Yanıt data içinde lead ve cap_exceeded döner. Yeni sahip AutoAssignLeads:Lead iznine sahipse ve aktif lead sayısı sınırına ulaşmışsa cap_exceeded true olur. Atama yine de yapılır; sınır yalnızca otomatik atamayı engeller. Dönüşmüş lead atanamaz (LEAD_ALREADY_CONVERTED).
PUT /leads/{id} ile assigned_user_id değiştirmek yalnızca sahibi değiştirir. Görev ve not devri yapmaz, sınır kontrolü uygulamaz. Alanı göndermek Assign:Lead izni ister. Devirli atama için /assign kullanın.

Toplu atama

POST /leads/bulk-assign gövdesi lead_ids[], assignment_type (specific veya auto) ve task_action alanlarını taşır.
  • specific: assigned_user_id zorunludur ve kullanıcı View:Lead iznine sahip aktif bir klinik üyesi olmalı. Aksi halde LEAD_ASSIGNEE_INVALID döner. Dönüşmüş lead’ler, güncelleyemediğiniz lead’ler ve zaten bu kullanıcıda olanlar atlanır.
  • auto: her lead, en az yüklü uygun temsilciye gider. Klinik modu Manuel (otomatik atama yok) ise dağıtım Rastgele moduyla aynı şekilde yapılır. Uygun temsilcisi olmayan lead’ler atlanır.
  • En fazla 200 kimlikte yanıt {"queued": false, "assigned_count": 8, "cap_exceeded_count": 1} (specific) ya da {"queued": false, "assigned_count": 8, "skipped_count": 2} (auto) olur.
  • 200’den fazla kimlikte iş kuyruğa alınır: {"queued": true, "lead_count": 250}. Bitince bildirim gelir.
  • Seçimde verisi imha edilmiş hastaya ait lead varsa istek 409 CUSTOMER_ERASED ile reddedilir.
Görevler toplu atamada her görev için ayrı değil, yeni sahip başına tek özet bildirimle (Size 5 görev atandı) iletilir.

Dönüştürme

POST /leads/{id}/convert lead’i hastaya çevirir. Lead’in kazanıldı aşamasında olması gerekir; önce /won çağırın. Aksi halde 422 LEAD_NOT_CONVERTIBLE döner. İki scope birden gerekir: leads:write ve customers:write. Convert:Lead izni hasta oluşturmayı da kapsar; ayrıca Create:Customer aranmaz. Gövde tek isteğe bağlı alan taşır: existing_customer_id. Her API lead’inin kişi kaydı olduğu için bu alan yalnızca kişi kaydı olmayan (içe aktarılmış ya da eski) lead’lerde işe yarar.
Yanıt data içinde şunları döner: Dönüşümün etkileri:
  • Lead converted_at ve converted_by_user_id alanlarını alır, aşaması kazanıldı olur ve kayıp bilgileri temizlenir.
  • Lead’in notları ve dosyaları hastaya kopyalanır. Görevler kopyalanmaz; hastanın görevleri arasında lead üzerinden görünür.
  • İşlem tekrarlanabilir. Zaten dönüşmüş lead için aynı hasta matched_existing ile döner.
  • Dönüşümü geri alan bir uç nokta yoktur.
  • Satış temsilcisi rolündeki bir kullanıcı, existing_customer_id ile başka bir temsilcinin lead aşamasındaki kişi kaydını seçemez (403 LEAD_NOT_ASSIGNED).
Kliniğin otomatik dönüşüm modu, API çağrısı olmadan da dönüşüm başlatabilir. Randevu oluşturulduğunda modunda lead için randevu açılınca, Satış oluşturulduğunda modunda lead için satış açılınca lead hastaya çevrilir. Varsayılan mod Yalnızca manuel’dir.
Lead hastaya dönüşmeden, lead’in kişi kaydı için satış, fatura veya hastaya ait finansal işlem oluşturulamaz. İstek 422 LEAD_FINANCIAL_BLOCKED döner. Kliniğin dönüşüm modu Satış oluşturulduğunda ise satış bu kuralın dışındadır; lead önce otomatik dönüştürülür.

Silme

DELETE /leads/{id} lead’i, notlarını, görevlerini ve dosyalarını siler. Lead dönüşmemişse arka plandaki kişi kaydı da silinir. Dönüşmüş lead’de hasta korunur ve lead görevleri hastaya geçer. Silmeden önce GET /leads/{id}/deletion-relations ile etkilenecek kayıtları görebilirsiniz. Kalıcı silme uç noktası yoktur. Yaşam döngüsü için Silme yaşam döngüsü sayfasına bakın. POST /leads/bulk-delete gövdesinde 1–100 benzersiz lead_ids[] alır, her lead’i tek tek işler ve kişi kayıtlarını silmez. Yanıt success_count, failed_count ve results[] döner. Her sonuç lead_id, success ile başarısızsa error_code ve message taşır.

Hata kodları

Hata yanıtı {"success": false, "error_code": "...", "message": "..."} biçimindedir. Genel hata yapısı için Hata kodları sayfasına bakın.
VALIDATION_FAILED yanıtlarında bazı mesajlar dilden bağımsız olarak İngilizce gelir. Örnekler: You are not allowed to assign leads. ve The selected user cannot be assigned leads.. Kodu ve errors alan adlarını esas alın, metni değil.
İlgili sayfalar: İzinler ve görünürlük, Satış temsilcileri, Gelen lead webhook’u.