Widget ve Müşteri Kimliği
Müşterileriniz sitenizde Chargeless'a sohbet widget'ı üzerinden ulaşır. Bu sayfada widget'ı sayfalarınıza nasıl ekleyeceğinizi, müşterinin kimliğini nasıl doğrulayacağınızı ve müşterinin neler gördüğünü bulacaksınız.
1. Sayfalarınıza İzin Verin
Widget yalnızca listelediğiniz sayfalarda çalışır. Ayarlar → Sohbet Widget'ı bölümünde, widget'ın yerleştirildiği her kaynağı (origin) İzin verilen kaynaklar alanına, tarayıcının location.origin değerinde gösterdiği biçimde birebir ekleyin: https://shop.example.com (küçük harfle, sonda eğik çizgi ve :443 olmadan). Şifresiz http yalnızca geliştirme sırasında localhost üzerinde çalışır.

Liste boşsa widget hiçbir sayfada çalışmaz. Listede olmayan bir sayfada "Bu site bu destek penceresini gösteremez." mesajı görünür.
2. Kod Parçacığını Ekleyin
Yükleyiciyi widget'ın görünmesi gereken her sayfaya ekleyin. Çalışma alanı kimliği'niz Ayarlar → Genel bölümündedir. Chargeless'ın size verdiği CDN ve asistan (agent) adreslerini kullanın; aşağıdaki örneklerde varsayılan adresler yer alıyor.
<script
src="https://cdn.chargeless.io/v1/loader.js"
data-tenant="YOUR-WORKSPACE-ID"
data-agent-url="https://agent.chargeless.io"
data-locale="en"
data-title="Support"
data-theme-primary="#0f766e"
></script>Widget'ın ne zaman başlayacağını kendiniz belirlemek ve oturum açmış bir müşterinin kimliğini iletmek istiyorsanız şu yöntemi kullanın:
<script src="https://cdn.chargeless.io/v1/loader.js"></script>
<script>
SupportRoute.init({
tenantId: 'YOUR-WORKSPACE-ID',
agentUrl: 'https://agent.chargeless.io',
identityToken: tokenFromYourServer, // optional, see below
locale: 'en', // en, tr, es, pt-BR, fr, ar, ru; defaults to the browser language
position: 'right', // or 'left'
launcher: true, // false if you render your own button and call SupportRoute.open()
mode: 'chat', // 'form' opens straight into "leave a message"
});
</script>Bilmeniz gerekenler:
- Yükleyiciyi modül olarak ya da bir paketleyici (bundler) üzerinden değil, düz bir
<script src>etiketiyle veintegrityya dacrossoriginolmadan yükleyin (asyncvedeferkullanabilirsiniz). - İçerik Güvenliği Politikanızda (CSP) CDN sunucusu için yalnızca
script-srcveframe-srcizinleri gerekir. - Widget'ın telefonlarda tam ekranı doğru kullanabilmesi için sayfanızda
<meta name="viewport" content="width=device-width, initial-scale=1">bulunmalıdır. - Renkler:
data-theme-primary(ya dainitiçindetheme: {'--sr-primary': …}). - API:
SupportRoute.init(),open(),close(),identify(token),on('event' | 'state', fn). - Olaylar (
opened,closed,identified,message_sent,reply,action,handoff,target_selected,confirmation,error) müşterinin yazdıklarını, e-posta adresini, herhangi bir kimlik numarasını (id) ya da tutarı asla içermez; bu yüzden bunları analiz araçlarınıza aktarabilirsiniz.
Kendi sunucunuzda barındırma ve CDN'in gönderdiği tüm başlıklar dahil teknik ayrıntıların tamamı sr-widget/docs/embed.md dosyasındadır.
3. Müşteriyi Doğrulayın
Chargeless, müşteri kimliğini kanıtlamadan onun ödemelerini göstermez ve bu ödemeler üzerinde işlem yapmaz. Hangi yöntemlerin geçerli sayılacağını politikanızın Kimlik adımı belirler (bkz. Politika → Kimlik).
E-posta Kodu

Sizin tarafınızda hiçbir geliştirme gerektirmez. Müşteri ödeme yaparken kullandığı e-posta adresini yazar ve altı haneli bir kod alır (kod 10 dakika geçerlidir; 5 deneme hakkı vardır; 15 dakikada en fazla 3 kod gönderilir). Widget, adres kayıtlı olsun ya da olmasın aynı şekilde davranır; böylece müşterilerinizin kim olduğuna dair hiçbir bilgi açığa çıkmaz.
İmzalı Token (Sitenizde Oturum Açmış Müşteriler)
Müşterileriniz sitenizde oturum açıyorsa sunucunuz onların kimliğine kefil olabilir: sohbet, kimlik doğrulanmış olarak başlar ve müşteriden hiçbir zaman kod istenmez.
Ayarlar → Sohbet Widget'ı → Widget İmza Anahtarı bölümünde Anahtar üret'i seçin. Doğrulama uygulamanızdaki kodla onaylayın, anahtarı (
srwgt_ile başlar) kopyalayıp sunucunuzda saklayın. Anahtar yalnızca bir kez gösterilir.Sunucunuzda, oturum açmış bir müşteri için bu anahtarla imzalanmış bir HS256 JWT oluşturun:
Claim Değer submüşterinin ödeme sağlayıcınızdaki kimliği, ör. Stripe'ın cus_…değeritenantÇalışma alanı kimliğiniz emailisteğe bağlı connectionisteğe bağlı: müşterinin ait olduğu ödeme bağlantısı (Ayarlar → Entegrasyonlar bölümünden). Belirtilmezse ilk bağlantınız kullanılır. iatdüzenlenme zamanı expen fazla bir saat sonrası Token'ı widget'a
initiçindeidentityTokenolarak ya da daha sonra (örneğin müşteri oturum açtıktan sonra)SupportRoute.identify(token)ile iletin. Token'ı asla tarayıcıda üretmeyin ve asla sayfanın HTML koduna yazmayın.Örneğin Node.js'te
jsonwebtokenpaketiyle:// On your server, for the signed-in customer. import jwt from 'jsonwebtoken'; const token = jwt.sign( { sub: customer.stripeCustomerId, tenant: process.env.SUPPORTROUTE_WORKSPACE_ID, email: customer.email }, process.env.SUPPORTROUTE_WIDGET_SECRET, // srwgt_… { algorithm: 'HS256', expiresIn: '15m' }, ); // Send `token` to the page (for example in your account page's data), then: // SupportRoute.identify(token);
Token reddedilirse widget, e-posta koduyla doğrulamaya geçer.
Anahtarı yenileme. Anahtarı Döndür'ü seçin ve yeni anahtarı sunucularınıza yükleyin; başka bir şey yapmanız gerekmez: önceki anahtar 7 gün boyunca token doğrulamaya devam eder. Bu geçiş süresini erken bitirmek isterseniz önceki anahtarı kullanımdan kaldırın.
Müşterinin Gördükleri



- Müşteri ne istediğini kendi sözleriyle anlatır. Asistan, talebin iade mi, iptal mi, sipariş durumu ya da genel bir soru mu, yoksa bir insanla görüşme isteği mi olduğunu anlar; emin olamazsa sorar. Müşterinin hangi ödemeyi kastettiğini asla tahmin etmez.
- Müşteri kimliğini kanıtlar (siteniz bunu bir token ile zaten yapmadıysa).
- Müşteri ödemeyi ya da aboneliği seçer. İade ya da iptal isteyen doğrulanmış bir müşteri, uygun ödemelerinin ("Hangi ödeme?") ya da aboneliklerinin ("Hangi abonelik?") listesini görür. Liste en yeniden eskiye sıralanır; her satırda tutar, tarih, kart markası ve kartın son 4 hanesi yer alır.
- Müşteri onaylar. Bir kart, ne olacağını tam olarak gösterir; altında Onayla ve Şimdi değil seçenekleri bulunur. Onayla'ya basılmadan hiçbir şey iade ya da iptal edilmez. Kart yalnızca sohbetteki en son mesajken ve 15 dakika boyunca yanıtlanabilir.
- Müşteri sonucu görür. Sonuç kartları (iade edildi, yolda, reddedildi, ekibinize iletildi) asla yapay zeka tarafından yazılmaz; gerçek işlem kaydından oluşturulur.
Widget İngilizce, Türkçe, İspanyolca, Portekizce (Brezilya), Fransızca, Arapça (sağdan sola) ve Rusça dillerini destekler ve müşteriye kendi dilinde yanıt verir.
Sohbet Devredildiğinde

Talep politikanızın dışındaysa bu, onay kartında baştan belirtilir ("Bu talebi otomatik olarak sonuçlandıramıyorum: onaylarsanız satıcının ekibine ileteceğim"). Müşteri Onayla'ya bastığında ya da bir insanla görüşmek istediğinde sohbette "Bu talep satıcının ekibine iletildi." mesajı görünür ve sohbet kapanır; müşteri Yeni bir sohbet başlat ile yeniden başlayabilir. Ekibiniz, konuşmanın tamamını içeren bir talep alır (bkz. Talepler).
Ekibiniz müşteriye e-postayla yanıt verir. Müşteri henüz bir e-posta adresini doğrulamadıysa, ekibinizin ona yazabilmesi için widget müşteriden E-posta ekle ile adresini eklemesini (ve bir kodla doğrulamasını) ister. Ardından müşteriye, talep numarasını belirten tek bir alındı e-postası gönderilir.
Mesaj Bırakma
E-postayı mı tercih edersiniz? Mesaj bırakın bağlantısı bir form açar (isteğe bağlı konu, mesaj ve doğrulanmış bir e-posta adresi). Widget'ı iletişim formu olarak yerleştirmek için mode: 'form' kullanın. Bu mesajlar talebe dönüşür: otomasyon önce bunları e-postayla yanıtlar, çözemediklerini ekibinize devreder.