Widget API
Callback fonksiyonları#
JivoChat, sayfadaki bir olayı bildirebilmek için aşağıda listelenen işlevleri kullanır. Bu işlevlerden herhangi birini sayfada çalıştırabilir ve gerçekleşen olayın işlenmesi için bir mantık yürütebilirsiniz. Örneğin, jivo_onIntroduction olayında, bir müşteri tarafından girilen iletişim bilgilerini alabilirsiniz.
onLoadCallback#
JivoChat sohbet penceresi yüklendiğinde çalışır.
function jivo_onLoadCallback() { console.log('Pencere yüklendi.'); jivo_api.showProactiveInvitation("Size nasıl yardımcı olabilirim?"); }
onOpen#
Sohbet penceresi açıldığında çalışır.
function jivo_onOpen() { console.log('Pencere açıldı'); }
onClose#
Sohbet penceresi kapatıldığında çalışır.
function jivo_onClose() { console.log('Pencere kapatıldı'); }
onChangeState#
Sohbet penceresinin durum bilgisi değiştiğinde çalışır.
Alan Adı | Tür | Açıklama |
---|---|---|
state | string | Geçerli widget durumu |
function jivo_onChangeState(state) { if (state == 'chat') { // Pencere sohbet durumunda } if (state == 'call' || state == 'chat/call') { // Geri arama formu açıldı } if (state == 'label' || state == 'chat/min') { // Pencere minimize edildi } }
onMessageSent#
Ziyaretçi ilk mesajını gönderdiğinde çalışır.
function jivo_onMessageSent() { console.log('Client sent the first message'); }
onClientStartChat#
Sohbet ziyaretçi tarafından başlatıldığında (ilk mesajı o attığında) çalışır.
function jivo_onClientStartChat() { console.log('Ziyaretçi yeni sohbet başlattı.'); }
onIntroduction#
Ziyaretçi iletişim bilgileri formunu doldurduğunda çalışır.
function jivo_onIntroduction() { console.log('Client entered contact details'); }
jivo_onAccept#
Temsilci yeni sohbet geldiğinde Kabul Et butonuna tıklayarak sohbeti kabul ettiğinde çalışır.
jivo_onMessageReceived#
Ziyaretçiden yeni mesaj alındığında çalışır. Sadece customLabel ile çalışır.
jivo_onCallStart#
Yeni bir telefon çağrısı başladığında çalışır.
jivo_onCallEnd#
Ziyaretçinin talep ettiği telefon çağrısı sonlandığında çalışır.
Alan adı | Tür | Açıklama |
---|---|---|
result opsiyonel | object | Geri-arama sonucu |
function jivo_onCallEnd(res) { if (res.result == 'ok') { // call finished successfully } if (res.result == 'fail') { // call finished with errors or can not started console.log(res.reason); // reason for the unsuccessfull call } }
jivo_onResizeCallback#
Sohbet penceresinin boyutu ziyaretçi tarafından değiştirildiğinde çalışır.
jivo_onWidgetDestroy#
Sohbet penceresi sayfadan tamamen kaldırıldığında çalışır. jivo_api.jivoInit ve jivo_api.jivoDestroy yöntemleri kullanıldığında tetiklenir.
Yöntemler#
API metotları ziyaretçiye gösterdiğiniz sohbet penceresini yönetmenize yarar. Ayrıca, sohbet penceresinin bulunduğu sayfadaki ya da oturumdaki herhangi bir bilgiyi, JivoChat temsilci uygulamasına, ziyaretçiyle eşleyerek göndermeye yarar (örneğin, giriş yapmış kullanıcıya dair bilgi sohbet ekranında temsilciye gösterilebilir ve bu bilgi arşive de kaydedilecektir). Yöntemler doğru sırayla başlatılmalıdır, bu nedenle bir geri arama fonksiyonu jivo_onLoadCallback içinden çağrılmalıdırlar.
open#
Yöntem, sohbet penceresinin farklı durumlarda açılmasına izin verir.
Alan adı | Tür | Açıklama |
---|---|---|
start opsiyonel | string | call - geri arama istek formu içeren sohbet penceresi menu - iletişim kanalı seçimini içeren mobil sohbet menüsü chat - varsayılan sohbet penceresi |
let params = {start: 'call'}; let apiResult = jivo_api.open(params); if (apiResult.result === 'fail') { console.log('Pencere açılamadı'); } else { console.log('Pencere açıldı'); }
close#
Bu yöntemi kullanarak sohbet penceresini kapatabilirsiniz.
let apiResult = jivo_api.close(); if (apiResult.result === 'fail') { console.log('Pencere kapatılamadı'); } else { console.log('Pencere kapatıldı'); }
showProactiveInvitation#
İstediğiniz anda özel tetikleyici metnini içeren sohbet penceresini açmak için bu yöntemi kullanabilirsiniz. Örneğin, müşteri çevrimiçi mağazanızdaki ürünleri ekledikten sonra tetikleyici metnini göstermek istiyorsanız bu yararlı olabilir. Sayfa açıldığında hemen davetiyeyi göstermek istiyorsanız, jivo_onLoadCallback içinde showProactiveInvitation işlevini çağırmanız gerekir (hepsini doğru sırayla başlatmak için).
Alan adı | Tür | Açıklama |
---|---|---|
invitation_text | string | Tetikleyici metni |
department_id opsiyonel | number | Departman id |
jivo_api.showProactiveInvitation("Merhaba, size nasıl yardımcı olabilirim?", 3);
setWidgetColor#
Bu yöntem, sohbet penceresinin rengini değiştirmenizi sağlar.
Alan adı | Tür | Açıklama |
---|---|---|
color | string | Hexadecimal renk kodu |
color2 optional | string | Gradyan seçimde geçiş için Hexadecimal renk kodu |
jivo_api.setWidgetColor('#ffffff', '#000000');
chatMode#
Bu yöntem ile anlık sohbet durumunu (çevrimiçi/çevrimdışı) alabilirsiniz.
Alan adı | Tür | Açıklama |
---|---|---|
result | string | online - en az bir temsilci çevrimiçi offline - bütün temsilciler çevrimdışı |
let apiResult = jivo_api.chatMode(); if (apiResult.result === 'online') { console.log('Pencere çevrimiçi'); } else { console.log('Pencere çevrimdışı'); }
startCall#
Yöntem, istediğiniz numaraya bir çağrı başlatmanıza izin verir (Geri-arama özelliği kurulu ve arama bakiyeniz yeterli ise).
Telefon numarası doğru biçimde ise ve aramayı başlatma isteği yapıldıysa yöntem {result: 'ok'} döndürür. Aksi takdirde, {result: 'fail', reason: 'Callback disabled’} döner.
Alan adı | Tür | Açıklama |
---|---|---|
phone | string | Telefon numarası |
let phone = '+905554987855'; let apiResult = jivo_api.startCall(phone); if (apiResult.result === 'ok') { console.log('Çağrı başlatıldı, telefon numarası: ', phone); } else { console.log('Çağrı başlatılamadı, sebebi: ', apiResult.reason); }
sendOfflineMessage#
Bu yöntem ile, direkt olarak bir çevrimdışı mesaj gönderebilirsiniz. Eğer değişkenler doğru tanımlandıysa {result: 'ok'} döner.
Hata durumunda {result: 'fail', error: errReason} döner, errReason gönderdiğiniz parametrelere dair hata mesajıdır, ya da neden çevrimdışı mesajın iletilemediğidir.
Alan adı | Tür | Açıklama |
---|---|---|
name | string | Ziyaretçinin adı |
string | Ziyaretçinin e-posta adresi | |
phone | string | Ziyaretçinin telefon numarası |
description | string | Ziyaretçiye dair ek açıklama |
message | string | Çevrimdışı mesajın metni |
let apiResult = jivo_api.sendOfflineMessage({ "name": "Cemil Turan", "email": "cemil@turan.com", "phone": "+905554987855", "description": "Açıklama metni", "message": "Çevrimdışı mesaj metni" }); if (apiResult.result === 'ok') { console.log('Mesaj başarıyla gönderildi'); } else { console.log('Mesaj gönderilemedi, sebebi: ', apiResult.error); }
sendPageTitle#
JivoChat uygulamasında ziyaretçinin bulunduğu sayfanın başlığını ve sayfa URL'sini günceller. (SPA kullanımlarında yararlı olabilir)
Alan adı | Tür | Açıklama |
---|---|---|
title | string | Ad ID |
fromApi optional | string | Campaign name |
url optional | string | Campaign source |
let title = 'Bu özelleştirilmiş bir sayfa başlığıdır'; let url = 'https://site.com/url_to_page?q=params'; jivo_api.sendPageTitle(title, true, url);
setContactInfo#
Ziyaretçinin iletişim bilgilerini ayarlar. Atayacağınız iletişim bilgisi, tıpkı ziyaretçi bırakmışçasına, temsilci uygulamasında temsilciler tarafından görülebilecektir. Eğer sitenize giriş(login) yapılabiliyorsa, giriş ardından oturumdaki ziyaretçi bilgisini, bu yöntemle JivoChat’e gönderebilir, bu sayede temsilcilerinizi kiminle konuştuğu hakkında bilgilendirebilirsiniz.
Alan adı | Tür | Açıklama |
---|---|---|
name | string | Ziyaretçinin adı |
string | Ziyaretçinin e-posta adresi | |
phone | string | Ziyaretçinin telefon numarası |
description | string | Ziyaretçiye dair ek bilgiler |
jivo_api.setContactInfo({ name: "Cemil Turan", email: "cemil@turan.com", phone: "+905554987855", description: "Açıklama metni" });
setCustomData#
Bu yöntemi kullanarak, müşteri hakkında herhangi bir ek bilgiyi temsilci uygulamasına gönderebilirsiniz. Bu bilgi, temsilci uygulamasında sohbet ekranının sağ tarafında bulunan bilgi panelinde gösterilecektir. Yöntem, istediğiniz kadar çok çağrılabilir. Sohbet esnasında, temsilci uygulamasındaki bilgiler gerçek zamanlı olarak güncellenir. Alanlar, 'fields' dizisindeki ile aynı sırada gösterilecektir.
Alan adı | Tür | Açıklama |
---|---|---|
fields | array | Sohbete ek bilgilerin listesi |
fields.content | string | Veri alanının içeriği.(Etiketler ayrı olarak yazılmalıdır) |
fileds.title | string | Veri alanı üstünde gösterilecek başlık |
fileds.link | string | Veri alanına tıklandığında açılacak URL adresi |
fileds.key | string | Veri alanının anahtarı, kolondan önceki kalın yazı |
jivo_api.setCustomData([ { "content": "Kullanıcı bakiyesi: 56TL", }, { "content": "Müşteri profiline git", "link": "..." }, { "title": "Eylemler", "content": "İletişim bilgisi ekle", "link": "..." } ]);
setUserToken#
Ziyaretçi kimliğini(ID number) ayarlar. JivoChat bu tanımlayıcıyı herhangi bir şekilde işlemez, ancak her Webhooks etkinliğinde iletir. Bu şekilde, Webhook’ları işlerken bir site ziyaretçisini tanımlayabilirsiniz. Sahtekarlık olasılığını ortadan kaldırmak için tahmin edilmesi zor bir tanımlayıcı kullanmanızı öneririz.
Alan adı | Tür | Açıklama |
---|---|---|
token | string | Ziyaretçi ID |
jivo_api.setUserToken(token);
setRules#
Bu yöntemi kullanarak, tetikleyicilerin koşullarını transfer edilen koşullar ile değiştirebilirsiniz. Bu tür bir nesnenin örneğini, kanal ayarlarınızda tetikleyiciler bölümünde bulabilirsiniz, orada JSON yapısı düğmesine basın.
Alan adı | Tür | Açıklama |
---|---|---|
rules | object | Tetikleyici koşullarının JSON formatı |
jivo_api.setRules(rules);
getContactInfo#
İletişim bilgileri formuna ziyaretçinin bıraktığı bilgiyi contact_info yapısı ile okuyabilirsiniz. Ziyaretinin boş bıraktığı alanlar null
olarak dönecektir.
Alan adı | Tür | Açıklama |
---|---|---|
client_name | string | Ziyaretçinin adı |
string | Ziyaretçinin e-posta adresi | |
phone | string | Ziyaretçinin telefon numarası |
description | string | Ziyaretçiye dair ek bilgiler |
let apiResult = jivo_api.getContactInfo(); console.log('Ad: ', apiResult.client_name); console.log('Email: ', apiResult.email); console.log('Telefon: ', apiResult.phone); console.log('Açıklama: ', apiResult.description);
getVisitorNumber#
JivoChat’tin ziyaretçiye atadığı eşsiz numarayı almak için asenkronize fonksiyon. Ziyaretçiler, kanalınız için, sıralı bir şekilde numaralanır: 1,2,3 vb. Ziyaretçi numarası, temsilci iletişim bilgisi bırakmadığında, temsilci uygulamasında gözükecektir ve daha sonra arşivde ilgili ziyaretçiyi numarası ile bulabilirsiniz. Ayrıca CRM verinizle bu veriyi bağlayabilirsiniz.
Alan adı | Tür | Açıklama |
---|---|---|
err | string | Hatayı içeren dize |
visitorNumber | integer | Ziyaretçi numarası |
jivo_api.getVisitorNumber(function(error, visitorNumber) { if (error) { console.log('Hata: ', error); return; } console.log('Ziyaretçi numarası: ', visitorNumber); });
getUnreadMessagesCount#
Bu yöntem, temsilciden okunmamış mesajların sayısını almanızı sağlar.
let count = jivo_api.getUnreadMessagesCount(); console.log('Okunmamış mesaj sayısı:', count);
getUtm#
Bu yöntem, ziyaretçinin ilk site ziyareti sırasında web sitesi url'si içeriyorsa, utm bilgisini almanıza olanak tanır.
Alan Adı | Tür | Açıklama |
---|---|---|
content | string | Ad ID |
campaign | string | The name of the campaign |
source | string | Campaign source |
medium | string | Traffic type |
term | string | Keyword |
let utm = jivo_api.getUtm(); console.log('Utm content: ', utm.content); console.log('Utm campaign: ', utm.campaign); console.log('Utm source: ', utm.source); console.log('Utm medium: ', utm.medium); console.log('Utm term: ', utm.term);
isCallbackEnabled#
Bu yöntem, geri aramaların aktif olup olmadığını kontrol eder.
jivo_api.isCallbackEnabled(function(apiResult) { if (apiResult.result === 'ok') { jivo_api.open({start: 'call'}); } else { console.log('Geri-arama yapılamadı, sebebi: ', apiResult.reason); } });
clearHistory#
Bu yöntem, tarayıcıdaki tüm sohbet ve ziyaretçi verilerini temizler.
jivo_api.clearHistory(); console.log('Tüm ziyaretçi verisi temizlendi');