> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flextell.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Mesaj şablonları

> Hastaya giden otomatik mesajların şablonlarını, birleştirme etiketlerini, kanal farklarını ve silinen bir sistem şablonunu yeniden oluşturmayı anlatır.

Flextell, randevu bilgilendirmesi, hatırlatma ve engel bildirimi gibi birçok mesajı hastaya kendisi gönderir. Bu mesajların metni **Mesaj Şablonları** ekranında tutulur. Metni değiştirerek kliniğinizin dilini yansıtabilirsiniz.

Ekrana **İletişim Ayarları → Mesaj Şablonları** menüsünden ulaşırsınız. Menüyü görmek için rolünüzde `Görüntüle` izni (grup: **Mesaj Şablonları**) olmalıdır. Oluşturma, düzenleme ve silme için sırasıyla `Oluştur`, `Güncelle` ve `Sil` izinleri gerekir. İzinleri [Roller](/panel/sistem/roller) sayfasından yönetebilirsiniz.

## Mesaj şablonu nedir

Mesaj şablonu, bir olay gerçekleştiğinde hastaya gidecek metindir. Her şablon tek bir **sistem olayına** bağlıdır. Örneğin `appointment.created` şablonu, randevu oluşturulunca giden bilgilendirme mesajıdır.

Şablonun alanları şunlardır:

| Alan | Açıklama |
| - | - |
| **Şablon Adı** | Listede görünen ad. Sonradan değiştirebilirsiniz. |
| **Sistem Adı** | Şablonun hangi olay için kullanılacağını belirler. Şablon oluşturulduktan sonra değiştirilemez. |
| **Konu** | Yalnızca panelde, kart önizlemesinde ve aramada kullanılır. Hastaya giden mesajda yer almaz; mesajın metni **İçerik Metni** alanından oluşur. |
| **İçerik Metni** | Hastaya giden metin. Birleştirme etiketleri içerebilir. |
| **Aktif** | Kapalıysa şablon gönderimlerde kullanılmaz. |

<Note>
  Her yeni klinik, tüm sistem şablonlarıyla hazır gelir. Çoğu zaman yeni şablon açmanız gerekmez; mevcut şablonun metnini düzenlemeniz yeterlidir.
</Note>

## Sistem şablonları ve kullanıldıkları yerler

Liste ekranı kart görünümündedir. Her kartta şablon adı, altında olayın teknik anahtarı (örneğin `appointment.updated`), sohbet balonu biçiminde bir önizleme, son güncelleme tarihi ve **Aktif** ya da **Pasif** rozeti bulunur. Karta fare ile gelince etiketler örnek değerlerle (örneğin "Ayşe Yılmaz") gösterilir. Bunlar yalnızca önizleme içindir.

Kartlar en son oluşturulan en üstte olacak şekilde sıralanır. Arama kutusu (**Şablon adı veya konu**) ve **Aktiflik** filtresiyle listeyi daraltabilirsiniz.

| Panelde görünen ad | Anahtar | Ne zaman gider |
| - | - | - |
| Randevu Oluşturma (WhatsApp) | `appointment.created` | Randevu oluşturulurken hastaya bilgi mesajı gönderme seçiliyse. |
| Randevu Güncelleme | `appointment.updated` | Randevunun saati, doktoru veya tedavisi değişir ve hastaya mesaj gönderme seçiliyse. |
| Randevu Hatırlatma (Yarın) | `appointment.reminder.tomorrow` | Randevudan bir gün önce, hatırlatma olarak. |
| Randevu Hatırlatma (Offset) | `reminder.offset.generic` | Bir gün dışındaki hatırlatma aralıklarında. |
| Seans Onay Talebi | `session.confirmation.request` | Randevu tamamlanıp sonraki seans planlandığında. |
| İptal Sonrası Takip (30 Gün) | `appointment.cancellation.followup` | İptal nedeniyle iptal edilen randevudan belirli gün sonra (varsayılan 30 gün). |
| Randevu Taşıma Onay Talebi | `reschedule.confirmation.request` | Bir doktorun randevuları toplu taşındığında. |
| Engel Bilgilendirme (Genel) | `blacklist.blocked.generic` | Hasta bir kanalda engellendiğinde. |
| Dosya Onay Mesajı | `media.ack` | Hasta yalnızca dosya gönderdiğinde ve AI asistan etkin olduğunda. |
| Form Fotoğrafları Eksik/Tamamlanmalı | `form.photo.reminder` | AI asistan fotoğraf istedikten sonra gelen fotoğraf sayısı yetersizse. |
| Form Fotoğrafları Tamamlandı | `form.photo.success` | Gerekli fotoğraflar tamamlandığında. |
| Satış Yönlendirme Onayı | `sales.gatekeeping.success` | AI asistan ön görüşmeyi tamamlayıp hastayı ekibe yönlendirdiğinde. |
| İlk Karşılama Mesajı (Ön Kayıt) | `intake.welcome` | Sohbetteki ilk AI yanıtının başına eklenir. |
| Flexy Kapatma Mesajı | `support.handoff.human` | AI asistan sohbeti bir personele devrettiğinde. |
| Destek Talebi Çözüldü | `ticket.resolved` | Atanmış bir Destek Talebi çözüldü durumuna geçtiğinde. |
| Veri İmha Doğrulama | `data.erasure.verification` | Veri İmha Talebi oluşturulduğunda veya doğrulama bağlantısı yeniden gönderildiğinde. |
| Engel Bilgilendirme (Geçici) | `blacklist.blocked.temporary` | Şu anda hiçbir otomatik gönderimde kullanılmıyor. |
| Konum Gönderildi | `tenant.location.sent` | Şu anda hiçbir otomatik gönderimde kullanılmıyor. |
| Hasta Formu Linki | `customer.form.link` | Şu anda hiçbir otomatik gönderimde kullanılmıyor. |

<Info>
  `support.handoff.human` olayı **Sistem Adı** listesinde "Flexy Kapatma Mesajı" adıyla görünür. `data.erasure.verification` olayı bu listede hiç yer almaz; kartı yine de listelenir ve teknik anahtarıyla gösterilir.
</Info>

### Mesajın hastaya ulaşması

Şablon doğru olsa bile mesajın gitmesi için bazı koşullar gerekir.

* Şablon **Aktif** olmalıdır. Etkin şablon bulunamazsa mesaj gönderilmez.
* Flextell hastanın ulaşılabilir kanalını sırayla arar: randevuda seçtiğiniz kanal, hastanın son yazdığı kanal, hastanın varsayılan kanalı, kliniğin varsayılan kanalı, ardından bağlı herhangi bir kanal. Kanal bağlı (açık) olmalıdır. Kanalları [Kanallar](/panel/baglantilar/kanallar) sayfasından kontrol edin.
* Sohbette AI asistan kapalıysa (bir personel sohbeti devraldıysa) bazı otomatik mesajlar gönderilmez. Randevu güncelleme, toplu taşıma onayı ve dosya onay mesajı bu gruptadır.
* Randevu mesajının kanalını randevu formundan seçersiniz. Ayrıntı için [Randevu oluşturma](/panel/randevular/olusturma) sayfasına bakın.

Gönderilmeyen mesajları araştırmak için [Mesajlar ve hatırlatmalar](/panel/sorun-giderme/mesajlar-ve-hatirlatmalar) sayfasını kullanın.

## Şablonu düzenleme

<Steps>
  <Step title="Şablonu bulun">
    **İletişim Ayarları → Mesaj Şablonları** ekranında kartı arayın. Karttaki küçük gri satır olayın teknik anahtarıdır.
  </Step>

  <Step title="Düzenleme ekranını açın">
    Karta tıklayın veya karttaki **İşlemler** menüsünden **Düzenle**'yi seçin.
  </Step>

  <Step title="Metni değiştirin">
    **Şablon Adı**, **Konu** ve **İçerik Metni** alanlarını düzenleyin. Hastanın adı gibi değişen bilgiler için etiket ekleyin (bir sonraki bölüme bakın).
  </Step>

  <Step title="Şablonun açık olduğunu doğrulayın">
    **Aktif** anahtarının açık olduğundan emin olun.
  </Step>

  <Step title="Kaydedin">
    **Kaydet**'e basın. "Mesaj şablonu güncellendi" bildirimi görünür ve düzenleme sayfasında kalırsınız.
  </Step>
</Steps>

Düzenleme ekranında **Sistem Adı** salt okunurdur. **Vazgeç** değişiklikleri kaydetmeden, uyarı vermeden listeye döner.

<Warning>
  Metindeki bir etiketi silerseniz hasta mesajında o bilgi yer almaz. Olayın tanımadığı bir etiket ise mesajda boş görünür.
</Warning>

### Silme

Kartın **İşlemler → Sil** seçeneği şablonu siler. Silme penceresi Geri Dönüşüm Kutusu'ndan söz eder. Mesaj şablonlarının geri yüklenmesine güvenmeyin; gerekirse aşağıdaki yöntemle yeniden oluşturun. Düzenleme sayfasında **Sil** düğmesi yoktur.

## Birleştirme etiketleri

Etiketler, mesaj gönderilirken gerçek bilgiyle değişen yer tutuculardır. Editörde `{{ customerName }}` biçiminde bir parça olarak görünür.

Etiket eklemek için editörün araç çubuğundaki `{ }` (**Değişkenler**) düğmesine basın. Açılan panelde seçtiğiniz olaya uygun etiketler listelenir. Etikete tıklayınca imlecin bulunduğu yere eklenir.

<Warning>
  Metne elle `{{ customerName }}` yazmak etiket eklemez. Etiketi **Değişkenler** panelinden ekleyin.
</Warning>

| Etiket | Anlamı | Hastada görünen değer |
| - | - | - |
| `customerName` | Hasta Adı | Hastanın adı ve soyadı |
| `tenantName` | Klinik Adı | Kliniğinizin adı |
| `appointmentDate` | Randevu Tarihi | `12.07.2026` biçiminde |
| `appointmentTime` | Randevu Saati | `14:15` biçiminde |
| `treatmentName` | Tedavi Adı | Tedavi adları, birden fazlaysa virgülle |
| `doctorName` | Doktor Adı | Randevudaki doktor |
| `session_order` | Seans Sırası | Seans numarası |
| `sessionType` | Seans Tipi | Kontrol, İşlem, Tedavi, Konsültasyon, Takip, Acil veya Ameliyat; belirtilmemişse "Seans" |
| `planned_date`, `planned_time` | Planlanan Tarih, Planlanan Saat | Sonraki seansın planlanan zamanı |
| `oldDate`, `oldTime` | Eski Randevu Tarihi, Eski Randevu Saati | Taşınmadan önceki zaman |
| `newDate`, `newTime` | Yeni Randevu Tarihi, Yeni Randevu Saati | Önerilen yeni zaman |
| `reasonText` | Engel Nedeni | Engelleme nedeni |
| `mediaCount` | Dosya Sayısı | Alınan dosya veya fotoğraf sayısı |
| `requiredPhotoCount` | Gerekli Fotoğraf Sayısı | İstenen en az fotoğraf sayısı |
| `remainingPhotoCount` | Kalan Fotoğraf Sayısı | Eksik kalan fotoğraf sayısı |
| `maxPhotoCount` | Maksimum Fotoğraf Sayısı | Gönderilebilecek en çok fotoğraf sayısı |
| `ticketCode` | Destek Talebi Kodu | Destek Talebinin kodu |
| `formName`, `formUrl` | Form Adı, Form Linki | Form adı ve bağlantısı |
| `erasureUrl`, `erasureExpiresAt` | Veri İmha Onay Linki, Onay Linki Son Geçerlilik | Doğrulama bağlantısı ve son geçerlilik zamanı |

* **Değişkenler** paneli her olay için yalnızca o olayla ilgili etiketleri sunar ve bazı etiketleri hiç sunmaz. `blacklist.blocked.temporary`, `tenant.location.sent`, `form.photo.success`, `ticket.resolved`, `intake.welcome` ve `support.handoff.human` olaylarında panelde etiket yoktur (`Değişkenler` düğmesi görünmez). `sales.gatekeeping.success` için panel yalnızca `requiredPhotoCount` etiketini sunar.
* Panelin sunmadığı etiketler (örneğin `ticket.resolved` için `ticketCode`, `customerName`, `tenantName` ya da `data.erasure.verification` için tüm etiketler) varsayılan metinde zaten bulunur. Mevcut şablonu düzenlerken bu etiketleri silmeyin. Silinmiş bir şablonu yeniden oluştururken panel bu etiketleri eklemenize izin vermez.
* Tarih her zaman `gün.ay.yıl`, saat `saat:dakika` biçiminde ve klinik saat diliminde yazılır. Ayarlardaki tarih biçimi bu mesajlarda kullanılmaz.
* Varsayılan randevu metinleri `sessionType` etiketini kullanır. Bu etiket **Değişkenler** panelinde listelenmez, ancak metinde kalır ve düzenlerken korunur.

### Kanala göre biçim farkı

Aynı şablon her kanala o kanalın destekleyebildiği biçimde gider. Editörde yalnızca **Kalın** biçimi vardır.

| Kanal | Kalın metin hastaya nasıl gider |
| - | - |
| WhatsApp | `*kalın*` biçiminde; satır sonları korunur. |
| Telegram | Telegram'ın desteklediği biçimlendirmeyle. |
| Web sitesi ve Instagram | Düz metin olarak; kalın biçim görünmez. |

Şablon metni çevrilmeden, yazdığınız gibi gönderilir. Her şablon için tek metin yazarsınız; hastanın diline göre otomatik çeviri yapılmaz.

## Yeni şablon oluşturma

Her olay için kliniğinizde yalnızca bir şablon bulunabilir. Bu yüzden yeni şablon açmak çoğunlukla silinmiş bir şablonu yerine koymak içindir.

<Steps>
  <Step title="Formu açın">
    **İletişim Ayarları → Mesaj Şablonları** ekranında **Yeni Şablon**'a basın. Düğme için `Oluştur` izni gerekir.
  </Step>

  <Step title="Genel bilgileri girin">
    **Şablon Adı**, **Sistem Adı** ve **Konu** alanlarını doldurun. **Aktif** anahtarı varsayılan olarak açıktır.
  </Step>

  <Step title="İçeriği yazın">
    **İçerik Metni** alanına mesajı yazın ve etiketleri **Değişkenler** panelinden ekleyin.
  </Step>

  <Step title="Oluşturun">
    **Oluştur**'a basın. "Mesaj şablonu oluşturuldu" bildirimi görünür ve listeye dönersiniz.
  </Step>
</Steps>

| Alan | Zorunlu | Kural |
| - | - | - |
| **Şablon Adı** | Evet | En fazla 150 karakter. |
| **Sistem Adı** | Evet | Listeden seçilir; her seçenek "Etiket — anahtar" biçiminde gösterilir. Kliniğinizde aynı olay için başka bir şablon varsa kaydedilmez. |
| **Aktif** | Hayır | Varsayılan açık. Kapalı şablon gönderimlerde kullanılmaz. |
| **Konu** | Evet | En fazla 200 karakter. |
| **İçerik Metni** | Evet | Boş bırakılamaz. |

<Note>
  Formdaki alanlar daha uzun metne izin verse de sunucu **Şablon Adı** için 150, **Konu** için 200 karakterden fazlasını kabul etmez. Sınırı aşarsanız alanın altında hata görürsünüz.
</Note>

## Silinen sistem şablonunu yeniden oluşturma

Bir sistem şablonunu sildiyseniz o olay için hastaya mesaj gitmez. Şablonu şu şekilde geri kazanırsınız:

<Steps>
  <Step title="Yeni Şablon'u açın">
    **Mesaj Şablonları** ekranında **Yeni Şablon**'a basın.
  </Step>

  <Step title="Olayı seçin">
    **Sistem Adı** listesinden silinen şablonun olayını seçin. Örneğin güncelleme mesajı için "Randevu Güncelleme — appointment.updated" seçeneğini seçin.
  </Step>

  <Step title="Metni yeniden yazın">
    **Şablon Adı** ve **Konu** alanlarını doldurun, mesajı yazın ve gerekli etiketleri **Değişkenler** panelinden ekleyin.
  </Step>

  <Step title="Oluşturun">
    **Oluştur**'a basın. Şablon **Aktif** olarak kaydedilir ve olay yeniden mesaj göndermeye başlar.
  </Step>
</Steps>

Yeni şablon, silinenin eski metniyle gelmez; metni siz yazarsınız. Aşağıdaki örnek, randevu oluşturma mesajının varsayılan metninin içeriğini gösterir.

<Accordion title="Randevu oluşturma mesajının varsayılan metni">
  Varsayılan metin yaklaşık şöyledir. Parantez içindeki adlar, **Değişkenler** panelinden ekleyeceğiniz etiketlerdir.

  * Merhaba (`customerName`), randevu bilgilendirme detaylarınız aşağıdadır.
  * Klinik: (`tenantName`)
  * Tarih: (`appointmentDate`) Saat: (`appointmentTime`)
  * Tedavi: (`treatmentName`) Seans Tipi: (`sessionType`) Seans: (`session_order`)
  * Doktor: (`doctorName`)
  * Sizi kliniğimizde ağırlamaktan mutluluk duyacağız.
</Accordion>

<Warning>
  `data.erasure.verification` (Veri İmha Doğrulama) olayı **Sistem Adı** listesinde bulunmadığı için panelden yeniden oluşturulamaz. Bu şablonu silmeyin.
</Warning>

Kliniğinizde o olay için zaten bir şablon varsa **Oluştur** reddedilir ve **Sistem Adı** alanının altında İngilizce bir uyarı görürsünüz. Bu durumda listeden mevcut şablonu bulup düzenleyin.

## İlgili sayfalar

<CardGroup cols={2}>
  <Card title="Randevu hatırlatmaları" icon="bell" href="/panel/randevular/hatirlatmalar">
    Hatırlatma mesajlarının kuyruğu ve onay akışı.
  </Card>

  <Card title="Kanallar" icon="plug" href="/panel/baglantilar/kanallar">
    Mesajın gideceği WhatsApp, Telegram ve diğer kanallar.
  </Card>

  <Card title="Mesaj şablonları API'si" icon="code" href="/api/kaynaklar/mesaj-sablonlari">
    Şablonları entegrasyonlardan yönetme.
  </Card>

  <Card title="Mesajlar ve hatırlatmalar" icon="life-buoy" href="/panel/sorun-giderme/mesajlar-ve-hatirlatmalar">
    Giden mesajın neden gitmediğini bulma.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.