Documentation

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ürAçıklama
statestringGeç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ürAçıklama
result opsiyonelobjectGeri-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ürAçıklama
start opsiyonelstringcall - 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ürAçıklama
invitation_textstringTetikleyici metni
department_id opsiyonelnumberDepartman 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ürAçıklama
colorstringHexadecimal renk kodu
color2 optionalstringGradyan 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ürAçıklama
resultstringonline - 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ürAçıklama
phonestringTelefon 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ürAçıklama
namestringZiyaretçinin adı
emailstringZiyaretçinin e-posta adresi
phonestringZiyaretçinin telefon numarası
descriptionstringZiyaretçiye dair ek açıklama
messagestringÇ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ürAçıklama
titlestringAd ID
fromApi optionalstringCampaign name
url optionalstringCampaign 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ürAçıklama
namestringZiyaretçinin adı
emailstringZiyaretçinin e-posta adresi
phonestringZiyaretçinin telefon numarası
descriptionstringZiyaretç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ürAçıklama
fieldsarraySohbete ek bilgilerin listesi
fields.contentstringVeri alanının içeriği.(Etiketler ayrı olarak yazılmalıdır)
fileds.titlestringVeri alanı üstünde gösterilecek başlık
fileds.linkstringVeri alanına tıklandığında açılacak URL adresi
fileds.keystringVeri 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ürAçıklama
tokenstringZiyaretç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ürAçıklama
rulesobjectTetikleyici 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 nullolarak dönecektir.

Alan adıTürAçıklama
client_namestringZiyaretçinin adı
emailstringZiyaretçinin e-posta adresi
phonestringZiyaretçinin telefon numarası
descriptionstringZiyaretç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ürAçıklama
errstringHatayı içeren dize
visitorNumberintegerZiyaretç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ürAçıklama
contentstringAd ID
campaignstringThe name of the campaign
sourcestringCampaign source
mediumstringTraffic type
termstringKeyword
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');