Mobil Uygulamaya Canlı Destek Chat Özelliği Nasıl Eklenir?
"Kullanıcılarımız bize WhatsApp'tan yazıyor, uygulama içinden de yazabilsinler" — bu cümleyi hemen her e-ticaret ve hizmet uygulaması projesinde duyuyoruz. Canlı destek özelliği kulağa basit gelir ama arkasında üç ayrı bileşen var: mesajlaşma altyapısı, anlık bildirim sistemi ve destek ekibinin kullanacağı yönetim paneli. Bunlardan biri eksik kalırsa özellik yarım kalmış olur.
Sıfırdan mı, hazır altyapı üzerine mi
WebSocket tabanlı bir mesajlaşma sunucusunu sıfırdan yazmak teknik olarak mümkün ama mesaj teslim garantisi, çevrimdışı mesaj kuyruğu, çoklu cihaz senkronizasyonu gibi detaylar küçük bir ekip için zaman kaybına dönüşebiliyor. Firebase Realtime Database ya da Firestore üzerine kurulu bir chat mimarisi, orta ölçekli projelerde en pratik yol. Mesajlar koleksiyon olarak tutulur, kullanıcı ve destek temsilcisi aynı konuşma odasına (thread) bağlanır, yeni mesaj geldiğinde dinleyici tetiklenir. Büyük ölçekli, yüksek trafikli projelerde ise Sendbird, Stream Chat gibi özel chat SaaS'ları ya da kendi Socket.io tabanlı sunucunuz daha kontrol edilebilir bir seçenek oluyor.
Bildirim olmadan chat eksik kalır
Kullanıcı uygulamayı kapattığında mesaj geldiğini bilmesi gerekiyor, aksi halde chat özelliği kullanılmaz hale gelir. Firebase Cloud Messaging (FCM) push bildirimleri burada devreye giriyor; yeni mesaj yazıldığında backend, ilgili kullanıcının cihaz token'ına anlık bildirim gönderiyor. iOS tarafında bildirim izni akışı Android'den farklı çalışıyor — kullanıcı ilk açılışta izin vermezse sonradan tekrar istemek için ayarlara yönlendirme yapmak gerekiyor. Bu noktada iOS uygulama geliştirme sürecinde bildirim izin metnini ne zaman göstereceğinize dikkat etmek gerekiyor; uygulama açılır açılmaz izin istemek genelde reddediliyor, kullanıcı chat'i ilk kullandığı anda istemek çok daha yüksek kabul oranı veriyor.
Admin tarafı unutulan kısım
Proje toplantılarında genelde kullanıcı tarafı konuşulur, destek ekibinin hangi ekrandan mesajlara cevap vereceği sona bırakılır. Oysa bu panel projenin en çok kullanılacak parçası olabilir. Web tabanlı bir admin panel — aynı anda birden fazla konuşmayı görme, okunmadı sayacı, hızlı yanıt şablonları, konuşmayı belirli bir temsilciye atama gibi özelliklerle — genelde ayrı bir geliştirme kalemi olarak bütçelenmeli. Küçük ekipler için tek bir "gelen kutusu" görünümü yeterli olabilirken, günde yüzlerce mesaj alan işletmelerde öncelik sıralaması ve atama mekanizması şart.
Çevrimdışı senaryo ve mesaj geçmişi
Kullanıcı internet bağlantısı koptuğunda yazdığı mesaj kaybolmamalı, bağlantı geldiğinde otomatik gönderilmeli. Bu, yerel bir mesaj kuyruğu (local queue) ile çözülüyor; mesaj önce cihazda "gönderiliyor" durumunda tutulur, sunucuya ulaştığında "gönderildi" işaretine döner. Mesaj geçmişinin ne kadar süre saklanacağı da KVKK açısından düşünülmesi gereken bir konu — sınırsız saklamak yerine belirli bir süre sonra arşivleme politikası koymak hem depolama maliyetini hem hukuki riski azaltıyor.
Hazır canlı destek widget'ları bir alternatif mi
Bazı projelerde WebView içine gömülen hazır chat widget'ları (Intercom, Zendesk gibi) hızlı çözüm gibi görünüyor ama native uygulama hissini bozuyor ve genelde aylık kullanıcı başına ücretlendirme modeli bütçeyi büyütüyor. Android uygulama geliştirme sürecinde native chat ekranı geliştirmek başlangıçta daha fazla efor gerektirse de, uzun vadede hem maliyet hem kullanıcı deneyimi açısından daha sürdürülebilir bir tercih oluyor.
İlgili Yazılar
Projenize özel, şeffaf bir mobil uygulama fiyat teklifi için fiyat rehberimize göz atabilir veya bizimle iletişime geçebilirsiniz.
