Skip to main content
Entegrasyon kataloğu, Flextell’in desteklediği servisleri listeler: Google Calendar, Gmail, Nilvera ve NES e-Fatura, WhatsApp, Telegram, Website, Zapier ve diğerleri. Katalog tüm klinikler için ortaktır. Bağlantı ise kliniğinize ait bir kayıttır: dış bir sistemin Flextell’e kayıt göndereceği adresi, gizli anahtarı ve alan eşlemesini tutar. Bugün yalnızca Zapier bağlantı oluşturmaya açıktır. Bağlantıyla gelen kayıtlar Lead olarak yazılır. Zapier’dan veya kendi sisteminizden kayıt gönderen entegratörler bu sayfadaki uç noktaları kullanır. Kayıt gönderme adresinin kendisi için bkz. Gelen lead webhook’u. Her istek 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çin integration_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.
rotate-secret çağrısından sonra eski gizli anahtar hemen geçersiz olur. Dış sistemdeki X-Flextell-Secret başlık değerini yeni anahtarla güncelleyin; aksi hâlde gönderimler 401 alır.

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_mapping en çok 200 satır içerir. source en çok 255, target en çok 100 karakterdir ve target, integration-entities yanıtındaki bir anahtar olmalıdır.
  • Birden çok kaynak aynı hedefe eşlenirse description ve message değ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_name ve last_name sütunları full_name sütunundan önceliklidir. full_name değ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_value yerel 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’ın id değerini alın.
Bu eşlemeyle gelen {"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.