Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Müşterilerin yardıma ihtiyaç duyduğu alanları tahmin ederek ve ardından bir süredir web sitenize göz attıklarında sohbet yoluyla onlarla etkileşim kurarak müşteri memnuniyetini artırmaya yardımcı olabilirsiniz.
Proaktif olarak bir sohbet başlatmak için aşağıdaki senaryoları göz önünde bulundurun.
Uyarı
Aşağıdaki senaryolarda listelenen kod örnekleri, yalnızca kimliği doğrulanmamış sohbet için kullanılabilen setContextProvider API'sini kullanır. Kimliği doğrulanmış sohbet için JSON Web Belirteci (JWT) kullanmanız gerekir. Daha fazla bilgi: Kimlik doğrulama belirteçleri gönderme
Senaryo 1: Müşteri bekleme süresi
Amy yanlışlıkla bir Surface Book'a zarar verdi ve ürün bilgi tabanında yaklaşık 20 saniye boyunca yanıt aramaya çalışıyor. Amy'nin göz attığı ürün sayfasına ve sayfada geçirilen süreye bağlı olarak proaktif bir sohbet isteği tetiklenir.
Hi! Just checking in to see if I can help answer any questions you may have.
Amy sohbet teklifini kabul edebilir ve sorunu çözmek için konuşmayı başlatabilir.
Örnek kod
<!-- Code to show proactive chat invite after visitor has spend given time on the webpage -->
<script id="Proactivechattrigger">
// Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
var timeToWaitBeforeOfferingProactiveChatInMilliseconds = 20000;//time to wait before Offering proactive chat to webpage visitor
// Setting context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Time On Page':{'value': timeToWaitBeforeOfferingProactiveChatInMilliseconds ,'isDisplayable':true},
'Page URL':{'value': window.location.href,'isDisplayable':true},
};
});
//Display proactive chat invite after 'timeToWaitBeforeOfferingProactiveChatInMilliseconds' milliseconds
setTimeout(function(){
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Just checking in to see if I can help answer any questions you may have."}, false)
},timeToWaitBeforeOfferingProactiveChatInMilliseconds);
});
</script>
Senaryo 2: Müşteri bir web sayfasını birden çok kez ziyaret ediyor
Thomas, Microsoft Surface topluluk web sayfasına göz atıyor ve Microsoft Surface cihazı hakkında bilgi arıyor. Thomas bir web sayfasını birden çok kez ziyaret etti, ancak cevapları bulamıyor.
Bu senaryoyu fark eden kuruluş, müşteriye aşağıdaki mesajla bir sohbet isteği sunar.
Hi! Do you have a question on Surface device ? I am here to help.
Örnek kod
<!-- Code to show proactive chat invite(after given time) after visitor visits the webpage given number of time -->
<!-- Operations on cookies like creating cookies, deleting cookies etc.. -->
<script>
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000*365)); // 1 yr from now
/* ####################### start set cookie ####################### */
function setCookie(name, value, expires, path, domain, secure) {
var thisCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
document.cookie = thisCookie;
}
/* ####################### start get cookie value ####################### */
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
/* ####################### end get cookie value ####################### */
}
/* ####################### start get cookie (name) ####################### */
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
/* ####################### End get cookie (name) ####################### */
/* ####################### Start delete cookie ####################### */
function DeleteCookie (name,path,domain) {
if (GetCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
/* ####################### End of delete cookie ####################### */
/* ####################### Count number of visits to current webpage ####################### */
function VisitCounter(){
var visits = GetCookie("timesPageVisited");
if (!visits) { visits = 1;
document.write("Select a Conversation Space");
}
else {
visits = parseInt(visits) + 1;document.write("Select a Conversation Space.");}
setCookie("timesPageVisited", visits,expdate);
}
/* ####################### End of count number of visits to current webpage ####################### */
</script>
<!-- Count number of visits to current webpage -->
<script>
VisitCounter();
</script>
<script id="Proactivechattrigger">
// Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
// setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'No. of visits':{'value':'2','isDisplayable':true},
'Forums':{'value':'Surface Devices','isDisplayable':true},
};
});
setTimeout(function(){
var timeToWaitBeforeOfferingProactiveChatInMilliseconds = 5000;//Time to wait before offering proactive chat to webpage visitor
var visits = GetCookie("timesPageVisited");
//Check if webpage has been visited 2 or more times by the user.
if (visits > 2) {
//Display proactive chat invite
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Do you have a question on Surface device? I am here to help."}, false);
DeleteCookie("timesPageVisited");//Delete the cookie to reset the counter
}
},timeToWaitBeforeOfferingProactiveChatInMilliseconds);
});
</script>
Senaryo 3: Müşteri, açık destek talebinin durumunu denetler
Jacob, açık destek talebiyle ilgili daha fazla bilgi edinmek için Microsoft Surface cihazlarının destek sayfasına göz atıyor. Jacob 10 saniyedir sayfadadır ve ardından aşağıdaki mesajla proaktif bir sohbet sunulur.
Hi! How are you doing today? The status of the case:<caseid> is in progress. Would you like to get more details?
Örnek kod
<!--Code to show proactive chat invite after visitor has spend given time on the webpage, with relevant details about user.-->
<script id="Proactivechattrigger">
// Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
var timeToWaitBeforeOfferingProactiveChatInMilliseconds = 10000;//Time to wait before offering proactive chat to webpage visitor
var caseId = '< your case id relevant to the user.>';//Set case id relevant to the user.
// setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Case Id':{'value':caseId,'isDisplayable':true}
};
});
//Show proactive chat invite after 'timeToWaitBeforeOfferingProactiveChatInMilliseconds' milliseconds
setTimeout(function(){
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! How are you doing today? The status of the case: " + caseId + " is in progress. Would you like to get more details?"}, false)
},timeToWaitBeforeOfferingProactiveChatInMilliseconds);
});
</script>
Senaryo 4: Müşteri, bir web sayfasında biraz zaman geçirdikten sonra sayfadan ayrılmaya çalışıyor
Amy 15 saniyedir bir web sayfasında geziniyor ve mevcut bilgilerden memnun değil. Amy web tarayıcısında sekmeler arasında geçiş yapmak üzereyken, Amy'ye aşağıdaki mesajı içeren proaktif bir sohbet isteği gönderilir.
Hi! Just checking in to see if I can help answer any questions you may have.
Örnek kod
//Code to show proactive chat invite when visitor tries to leave page after spending given time (15 seconds in this case) on the webpage. This invite is offered once and only for the first time. All subsequent tries to leave page are ignored and proactive chat is not offered in them.
<script id="Proactivechattrigger">
//Track if proactive chat has been already offered to the visitor
var hasProactiveChatBeenOffered = false;
//Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
var timeToWaitBeforeEnablingOfferingProactiveChatInMillisecondsOnLeaving = 15000; //Time to wait before Offering proactive chat to webpage visitor
//Enable showing proactive chat invite on leaving page after browsing page for 'timeToWaitBeforeEnablingOfferingProactiveChatInMillisecondsOnLeaving' milliseconds
setTimeout(function(){
//Show proactive chat invite on leaving page
window.document.body.onmouseleave = function(){
//Offer proactive chat if it has not been offered earlier during this visit
if( hasProactiveChatBeenOffered == false )
{
// Set this to true as proactive chat has been almost offered.
hasProactiveChatBeenOffered = true;
//Setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Page URL':{'value': window.location.href,'isDisplayable':true},
};
});
//Offer proactive chat
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Just checking in to see if I can help answer any questions you may have."}, false);
}
};
},timeToWaitBeforeEnablingOfferingProactiveChatInMillisecondsOnLeaving);
});
</script>
Senaryo 5: Müşteri başka bir web sayfasına göz attı ve ardından geçerli web sayfasında zaman harcıyor
Amy, ürünle ilgili SSS belgesine göz attı ve şu anda 15 saniyeden uzun süredir Bilgi Bankası sayfasında. Amy'ye proaktif olarak aşağıdaki mesajla bir sohbet oturumu teklif edilir.
Hi! Just checking in to see if I can help answer any questions you may have.
Örnek kod
//Code to show proactive chat invite when visitor spends given time on current page, after coming from given last visited page
<script id="Proactivechattrigger">
var lastVisitedPage = "www.contoso.com/FAQ";// last visited page. A visitor coming form this page will be shown proactive chat invite after given time on current page
// Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
var timeToWaitBeforeOfferingProactiveChat = 15000;//Time to wait before Offering proactive chat to webpage visitor
//Check if referrer page( read: https://www.w3schools.com/jsref/prop_doc_referrer.asp ) is same as last Visited page
if( window.document.referrer == lastVisitedPage) )
{
//Show proactive chat invite after browsing page for 'timeToWaitBeforeOfferingProactiveChat' milliseconds
setTimeout(function(){
//Setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Page URL':{'value': window.location.href,'isDisplayable':true},
'Last Page URL':{'value': window.document.referrer,'isDisplayable':true}
};
});
//Offer proactive chat
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Just checking in to see if I can help answer any questions you may have."}, false);
},timeToWaitBeforeOfferingProactiveChat);
}
});
</script>
Senaryo 6: Müşteri belirli bir coğrafi bölgeden oturum açıyor
Klarissa, şirketinizin ürünlerde özel bir indirim uyguladığı Ruritania'dan web sitenize giriş yapar. Belirli bir konumdan gelen müşteriler için proaktif olarak bir sohbet oturumu başlatan bir tetikleyici ayarlayabilirsiniz. Klarissa'dan aşağıdaki mesajla sohbet etmesi istenir.
Hi! Just checking in to see if I can help answer any questions you may have.
Örnek kod
Bu örnek kod, müşterinin coğrafi bölgesini bilmek ve buna göre sohbet isteği sunmak için Bing'in Coğrafi Konum API'lerini nasıl kullanabileceğinizi gösterir. Bing'in konum API'leri hakkında daha fazla bilgi: Bing Haritalar Konumları API'si.
//Code to show proactive chat invite if visitor is visiting the page in a particular country or region
<script id="Proactivechattrigger">
// Wait for Chat widget to load completely
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
var countryNameWhereProactiveChatInviteShouldBeOffered = 'Ruritania';//Country name where proactive chat invite should be offered, if user is visiting webpage from this country
// Get Country name using Bing Geolocation API and proactively offer chat if visitor's country matches with given country name
function GetCountryUsingBingGeoLocationAPIAndOfferProactiveChatIfVisitorCountryMatchesWithGivenCountry( latitude, longitude, bingMapApiKey, countryToMatch) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4)
if(this.status == 200) {
console.log(this.responseText);
var currentCountryName = JSON.parse(this.responseText).resourceSets[0].resources[0].address.countryRegion;
//Check if visitor's country matches with given Country name
if( currentCountryName == countryToMatch){
alert(currentCountryName);
// setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Country':{'value': currentCountryName ,'isDisplayable':true},
'Page URL':{'value': window.location.href,'isDisplayable':true},
};
});
//Show proactive chat invite
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Just checking in to see if I can help answer any questions you may have."}, false);
}
}
else{
console.log("Bing Geolocation API call has failed and returned error: " + this.statusText);
}
};
xhttp.open("GET", 'https://dev.virtualearth.net/REST/v1/Locations/'+ latitude +','+ longitude +'?key='+ bingMapApiKey, true);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send();
}
//fetching latitude and longitude is success
function successGetlatLong(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
console.log('Your latitude is :'+latitude+' and longitude is '+longitude);
//convert current loaction to a country/ region via Bing Geolocation APIs
var bingMapApiKey = 'Enter your Bing Map API key';// Get Bing Map API key here : https://learn.microsoft.com/bingmaps/getting-started/bing-maps-dev-center-help/getting-a-bing-maps-key
GetCountryUsingBingGeoLocationAPIAndOfferProactiveChatIfVisitorCountryMatchesWithGivenCountry( latitude, longitude, bingMapApiKey, countryNameWhereProactiveChatInviteShouldBeOffered);// get Country name using Bing Geolocation API and offer proctiveChat if visitor's country matches with Country name where proactive chat invite should be offered
}
//fetching latitude and longitude has failed
function errorGetlatLong() {
console.log('It seems browser was not allowed to access location. Please allow browser to access location.');
}
//fetch latitude and longitude via browser
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successGetlatLong, errorGetlatLong);
} else {
console.log('It seems like Geolocation, which is required for this page, is not enabled in your browser. Please use a browser which supports it.');
}
});
</script>
Senaryo 7: Müşterilere belirli bir süre içinde proaktif olarak sohbet sunma
Kuruluşunuzun belirli tarihler arasında bir yılbaşı sezonu indirimi yürüttüğünü ve müşterilere herhangi bir soruları olup olmadığını görmek için proaktif olarak sohbet istekleri sunmak istediğinizi varsayalım.
Örnek kod
Aşağıdaki örnek kod, belirli bir zaman diliminde web sitenizi ziyaret eden müşterilere nasıl proaktif olarak sohbet davetleri sunabileceğinizi gösterir.
//Code to show proactive chat invite if visitor visits webpage between given time period
<script id="Proactivechattrigger">
// Wait for Chat widget to load completely
window.addEventListener("load", function handleLivechatReadyEvent(){//lcw:ready
var startTimeOfTimePeriod = new Date('01 Jan 2019 00:00:00 GMT');//start time of time period in which proactive chat will be shown to webpage visitor
var endTimeOfTimePeriod = new Date('01 Jan 2100 00:00:00 GMT');//end time of time period in which proactive chat will be shown to webpage visitor
var currentDateTime = new Date();//current date and time
//Make sure that endTimeOfTimePeriod is always greater and equal to startTimeOfTimePeriod
if( endTimeOfTimePeriod < startTimeOfTimePeriod)
{
console.log("The time period given for proactive chat has start time: " + startTimeOfTimePeriod.toGMTString() + " more that the end time: " + endTimeOfTimePeriod.toGMTString() + " of time period. So, proactive chat will not be offered.");
return;
}
//Check if current date time is between given time period
if( startTimeOfTimePeriod < currentDateTime && endTimeOfTimePeriod > currentDateTime){
// setting Context variables
Microsoft.Omnichannel.LiveChatWidget.SDK.setContextProvider(function contextProvider(){
return {
'Proactive Chat':{'value':'True','isDisplayable':true},
'Page URL':{'value': window.location.href,'isDisplayable':true},
};
});
//Show proactive chat invite
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat({message: "Hi! Just checking in to see if I can help answer any questions you may have."}, false);
}
});
</script>
Senaryo 8: Müşterilere proaktif olarak ön anket ile sohbet sunma
Kuruluşunuzun bir müşteriyle sohbet başlatmak için onay yetkisi istediğini veya oturumu uygun temsilciye yönlendirmeden önce müşterinin sorgusuyla ilgili konular hakkında soru sormak istediğini varsayalım.
Örnek kod
Aşağıdaki örnek kod, müşterilerinize anket öncesi bir soruyla proaktif olarak nasıl sohbet sunabileceğinizi gösterir.
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
Microsoft.Omnichannel.LiveChatWidget.SDK.startProactiveChat(
"Hi! How are you doing today? Do you wish to start a chat?",
true);
});
İlgili bilgiler
startProactiveChat API'sı
Özel bağlamı yönet
Sohbet başlat
Özel bağlamı görüntüleme
Canlı sohbet JavaScript API referansı