Skip to main content
Bu rehber, Flextell API üzerinden yeni bir randevu kaydı oluşturmak için gerekli tüm adımları gösterir. Amaç: belirli bir hasta, doktor, tedavi ve saat ile bir appointment kaydı açmak.
Gerekli scope’lar: customers:read, treatments:read, doctors:read, appointments:write. Aynı çağrıyı sadece appointments:write ile denerseniz bağımlı veriyi listeleyemezsiniz.

Önkoşullar

Randevu oluşturmak için dört bilgiye ihtiyacınız var — hepsi aynı tenant’ta olmalıdır:
  1. Hasta (customer_id)
  2. Doktor (user_id) — o tenant’ta aktif, doctor rolünde ve Google Calendar entegrasyonu bağlı bir kullanıcı
  3. Tedavi(ler) (treatments) — doktora atanmış olmalı
  4. Randevu tarihi (scheduled_at) — ISO 8601 formatında
Takvim entegrasyonu zorunludur. Doktorun Google Calendar hesabı bağlı değilse randevu oluşturma işlemi tamamlanmaz. Randevu oluşturmadan önce hedef doktorun takvimini bağladığından emin olun.

1. Hastayı bul veya oluştur

# Mevcut hastalarda telefon ile arama
curl --get "https://dev.flextell.ai/api/v1/customers" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --data-urlencode "search=+905551234567"
Eşleşme yoksa:
curl --request POST \
  --url "https://dev.flextell.ai/api/v1/customers" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --header "Content-Type: application/json" \
  --data '{
    "first_name": "Ayşe",
    "last_name": "Kara",
    "phone_number": "+905551234567",
    "gender": "female"
  }'

2. Doktorları listele

curl --get "https://dev.flextell.ai/api/v1/doctors" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12"
Dönen id değerlerinden randevunuz için uygun olanı seçin.

3. Tedavileri listele

Tedaviler hem tenant hem de doktor bazında atanmıştır:
curl --get "https://dev.flextell.ai/api/v1/treatments" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --data-urlencode "user_id=7"
Bir tedaviyi o doktora atanmadığı halde treatments listesine koyarsanız 422 alırsınız: “The selected treatment is not assigned to the selected doctor.”

Doktorun takvim entegrasyonu

Flextell’de bir randevu oluşturulduğunda, doktorun panelden bağladığı Google Calendar hesabına otomatik bir etkinlik yazılır. Randevu tarihi, süresi, tedavi adı, hasta adı ve randevu kodunu içeren bir etkinlik, doktorun varsayılan takvimine düşer. Randevunun güncellenmesi veya silinmesi de takvime yansır.
Doktor kullanıcılarınız takvimlerini panelden Entegrasyonlar → Takvim altında bağlayabilir. Şu an yalnızca Google Calendar desteklenmektedir; Outlook Calendar desteği yol haritasındadır.

Randevuyu oluştur

curl --request POST \
  --url "https://dev.flextell.ai/api/v1/appointments" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --header "Content-Type: application/json" \
  --data '{
    "customer_id": 391,
    "user_id": 7,
    "treatments": [22, 35],
    "scheduled_at": "2026-04-25T10:00:00+03:00",
    "status": "scheduled",
    "room_id": 3,
    "description": "Takip kontrolü"
  }'

Yanıt

{
  "success": true,
  "data": {
    "id": 1102,
    "customer_id": 391,
    "user_id": 7,
    "scheduled_at": "2026-04-25T10:00:00+03:00",
    "status": "scheduled",
    "treatments": [
      { "id": 22, "name": "Kontrol Muayenesi" },
      { "id": 35, "name": "Panoramik Röntgen" }
    ],
    "room": { "id": 3, "name": "Muayene 1" },
    "created_at": "2026-04-19T10:30:00+03:00"
  }
}

Tipik doğrulama hataları

HataSebepÇözüm
The selected customer does not belong to this tenant.customer_id farklı bir tenant’taDoğru X-Tenant veya doğru hasta ID
The selected treatment is not assigned to the selected doctor.Tedavi doktora atanmamışÖnce panelden atayın veya farklı tedavi seçin
The scheduled_at field is required.Tarih gönderilmediISO 8601 formatında gönderin
The selected assistant is not valid for this tenant.assistant_id assistant rolünde veya aktif değilAsistansız deneyin

Çift randevu engellemek

Flextell API şu an Idempotency-Key desteklemez; bir “yanlışlıkla iki kez gönderim” senaryosuna karşı kendi tarafınızda kontrol ekleyin. Detay için Idempotency sayfasına bakın:
// "Randevu oluştur" butonunu tıklanırken kilitleyin
if (submitting) return;
submitting = true;
try {
  await api.post("/v1/appointments", payload);
} finally {
  submitting = false;
}

Sonraki adımlar

Hastaya bildirim

Oluşturduğunuz randevuyu WhatsApp üzerinden hastaya duyurun.

Satış açma

Randevuya bağlı bir satış kaydı oluşturun.