Skip to main content
Bir Form Şablonu, kliniğin hastaya doldurttuğu formun taslağıdır: başlık, açıklama ve sıralı sorular. Şablondan bir form linki oluşturduğunuzda, hastanın dolduracağı bir hasta formu doğar. Hasta linki açıp formu gönderdiğinde form completed durumuna geçer ve yanıtlar kaydedilir. Bu sayfa, entegrasyon geliştiricisi olarak şablonları yönetmeyi, link üretmeyi ve doldurulan formları okumayı anlatır. Hastanın linki açtığı herkese açık uçlar (/public/forms/{token}) için herkese açık hasta formları sayfasına bakın. Uçtan uca akış için hasta formu gönderme rehberini izleyin. Panelde şablonlar için Form Şablonları, doldurulan formların listesi için Doldurulan Formlar sayfaları vardır; panelde link üretme ve yanıtları görüntüleme henüz çalışmaz. Tüm isteklerde Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıkları gerekir. Ayrıntılar için başlıklar sayfasına bakın.

Endpoint özeti

Taban adres https://app.flextell.ai/api/v1 şeklindedir.
customer_forms:write adlı bir scope yoktur. Link oluşturma form_templates:write, form okuma customer_forms:read scope’u ile yapılır. Soru ekleme, düzenleme ve silme için ayrı bir izin yoktur; hepsi Update:FormTemplate ister.

Form şablonları

Şablon nesnesi

Listeleme

GET /form-templates sayfalı bir koleksiyon döndürür; liste satırlarında questions yoktur. Genel sayfalama kuralları için sayfalama sayfasına bakın.

Oluşturma, güncelleme, silme

POST /form-templates gövdesinde name ve is_active zorunludur; description isteğe bağlıdır. PUT kısmi çalışır: yalnızca gönderdiğiniz alanlar değişir.
Başarılı yanıt 201 ile oluşan şablonu döndürür. Silme yumuşaktır ve şablonun doldurulmuş formları olsa bile çalışır; yanıt {"success": true, "data": {"message": "Form şablonu başarıyla silindi"}} biçimindedir. Silinen şablondan üretilmiş linkler açılmaz (404).
is_active bu uçlarda link oluşturmayı veya formu doldurmayı engellemez. Pasif şablondan da link üretebilirsiniz. Aktiflik, AI asistanın ve randevu öncesi form ayarlarının kullanabileceği şablonları belirlemek için denetlenir.

Sorular ve seçenekler

Bir şablonun soruları questions dizisinde order alanına göre sıralı gelir. Soru ekleme ve güncelleme ayrı uçlardan yapılır; şablon güncellemesi soruları değiştirmez.

Soru nesnesi

Soru türleri

Soru ekleme

POST /form-templates/{id}/questions gövdesinde label, question_type, required ve order zorunludur. options içindeki her öğede label ve order bulunur. Tüm soru, seçenekleri ve kurallarıyla tek işlemde oluşturulur.

Soru güncelleme ve silme

PUT kısmi çalışır. Seçenek ve kural alanları gönderildiğinde şöyle davranır:
Güncellemede options göndermeniz, listede olmayan seçenekleri siler. Mevcut seçenekleri korumak istiyorsanız hepsini id’leriyle birlikte gönderin.
DELETE soruyu siler. Daha önce kaydedilmiş yanıtlar korunur.

Görünürlük kuralları

Bir soru, başka bir sorunun yanıtına göre gösterilip gizlenebilir. Kuralı olmayan soru her zaman görünür. Kurallar şu şekilde çalışır:
  • Bir sorunun birden çok kuralı varsa hepsi, ilk kuralın match_type değeriyle birleştirilir. Yanıtta bu değer sorunun visibility_match_type alanında görünür.
  • Gizli bir soru yanıtlanmamış sayılır. Gizli bir soruya bağlı soru da gizlenir.
  • Gizli sorular doğrulanmaz ve gönderilen yanıtları atılır.
Aşağıdaki örnek, 456 numaralı sorunun “Evet” seçeneğine (id 789) bağlı bir soru ekler.
Kural, bağımlı olduğu sorudan önce eklenemez: depends_on_question_id mevcut bir soruyu göstermelidir. Önce bağımlı olunan soruyu ve seçeneklerini oluşturun, yanıtta dönen id’leri kuralda kullanın.

Form linki oluşturma

POST /form-templates/{id}/links şablondan bekleyen (pending) yeni bir form üretir ve hastanın açacağı linki döndürür. customer_id isteğe bağlıdır.
token, 6 karakterlik büyük harf ve rakamdan oluşur ve herkese açık uçlarda {token} olarak kullanılır. url, hastanın açacağı formun adresidir. Linki hastaya kendiniz iletirsiniz, örneğin bir sohbet mesajıyla.
Her çağrı yeni bir form ve yeni bir token üretir. Aynı hasta için tekrar çağırmak, bekleyen ilk formu yeniden kullanmaz.
Panelde Form Şablonları listesindeki Bağlantı Oluştur işlemi şu an link üretmez, yalnızca Bağlantı oluşturma şu anda kullanılamıyor. uyarısını gösterir. Link üretmek için bu uç noktayı kullanın.
Genel hata kodları için hata kodları sayfasına bakın.

Doldurulan formlar

Hasta formu üç durumdan birinde olur. Form hastanın kendisi, personel veya AI asistan tarafından doldurulabilir. Listelerde filled_by_user_id dolu ise formu bir personel doldurmuştur; is_ai_generated true ise AI asistan doldurmuştur; ikisi de boşsa hasta kendi doldurmuştur.

Kliniğin tüm formları

GET /customer-forms yalnızca customer_forms:read scope’u ve View:CustomerForm izni ister. Yanıt normal bir sayfalı koleksiyondur ve yanıtları içermez. Her satırın alanları:

Bir hastanın formları ve yanıtlar

Yanıtları yalnızca hasta bazlı detay ucu döndürür.
Yanıtın data alanı; template.questions[] (seçenekleri ve görünürlük kurallarıyla), answers[] (her biri question ile), customer, assigned_by_user ve filled_by_user ilişkilerini içerir. Soru tek seçimliyse yanıt, seçeneğin id’si olarak kayıtlıdır; seçeneğin metnini şablondaki options listesinden eşleştirin. Evet/Hayır sorusunda “Hayır” yanıtı 0 olarak gelir ve yanıtsız anlamına gelmez. GET /customers/{customerId}/form aynı hastanın formlarını listeler. status, template_id, sort_by (id, status, completed_at, created_at, updated_at), sort_order, per_page ve page parametrelerini kabul eder.
Hasta bazlı iki uç, genel /customer-forms ucundan farklı bir biçimde yanıt verir. Liste, sayfalayıcıyı data içinde taşır, yani satırlara data.data[] ile ulaşırsınız. Satırlar, token dahil modelin tüm alanlarını ham hâliyle içerir. İki yanıt biçimini de işleyin.
Bu uçlar hasta görünürlük kuralına tabidir. Bulunamayan, başka kliniğe ait, kapsam dışı ya da lead aşamasındaki bir customerId listede 200 ile boş sonuç, detayda 404 RESOURCE_NOT_FOUND (Hasta formu bulunamadı) döndürür.

Hata kodları

Yetkilendirme modeli için izinler ve görünürlük sayfasına bakın.