Віджет HelpCrunch надає вам JavaScript API. За допомогою нього ви можете контролювати та налаштовувати свій чат і поведінку віджета.
- showChatWidget
- hideChatWidget
- openChat
- closeChat
- init
- updateUser
- userAuth
- updateUserData
- trackEvent
- setLocalization
- sendProactiveChatAutoMessage
- sendUserMessage
- typeUserMessage
- logOut
- muteNotificationSound
- setChatButtonOffset
- setOperatingHours
- openKBArticle
- setMediaCSS
showChatWidget
Показує віджет чату (кнопку запуску чату) після ініціалізації або після того, як його було приховано за допомогою hideChatWidget
.
Без параметрів і повернень.
HelpCrunch('showChatWidget');
hideChatWidget
Приховує віджет чату (кнопку запуску чату) після того, як його показав showChatWidget.
Без параметрів і повернень.
HelpCrunch('hideChatWidget');
openChat
Відкриває чат HelpCrunch. Можна викликати без відображення віджета.
Без параметрів і повернень.
HelpCrunch('openChat');
closeChat
Закриває чат HelpCrunch після того, як його відкрив openChat.
Без параметрів і повернень.
HelpCrunch('closeChat');
init
Ініціалізує віджет HelpCrunch на сторінці вашого сайту. Усі методи веб-SDK, викликані до цього методу, запустяться після завершення ініціалізації.
Ви можете скористатися цим методом із усіма необхідними параметрами прямо зі свого облікового запису HelpCrunch на сторінці Налаштування → Канали → Веб-віджети → [Оберіть ваш віджет] → Налаштування.
Параметри:
organization domain
: рядок. Домен вашої організації, який ви ввели під час реєстрації. Ви можете перевірити його у URL-адресі свого облікового запису HelpCrunch (наприклад DOMAIN.helpcrunch.com)options
: об'єктappId
: рядокuser
(за бажанням): об’єкт. Якщо користувач автентифікований на вашому сайті, ви можете надіслати дані користувача прямо під час ініціалізації, щоб автоматично автентифікувати користувача в чаті HelpCrunch і пізніше робити менше запитів до сервера. Дізнайтеся більше про це в розділі про режим автентифікації користувача.signature
(за бажанням): рядок. Потрібен лише в режимі автентифікації користувача, коли ви хочете захистити свої дані користувача за допомогою підпису безпеки на бекенді. Докладніше про це — в розділі підпис захисту.
Ініціалізація за замовчуванням:
HelpCrunch('init', '<your organization domain / string>', {
appId: '<application id / string>',
});
Ініціалізація з усіма даними користувача/ліда:
HelpCrunch('init', '<your organization domain / string>', {
appId: '<application id / string>',
user: {
email: '<user email / email>',
name: '<user name / string>',
phone: '<phone number / string>',
company: '<company name / string>',
user_id: '<user id /string>',
security_hash: '<security hash / string>',
custom_data: {
money_spent: 2500,
subscription: 'gold',
accepted_agreement: true,
},
},
signature: '<signature / string>',
});
updateUser
Використовуйте його, щоб додати або оновити поточні параметри клієнта, як-от ім’я, електронна адреса, телефон, компанія та customData (об’єкт із будь-якими довільними даними, які ви хочете записати). Якщо для поточного відвідувача не існує ініціалізованого користувача, цей метод створить нового користувача, і ви зможете побачити його на сторінці "Контакти" у своєму обліковому записі HelpCrunch. Цей метод корисний, коли користувач вносить будь-які зміни у свої основні атрибути, і ви хочете миттєво побачити це у своєму обліковому записі HelpCrunch.
Параметри:
user
: об’єкт. Перегляд детального профілю користувача в розділі користувача у веб-SDKsignature
(за бажанням): рядок. Потрібен лише в режимі автентифікації користувача, коли ви хочете захистити дані користувача за допомогою підпису безпеки на бекенді. Докладніше про це — в розділі "Підпис захисту".callback
(за бажанням): функція
var user = {
email: '<user email / email>',
name: '<user name / string>',
company: '<company name / string>',
user_id: '<user id / string>',
phone: '<phone number / string>',
security_hash: '<security_hash /string>',
custom_data: {
money_spent: 2500,
subscription: 'gold',
accepted_agreement: true,
},
};
HelpCrunch('updateUser', user, 'e8aa8af95cd6a05b80308dcb3dd6901d', function() {});
Приклад:
Користувач змінює (або додає) свою електронну адресу у вашому односторінковому застосунку. Щоб побачити цю зміну в панелі адміністратора HelpCrunch, ви можете просто викликати:
var userEmail = '[email protected]';
HelpCrunch('updateUser', { email: userEmail });
userAuth
За допомогою методу userAuth можна авторизувати клієнта. Для цього методу потрібні два параметри – email і user_id. Однак ви можете додати й інші параметри, наприклад name, company, phone.
Зверніть увагу, що атрибут user_id
має бути унікальним для кожного користувача! Переконайтеся, що ви передаєте його як рядок.
Зазвичай цей метод корисний, якщо ви хочете відкласти авторизацію до моменту активації деяких тригерів або якщо на вашому сайті є одна сторінка з динамічно оновлюваним вмістом (односторінковий застосунок).
user
: об'єктsignature
(за бажанням): рядок. Потрібен лише в режимі автентифікації користувача, коли ви хочете захистити дані користувача за допомогою підпису безпеки на бекенді.callback
(за бажанням): функція
HelpCrunch('userAuth', {
email: '<user email / email>',
user_id: '<user id / string>'
});
Оновлює власні дані поточного користувача. Власні дані — це об’єкт із будь-якими випадковими даними, які ви хочете записати, а потім використовувати у HelpCrunch. Цей метод корисний, коли користувач вносить будь-які зміни у власні атрибути, і ви хочете миттєво побачити це у своєму обліковому записі HelpCrunch. Параметри:
userData
: об'єктsignature
(за бажанням): рядок. Потрібен лише в режимі автентифікації користувача, коли ви хочете захистити дані користувача за допомогою підпису безпеки на бекенді.callback
(за бажанням): функція
var userData = {
money_spent: 2500,
subscription: 'gold',
accepted_agreement: true,
};
HelpCrunch('updateUserData', userData,'e8aa8af95cd6a05b80308dcb3dd6901d', function() {});
Приклад:
Ви хочете підрахувати, скільки разів ваш користувач натиснув якусь важливу кнопку. Для цього ви зберігаєте лічильник у localStorage та викликаєте onClick.
document.getElementById('important-button').onclick = function () {
var counter = window.localStorage.getItem('counter');
counter++;
window.localStorage.setItem('counter', counter);
HelpCrunch('updateUserData', { importantButtonClicks: counter });
}
trackEvent
Ви можете відстежувати будь-які власні події, які виконує робить на вашому сайті, і переглядати його історію подій в обліковому записі HelpCrunch. Докладніше про це — в розділі відстеження власних подій.
Параметри:
eventName
: рядок
HelpCrunch('trackEvent', eventName);
Приклад:
Ви хочете знати, що користувач натиснув кнопку "Оформити замовлення". Код буде виглядати так:
document.getElementById('checkout-button').onclick = function() {
HelpCrunch('trackEvent', 'checkoutButtonClick');
}
setLocalization
Викличте setLocalization, якщо хочете запустити спеціальну локалізацію або власні тексти чату. За замовчуванням вам доступно 6 мов, і чат вибере локалізацію відповідно до мови браузера користувача. Якщо цю мову не знайдено, у чаті відображатиметься мова за умовчанням. Докладніше про це — в розділі про локалізацію віджета.
Параметри:
phraseListName
: рядок
HelpCrunch('setLocalization', phraseListName);
Приклад:
Ви створили список фраз клінгонської мови у своєму обліковому записі адміністратора та назвали його "klingonian". Щоб увімкнути його в чаті HelpCrunch на вашій сторінці, запустіть наступний код перед показом віджета чату:
HelpCrunch('setLocalization', 'klingonian');
sendProactiveChatAutoMessage
HelpCrunch пропонує систему автоматичних проактивних повідомлень у чаті, щоб автоматично звертатися до відвідувачів і лідів. Ви можете налаштувати правила автоматичного надсилання повідомлень у своєму обліковому записі HelpCrunch або просто викликати його з веб-SDK JS API. Докладніше про це — в розділі про надсилання проактивних автоматичних повідомлень чату за допомогою JavaScript API.
Параметри:
autoMessageId
: номер
HelpCrunch('sendProactiveChatAutoMessage', autoMessageId);
Приклад:
Ви хочете запропонувати клієнту знижку, якщо він відсортує ваші товари за ціною в порядку зростання або просто натисне кнопку "Отримати знижку" (або будь-яку іншу). Для цього вам потрібно створити проактивне автоматичне повідомлення чату у своєму обліковому записі HelpCrunch, увімкнути його та скопіювати його ID на сторінці редагування. Якщо припустити, що ID — 1420, код може бути наступним:
var proposeDiscount = function () {
HelpCrunch('sendProactiveChatAutoMessage', 1420);
}
document.getElementById('i-want-discount-button').onclick = proposeDiscount;
document.getElementsByClassName('sort-goods').onclick = function (event) {
if (event.target.attributes.order == 'asc' && event.target.attributes.field == 'price') {
proposeDiscount();
}
}
sendUserMessage
Іноді вам потрібно надіслати оператору служби підтримки повідомлення від імені користувача про певну дію користувача. Цей метод підходить для цього.
Параметри:
messageText
: рядок
HelpCrunch('sendUserMessage', messageText);
Приклад:
Ви хочете, щоб ваш оператор служби підтримки отримував повідомлення з текстом «CALLBACK: +12312312313», коли користувач вводить свій номер телефону в якусь форму та натискає кнопку "Перетелефонуйте мені" на вашому сайті. Цей код виглядатиме так:
document.getElementById('callback-button').onclick = function () {
var phoneNumber = document.getElementById('callback-input').value;
if (phoneNumber) {
HelpCrunch('sendUserMessage', 'CALLBACK: ' + phoneNumber);
}
}
typeUserMessage
Цей метод дозволяє додати попередньо заповнене повідомлення до області вводу тексту, не надсилаючи його.
Параметри:
messageText
: рядок
HelpCrunch('typeUserMessage', messageText);
logout
На деяких сайтах користувач може мати кілька облікових записів і може входити/виходити, щоб переключатися між ними. Якщо ви використовуєте режим автентифікації користувача, ви можете зробити те саме для свого віджета HelpCrunch, щоб дані з одного облікового запису користувача не передавалися іншому. Для цього можна використати метод logout з системи:
Параметри:
callback
(за бажанням): функція
HelpCrunch('logout', function(data) {
if (data && data.success) {
// do something
}
});
muteNotificationSound
На деяких веб-сторінках ви можете не хотіти переривати користувачів звуками сповіщень чату. Наприклад, це можуть бути конференц-зали, класні кімнати тощо. Додавання цього булевого методу блокуватиме звуки чату на таких сторінках.
Параметри:
value
: булеві
HelpCrunch('muteNotificationSound', true);
setChatButtonOffset
Положення кнопки чату на сторінці можна змінювати динамічно або статично за допомогою цього методу API.
Параметри:
horizontal
: номерbottom
: номер
HelpCrunch('setChatButtonOffset', horizontal, bottom);
setOperatingHours
Загальне налаштування "Робочі години" для всіх віджетів чату доступне в Налаштуваннях. Щоб перевизначити це налаштування для конкретного віджету чату, можна використовувати метод 'setOperatingHours' після коду віджету.
HelpCrunch('setOperatingHours', {
timezone: 'Europe/London',
hours: {
monday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
tuesday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
wednesday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
thursday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
friday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
saturday: {
is_enabled: false,
from: "03:00",
to: "13:00",
},
sunday: {
is_enabled: false,
from: "03:00",
to: "13:00",
},
}
});
Список часових поясів, які можна використовувати з цим методом:
'Pacific/Midway', 'Pacific/Honolulu', 'Pacific/Tahiti', 'Pacific/Gambier', 'America/Adak', 'America/Anchorage',
'America/Metlakatla', 'America/Los_Angeles', 'America/Tijuana', 'America/Chihuahua', 'America/Mazatlan',
'America/Managua', 'Canada/Saskatchewan', 'America/Mexico_City', 'America/Monterrey', 'America/Lima', 'America/Bogota',
'America/Caracas', 'America/La_Paz', 'America/Campo_Grande', 'America/New_York', 'Canada/Atlantic', 'America/Santiago',
'America/Sao_Paulo', 'America/Argentina/Buenos_Aires', 'Canada/Newfoundland', 'America/Godthab', 'America/Noronha',
'Atlantic/South_Georgia', 'Atlantic/Cape_Verde', 'Atlantic/Azores', 'Africa/Monrovia', 'Africa/Casablanca',
'Europe/Lisbon', 'Europe/London', 'Africa/Lagos', 'Europe/Amsterdam', 'Europe/Belgrade', 'Europe/Berlin',
'Europe/Bratislava', 'Europe/Brussels', 'Europe/Budapest', 'Europe/Copenhagen', 'Europe/Ljubljana', 'Europe/Madrid',
'Europe/Paris', 'Europe/Prague', 'Europe/Rome', 'Europe/Sarajevo', 'Europe/Skopje', 'Europe/Stockholm', 'Europe/Vienna',
'Europe/Warsaw', 'Europe/Zagreb', 'Africa/Cairo', 'Africa/Harare', 'Africa/Johannesburg', 'Europe/Athens',
'Europe/Bucharest', 'Europe/Istanbul', 'Asia/Jerusalem', 'Europe/Helsinki', 'Europe/Kyiv', 'Europe/Riga', 'Europe/Sofia',
'Europe/Tallinn', 'Europe/Vilnius', 'Asia/Baghdad', 'Asia/Kuwait', 'Europe/Minsk', 'Africa/Nairobi', 'Asia/Riyadh',
'Europe/Volgograd', 'Europe/Moscow', 'Asia/Muscat', 'Asia/Baku', 'Asia/Tbilisi', 'Asia/Yerevan', 'Asia/Dubai',
'Europe/Samara', 'Indian/Reunion', 'Asia/Karachi', 'Asia/Tashkent', 'Asia/Yekaterinburg', 'Indian/Maldives',
'Asia/Kolkata', 'Asia/Almaty', 'Asia/Dhaka', 'Asia/Urumqi', 'Asia/Bangkok', 'Asia/Jakarta', 'Asia/Novosibirsk',
'Asia/Krasnoyarsk', 'Asia/Hong_Kong', 'Asia/Kuala_Lumpur', 'Australia/Perth', 'Asia/Singapore', 'Asia/Taipei',
'Asia/Irkutsk', 'Asia/Tokyo', 'Asia/Seoul', 'Asia/Yakutsk', 'Australia/Adelaide', 'Australia/Darwin',
'Australia/Brisbane', 'Pacific/Guam', 'Australia/Hobart', 'Australia/Melbourne', 'Pacific/Port_Moresby',
'Australia/Sydney', 'Asia/Vladivostok', 'Asia/Magadan', 'Pacific/Fiji', 'Pacific/Kwajalein', 'Asia/Kamchatka',
'Pacific/Auckland',
Приклад повного коду віджету разом з робочими годинами:
<script type="text/javascript">
window.helpcrunchSettings = {
organization: 'helpcrunch',
appId: 'a47f724b-bh1f-4504-7fa7-0fbf7dg84kb0',
user: {
user_id: 'userOneHash',
name: 'User One',
email: '[email protected]',
phone: '+380123456789',
company: 'my company',
custom_data: {
is_active: true,
money_spent: 2500,
subscription: 'gold',
accepted_agreement: true,
},
},
};
</script>
<script type="text/javascript">
(function(w,d){var hS=w.helpcrunchSettings;if(!hS||!hS.organization){return;}var widgetSrc='https://'+hS.organization+'.widget.helpcrunch.com/';w.HelpCrunch=function(){w.HelpCrunch.q.push(arguments)};w.HelpCrunch.q=[];function r(){if (d.querySelector('script[src="' + widgetSrc + '"')) { return; }var s=d.createElement('script');s.async=1;s.type='text/javascript';s.src=widgetSrc;(d.body||d.head).appendChild(s);}if(d.readyState === 'complete'||hS.loadImmediately){r();} else if(w.attachEvent){w.attachEvent('onload',r)}else{w.addEventListener('load',r,false)}})(window, document)
HelpCrunch('setOperatingHours', {
timezone: 'Europe/London',
hours: {
monday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
tuesday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
wednesday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
thursday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
friday: {
is_enabled: true,
from: "03:00",
to: "13:00",
},
saturday: {
is_enabled: false,
from: "03:00",
to: "13:00",
},
sunday: {
is_enabled: false,
from: "03:00",
to: "13:00",
},
}
});
</script>
openKBArticle
Для відкриття конкретних статей бази знань у віджеті чату, в певній локалізації:
HelpCrunch('openKBArticle', { articleId: 125, lang: 'uk' })
setMediaCSS
Медіа CSS корисний, коли ви хочете змінити стилі віджетів, визначивши певні класи, залежно від розміру вікна перегляду браузера.
HelpCrunch('setMediaCSS', {
maxWidth: {
800: 'max-width-800-class',
320: 'max-width-320-class'
},
maxHeight: {
400: 'max-height-400-class'
}
})
Приклад:
#helpcrunch-container.max-width-800-class .helpcrunch-status-bar .helpcrunch-widget-icon-wrapper {
color: tomato;
}