Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıklarını taşır. Bkz. Klinikler ve X-Tenant.
Endpoint özeti
Bu izinler yalnızca seçtiğiniz klinik (
X-Tenant) için aranır. Başka bir kliniğin bağlantısını istediğinizde 404 alırsınız. Panel karşılığı için bkz. Panel: Entegrasyonlar.
Entegrasyon kataloğu
GET /v1/integrations sayfalanmaz ve ada göre sıralı döner. Pasif entegrasyonlar da listede yer alır; kullanılabilir olup olmadığını is_active alanından anlarsınız.
Yanıttaki önemli alanlar:
GET /v1/integrations/{id} geçersiz bir id (abc, 0, -1, 1.5) için 422, olmayan kayıt için 404 döner.
Bağlantılar
Bağlantı oluşturmak içinintegration_id olarak connection_method değeri dolu ve is_active değeri true olan bir entegrasyon seçin.
Bağlantı yaşam döngüsü
Yeni bağlantı her zaman
draft olarak başlar. draft durumuna geri dönüş yoktur. rotate-secret durumu değiştirmez.
Bağlantı nesnesi
Listeleme
GET /v1/integration-connections yanıtı sayfalanır. Genel kurallar için bkz. Sayfalama ve Filtreleme ve sıralama.
Oluşturma, güncelleme ve silme
POST /v1/integration-connections gövdesi:
Yanıt
201 ve draft durumundaki bağlantıdır; inbound_url ve secret alanları dolu gelir.
PUT isteğinde göndermediğiniz alanlar değişmez. field_mapping ve settings gönderdiğinizde saklı değerin yerine geçer (birleştirilmez). field_mapping: [] eşlemeyi temizler. external_id_path: null kayıt kimliğiyle güncellemeyi kapatır.
DELETE bağlantıyı siler: adres artık 404 döner. Bağlantıyla önceden oluşturulmuş Lead’ler silinmez. Silinen bağlantının bekleyen kayıtları hiç işlenmez.
Etkinleştirme, duraklatma
activate, eşlemede en az bir kimlik alanı (bir sonraki bölüme bakın) yoksa reddedilir. Çağrı tekrarlanabilir: bağlantı zaten active ise de bekleyen (pending) tüm kayıtlar yeniden işleme alınır. pause her durumdan çağrılabilir.
Alan eşleme
Eşleme, dış sistemin gönderdiği alanları (source) Flextell’in Lead alanlarına (target) bağlar. Akış şöyledir:
1
Bağlantıyı oluşturun
POST /v1/integration-connections ile draft bağlantı açın. inbound_url ve secret değerlerini dış sisteme tanımlayın.2
Örnek kayıt gönderin
Dış sistemden en az bir kayıt gönderin.
GET .../source-fields çağrısı records_count değerini ve gelen alanları döndürür.3
Alanları eşleyin
GET /v1/integration-entities ile hedef alanları öğrenin, ardından PUT ile field_mapping gönderin.4
Etkinleştirin
POST .../activate çağrısı bekleyen kayıtları işleme alır, sonraki kayıtlar geldikçe işlenir.Kaynak alanlar
GET .../source-fields, bağlantıya gelen son 25 kaydın alanlarını birleştirir. Yanıt {records_count, fields: [{path, example}]} biçimindedir. example ilk dolu değerdir; en çok 200 karakter, değer boşsa null. İç içe nesneler nokta yoluyla yazılır (contact.phone), nesne listeleri sıra numarasıyla (items.0.sku).
Hedef alanlar
GET /v1/integration-entities yanıtı her kayıt türü için fields, identity_fields ve settings döndürür. Lead için hedef alanlar:
Kimlik alanları
full_name, first_name, last_name, phone_number ve email alanlarıdır. Etkinleştirmek için bunlardan en az birini eşlemelisiniz.
Eşleme kuralları:
field_mappingen çok 200 satır içerir.sourceen çok 255,targeten çok 100 karakterdir vetarget,integration-entitiesyanıtındaki bir anahtar olmalıdır.- Birden çok kaynak aynı hedefe eşlenirse
descriptionvemessagedeğerleri satır sonuyla birleştirilir; diğer hedeflerde ilk dolu değer alınır. Panel aynı alana iki sütun eşlemenize izin vermez. - Ad: ayrı
first_namevelast_namesütunlarıfull_namesütunundan önceliklidir.full_namedeğerinin son sözcüğü soyad olur; tek sözcük ad sayılır. - Telefon numarası normalleştirilir; hiç rakam içermiyorsa veya 50 karakteri aşıyorsa atılır. E-posta küçük harfe çevrilir; geçersizse veya 255 karakteri aşıyorsa atılır. Metinler 255 karaktere kısaltılır.
expected_valueyerel biçimleri (1.250,50) ve para birimi simgelerini kabul eder; anlaşılmazsa atılır.- Meta sütunlarındaki
c:,as:,ag:,f:önekleri kimliklerden temizlenir.
Kayıt kimliği yolu
external_id_path, dış sistemin kendi kayıt kimliğini taşıyan alanın yoludur (örneğin id). Tanımlarsanız aynı kimlikle gelen kayıt yeni Lead açmaz, mevcut Lead’in tüm eşlenen değerlerini günceller. Aşama, atanan kişi ve kaynak değişmez. Tanımlamazsanız yinelenen kayıtlar yalnızca telefon veya e-posta eşleşmesiyle birleşir.
Bağlantı ayarları
settings alanındaki tüm anahtarlar isteğe bağlıdır. Ayarlar sonradan geçersiz olursa (aşama silindi, pipeline pasife alındı, kullanıcı artık atanamıyor) işleme sırasında sessizce varsayılana döner.
Lead kaynağı seçmezseniz sırasıyla şu kaynak kullanılır: Meta alanı eşlenmişse
Meta Ads, aksi hâlde entegrasyon adıyla oluşturulan kaynak (örneğin Zapier). Atanan kişi boşsa kliniğin otomatik atama kuralları çalışır.
Gelen kayıtlar
Dış sistemin gönderdiği her kayıt ham hâliyle saklanır, sonra Lead’e dönüştürülür.GET .../records kayıtları yeniden eskiye sıralı ve sayfalı döndürür.
Kayıt durumları
Sonuçlar
Birleştirmede önce telefona, sonra e-postaya bakılır; aynı klinikteki silinmemiş ve en eski Lead seçilir.
merged_pipeline_stage_id doluysa ve Lead hastaya dönüştürülmediyse Lead o aşamaya taşınır.
Yeniden deneme
POST .../records/retry yalnızca failed kayıtları yeniden pending yapar ve {"queued": n} döner. Gövdede record_ids (en çok 500 tamsayı) verirseniz yalnızca onlar denenir; vermezseniz tüm hatalı kayıtlar denenir. Başka durumdaki veya başka bağlantıdaki kimlikler sessizce yok sayılır. Bağlantı active değilse kayıtlar etkinleştirmeyi bekler.
Hata mesajları
İlk mesajda eşlediğiniz sütunların değerleri boş olabilir ya da geçersiz oldukları için atılmış olabilir (geçersiz e-posta, rakamsız telefon). Eşlemeyi düzeltin ve
records/retry çağırın.
Lead detay yanıtında integration_source alanı Lead’in geldiği bağlantıyı gösterir: {connection_id, connection_name, integration, external_id}. Alan yalnızca external_id_path tanımlıysa dolar.
Hatalar
INTEGRATION_CONNECTION_MAPPING_INCOMPLETE mesajı: Bağlantıyı etkinleştirmeden önce en az bir ad, telefon veya e-posta alanını eşleştirin. Kayıt gönderme adresinin hataları (401, 413, 429 ve diğerleri) için bkz. Gelen lead webhook’u. Genel hata biçimi için bkz. Hata kodları.
Örnek
Zapier bağlantısı oluşturup eşleyin ve etkinleştirin. Önce kataloğdan Zapier’ınid değerini alın.
{"id":"r1","name":"Ayşe Yılmaz","phone":"05xx xxx xx xx"} kaydı yeni bir Lead olarak yazılır ve r1 kayıt kimliği olarak saklanır. Aynı id ile gelen sonraki kayıt bu Lead’i günceller.