private-chat-log.{tenantId} kanalında tetiklenir.
Event adları tam nitelikli biçimde yayınlanır:
App\Events\ChatLogCreated. Bazı Pusher istemcilerinde bu adlarla dinlemek için isim başına nokta (.) koymak gerekir: .listen(".App\\Events\\ChatLogCreated", ...). Doğrudan Pusher client kullanıyorsanız nokta olmadan bind("App\\Events\\ChatLogCreated", ...) yazın.ChatLogCreated
Bir tenant içinde yeni bir chat_log satırı oluştuğunda tetiklenir. Bu event:
- Panel kullanıcısı bir mesaj gönderdiğinde,
- Hasta tarafından bir mesaj geldiğinde (WhatsApp/Telegram),
- AI asistanı bir yanıt ürettiğinde
Payload
Payload, ChatLog API modeli’nin serileştirilmiş halidir. İstisnai olarak, modelin tüm ilişkileri otomatik yüklenmez — yalnızca varsayılan alanlar gelir.Tipik kullanım
ChatLogDeleted
Bir mesaj soft-delete edildiğinde tetiklenir.
Payload
Silinen mesajın ID’si.
Silinen mesajın ait olduğu görüşmenin ID’si.
Silme işlemini yapan kullanıcının adı. Sistem tarafından silinmişse
null gelebilir.Tipik kullanım
ConversationRead
Bir kullanıcı görüşmeyi “okundu” olarak işaretlediğinde tetiklenir. Aynı kullanıcının farklı cihazlarda açık olan sekmelerini veya farklı panel kullanıcılarının paylaşılan görüşme ekranını senkronlamak için kullanışlıdır.
Payload
Okundu olarak işaretlenen görüşmenin ID’si.
Tipik kullanım
Event özet tablosu
| Event | Payload alanları | Ne zaman tetiklenir? |
|---|---|---|
App\Events\ChatLogCreated | Tam ChatLog model şeması | Yeni mesaj oluştuğunda |
App\Events\ChatLogDeleted | chatLogId, conversationId, deletedByUserName | Mesaj soft-delete edildiğinde |
App\Events\ConversationRead | conversation_id | Görüşme okundu olarak işaretlendiğinde |
Sık sorulanlar
Bir event'i kaçırırsam geri alabilir miyim?
Bir event'i kaçırırsam geri alabilir miyim?
WebSocket teslim edilmemiş event’leri kuyrukta tutmaz. Yeniden bağlandığınızda eksikleri REST üzerinden doldurun — örneğin
GET /v1/conversations/{id}/messages?after=<lastMessageId>.Hangi ortamdayım nasıl anlarım?
Hangi ortamdayım nasıl anlarım?
Kanal adı tenant’a göre değişir; ortama göre değişmez. Ortam farkı endpoint (
dev.flextell.ai vs app.flextell.ai) ve Pusher key üzerinde olur. Bkz. Ortamlar.Event payload'ı içinde gönderen kullanıcıyı nasıl bulurum?
Event payload'ı içinde gönderen kullanıcıyı nasıl bulurum?
ChatLogCreated payload’ında sender_type ve sender_id gelir. Gönderenin detaylı bilgisine ihtiyacınız varsa (isim, avatar vs.), REST tarafında GET /v1/users/{id} veya GET /v1/customers/{id} ile çekebilirsiniz. Sık tekrar eden bu çağrıları istemci tarafında cache’leyin.Neden event adları bu kadar uzun?
Neden event adları bu kadar uzun?
Flextell bilinçli olarak tam nitelikli event adı (ör.
App\Events\ChatLogCreated) yayınlar. Bu sayede ileride bir event adını değiştirmeye kalkarsak istemciler kırılmayı fark eder ve sessizce yanlış event’i dinlemez. İstemci kodunuzda event adlarını bir sabit olarak tutmak iyi bir pratiktir.