Jeśli masz już podłączony do swojej witryny widżet i chcesz zidentyfikować klientów z czatu Bitrix24 na żywo, możesz skorzystać z rozwiązań wymienionych w tym artykule.
Na przykład masz sklep online Bitrix24 i witrynę Bitrix24. Klient kupił coś w Twoim sklepie online i teraz odwiedza Twoją stronę internetową po raz pierwszy.
Dla klientów niezalogowanych w żadnym z Twoich serwisów, możesz wykorzystać specjalny formularz internetowy CRM.
Dla klientów zalogowanych w dowolnym z Twoich serwisów, mamy inne rozwiązanie, dzięki któremu Twoi klienci nie będą musieli ponownie wypełniać formularza kontaktowego.
Jak to działa?
Do strony, z którą połączony jest widżet, możesz dodać specjalny kod JavaScript.
Generalnie, kod ten wygląda w ten sposób:
<script type="text/javascript"> window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
// 1. Setting external user authentication
...
// 2. Setting custom data
...
// 3. Event handling
...
});</script>
Praca z widżetem witryny:
widget.open()- otwórz widżet;widget.close()- zamknij widżet;widget.subscribe()- subskrypcja wydarzenia;widget.setUserRegisterData()- ustaw zewnętrzne uwierzytelnianie użytkownika;widget.setCustomData()- ustaw dane niestandardowe;
1. Ustawianie zewnętrznego uwierzytelniania użytkownika
<script type="text/javascript"> window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
// Settings external user authentication
widget.setUserRegisterData({
'hash': '12b42ebcec7e3c26a313272c26efddbd',
'name': 'John',
'lastName': 'Smith',
'avatar': 'http://files.smith.com/images/avatar-john.jpg',
'email': 'john@smith.com',
'www': 'https://bitrix24.com',
'gender': 'M',
'position': 'Loyal Customer'
});
});</script>
hash to specjalne pole, które „zastępuje” uwierzytelnianie. Kod ten musi być w formacie MD5 i musi być unikalny w ramach danego systemu Bitrix24. Na przykład: md5(USER_ID+_website_address_ + _secret_code_)
2. Ustawianie danych niestandardowych
Dane niestandardowe możesz ustawić za pomocą specjalnych bloków:
<script type="text/javascript"> window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
// Setting custom data (get published at the beginning of a new conversation, extended format)
widget.setCustomData([
{"USER": {
"NAME" : "John Smith",
"AVATAR" : "http://files.smith.com/images/avatar-john.jpg",
}},
{"GRID": [
{
"NAME" : "E-mail",
"VALUE" : "john@smith.com",
"DISPLAY" : "LINE",
},
{
"NAME" : "Customer ID",
"VALUE" : "12234",
"COLOR" : "#ff0000",
"DISPLAY" : "LINE"
},
{
"NAME": "Website",
"VALUE": location.hostname,
"DISPLAY": "LINE"
},
{
"NAME": "Page",
"VALUE": "[url="+location.href+"]"+(document.title || location.href)+"[/url]",
"DISPLAY": "LINE"
},
]}
]);
});</script>
Aby opublikować dane w formacie tekstowym, możesz użyć uproszczonej konstrukcji. W tekście możesz korzystać z tagów HTML: BR, B, U, I, S, URL.
<script type="text/javascript"> window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
widget.setCustomData("[b]John Smith[/b] (john@smith.com)");
});</script>
3. Obsługa zdarzeń
<script type="text/javascript"> window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
// Event handling
widget.subscribe({
type: BX.LiveChatWidget.SubscriptionType.EVENT_SUBSCRIPTION_TYPE,
callback: function(data) {
// any command
...
}
});
});</script>
-
BX.LiveChatWidget.SubscriptionType.configLoaded- zdarzenie "załadowano informację o Otwartym kanale". -
BX.LiveChatWidget.SubscriptionType.widgetOpen- zdarzenie "otwarto widżet". -
BX.LiveChatWidget.SubscriptionType.widgetClose- zdarzenie "zamknięto widżet". BX.LiveChatWidget.SubscriptionType.sessionStart- zdarzenie "rozpoczęto rozmowę".
Przykład rezultatu:{sessionId: 123}BX.LiveChatWidget.SubscriptionType.sessionOperatorChange- zdarzenie "zmieniono konsultanta".
Przykład rezultatu:{operator: {name: '',firstName: '',lastName: '',workPosition: '',avatar: '',online: false}}BX.LiveChatWidget.SubscriptionType.sessionFinish- zdarzenie "zakończono rozmowę".
Przykład rezultatu:{sessionId: 123}BX.LiveChatWidget.SubscriptionType.operatorMessage- zdarzenie "konsultant wysłał wiadomość".
Przykład rezultatu:{id:"44609041",chatId:711773,senderId:1246,recipientId:"chat711773",date:"2018-11-22T20:17:57.000Z",text:"cześć!"}BX.LiveChatWidget.SubscriptionType.userForm- zdarzenie "klient wypełnił formularz internetowy".
Przykład rezultatu:{form: "witaj", fields: {name: "", phone: "", email: ""}} // welcome|offline|historyBX.LiveChatWidget.SubscriptionType.userMessage- zdarzenie "wysłano wiadomość do użytkownika".
Przykład rezultatu:{id: 123, text:"cześć!"}BX.LiveChatWidget.SubscriptionType.userVote- zdarzenie "klient ocenił rozmowę".
Przykład rezultatu:{vote: "like"} // like|dislikeBX.LiveChatWidget.SubscriptionType.every- w tym zdarzeniu można określić jednocześnie rezultaty wszystkich zdarzeń.
Typ zdarzeniaeveryjest nieco inny:
<script type="text/javascript">
Przykład rezultatu:window.addEventListener('onBitrixLiveChat', function(event) { var widget = event.detail.widget; widget.subscribe({ type: BX.LiveChatWidget.SubscriptionType.every, callback: function(event) { if (event.type == BX.LiveChatWidget.SubscriptionType.configLoaded) { widget.open(); } } }); });</script>{type: "userVote", data: {vote: "like"}}typepokazuje typ zdarzenia,dataвАУ dane zdarzenia (przykłady tych danych podano powyżej).
W zależności od potrzeb ostateczny kod JavaScript może składać się z 3 części.
Na przykład:
<script type="text/javascript">
window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
// Ustawianie zewnętrznego uwierzytelniania użytkownika
widget.setUserRegisterData({
'hash': '12b42ebcec7e3c26a313272c26efddbd',
'name': 'John',
'lastName': 'Smith',
'avatar': 'http://files.smith.com/images/avatar-john.jpg',
'email': 'john@smith.com',
'www': 'https://bitrix24.com',
'gender': 'M',
'position': 'Loyal Customer'
});
// Ustawianie danych niestandardowych (publikowane na początku nowej rozmowy, format rozszerzony)
widget.setCustomData([
{"USER": {
"NAZWA" : "John Smith",
"AWATAR" : "http://files.smith.com/images/avatar-john.jpg",
}},
{"GRID": [
{
"NAZWA" : "E-mail",
"WARTOŚĆ" : "john@smith.com",
"WYŚWIETL": "LINIA"
},
{
"NAZWA" : "ID klienta",
"WARTOŚĆ" : "12234",
"KOLOR" : "#ff0000",
"WYŚWIETL": "LINIA"
},
{
"NAZWA": "Strona internetowa",
"WARTOŚĆ": location.hostname,
"WYŚWIETL": "LINIA"
},
{
"NAZWA": "Strona",
"WARTOŚĆ": "[url="+location.href+"]"+(document.title || location.href)+"[/url]",
"WYŚWIETL": "LINIA"
},
]}
]);
widget.subscribe({
type: BX.LiveChatWidget.SubscriptionType.every,
callback: function(event) {
if (event.type == BX.LiveChatWidget.SubscriptionType.configLoaded)
{
widget.open();
}
}
});
});</script>
4. Dostosuj frazy używane w widżecie na stronę
Możesz dostosowywać frazy używane w widżecie na stronę Bitrix24.
Aby to zrobić, wykorzystaj kod JavaScript:
<script>window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
widget.subscribe({
type: BX.LiveChatWidget.SubscriptionType.configLoaded,
callback: function()
{
widget.addLocalize({VARIABLE: 'New Text'});
}
});
});</script>