Einstein Chatbot

Всім привіт!

У цій статі розкажемо про Einstein Chatbot, а також звернемо увагу на такі речі, як Omni-Channel, Lightning Knowledge Base, Embedded Service Deployment та інше.
Перш за все зазначимо, що ця функціональність доступна для Service Cloud User та Chat User feature license в Enterprise, Performance, Unlimited та Developer виданнях. Chat User feature license можна отримати при купівлі Digital Engagement, який є add-on для Service Cloud. Також, важливим обмеженням є те, що для кожної ліцензії Digital Engagement доступно по 25 розмов з ботом у місяць. Якщо їх не вистачає, то можна докупити Additional Einstein Bot Conversations, який надає 100 додаткових розмов в місяць за 50$. Ціни актуальні на момент написання статті. У майбутньому, можливо, будуть змінюватись.

Для початку нам потрібно налаштувати звичайний чат без Einstein бота. Для цього треба зайти в Setup > Chat Settings > Enable Chat > Save. Наступні налаштування, які з’являться після активації чату залишаємо за замовчуванням.

Після цього переходимо у Service Setup та на компоненті “Recommended Setup” вибираємо View All.

Знаходимо Chat with Customers.

Пропускаємо перший крок, на другому вводимо назву черги та групи. Наприклад Queue Name = Cases Queue, Name This Group = Support Group. Та вибираємо потрібного юзера знизу.

Налаштуємо робоче навантаження агентів у чаті.
Існує два параметри для налаштування:

  1. Work Item Size - описує навантаження одного рекорда на агента.
  2. Agent Capacity - описує загальне навантаження на одного агента.

У даному випадку один рекорд матиме 5 умовних одиниць навантаження, а загальне 20 умовних одиниць. Відповідно, на одного агента може призначатись до 4 рекордів одночасно. Пізніше, щоб змінити ці параметри, маємо зайти в Setup > Routing Configurations і у потрібній конфігурації змінити поле Units of Capacity, для зміни навантаження одного рекорда на агента. Також, Setup > Presence Configurations і у потрібній конфігурації змінити поле Capacity для зміни загального навантаження на одного агента.

Далі потрібно вказати посилання на сайт, на якому буде використовуватись даний чат. Якщо у вас існує сайт, то ви можете вказати це посилання. У свою чергу я задам посилання свого Public Site. Можна вибрати будь-який доступний домен, перебираючи бажані варіанти.

На наступному кроці вибираємо сферу застосування чату. Тобто, які рекорди будуть створюватись при ініціюванні чату зі сторони користувача. Доступні варіанти:

  • Створення Leads
  • Створення Case and Contacts
  • Створення Contacts

Чи потрібна оффлайн підтримка? Наразі я не хочу мати такий функціонал, тому пропускаю. При потребі, його можна буде включити згодом у Setup > Embedded Service Deployments > View > Chat Settings > Offline Support.

Після чого Salesforce запустить процес налаштування, який триватиме декілька секунд.

У результаті ми отримуємо фрагмент скрипту, який потрібно буде вставити на кожну веб-сторінку сайту, де ми хочемо використовувати чат. Рекомендується вставляти цей скрипт перед HTML тегом .

Скопіюємо скрипт та спробуємо вставити його на сайт, та перевіримо працездатність щойно налаштованого функціонала. Якщо у вас не має власного сайту, ви можете створити Visualforce сторінку з цим кодом. Я використовую Public Site, тому для зручності задам створену сторінку як Home Page. Для цього переходимо у Setup > Sites > Edit. Біля Active Site Home Page натискаємо на іконку пошуку, вибираючи потрібну сторінку та зберігаємо зміни.

Відкриваємо нову вкладку та переходимо в App Launcher та вибираємо Service Console. На компоненті Utility Bar натискаємо на Omni Channel > Available - Chat.

Виступимо у ролі клієнта. Відповідно, переходимо на веб-сайт і бачимо у нижньому правому кутку кнопку Chat with Agent. Клікаємо на неї та вводимо свої дані.

Зі сторони агента служби підтримки бачимо, що був створений рекорд Chat Transcript.

Переходимо на рекорд та маємо змогу спілкуватись з клієнтом в режимі реального часу.

Однак, у такого підходу є ряд критичних моментів, а саме:

  • Велика кількість агентів для обробки усіх запитів вчасно
  • Необхідність цілодобової роботи агентів
  • Низький рівень CSAT (Customer Satifaction Score) клієнтів при довгому очікуванні розв’язання проблеми
  • Частина запитів - однотипні проблеми

Хотілось б уникнути таких негативних наслідків. Отже, додамо чатбота, який буде працювати 24/7, зможе обслуговувати нескінченну кількість клієнтів паралельно, а рутинні та схожі проблеми будуть мати підготовлені варіанти відповідей.

Попередня підготовка перед імплементацією бота вимагає лише зайти в Setup > Einstein Bots > включити Einstein Bots.

Створюємо новий екземпляр бота, для цього натисніть Create a New Bot знизу.

Існує два типи ботів: стандартний або покращений. Не будемо акцентувати увагу на їх різниці, якщо ця тема справді цікава для вас, то можете ознайомитись тут. Наразі вибираємо стандартного.

Обираємо Intro Template та будемо модифікувати для власних потреб, замість того, щоб робити все з нуля.

Називаємо бота та вибираємо мову

Бот буде спеціалізуватись на сервісі служби підтримки клієнтів, тому виключаємо зайві опції.

Пропустимо цей крок, поговоримо про нього трохи згодом.

У кінці натискаємо на кнопку Proceed для закінчення налаштувань.

Якщо все налаштовано правильно, то навпроти кожного пункту з’явиться зелена галочка, і кнопка Finish стане доступною.

Відбувається переадресування на Einstein Bot Builder сторінку. Пропонуємо ознайомитись зі стандартним флоу. Для цього в піклісті виберіть Map замість Detail

Бот працює за наступним принципом.

На перший погляд, може здатись, що схема дуже громіздка та заплутана, але не переживайте, бо насправді це не так. Ви все легко освоїте, коли почнете працювати з нею. Також, це схоже на схеми в Flow Builder, тому якщо у Вас є досвід роботи з Flow – це буде хорошою перевагою і полегшить процес дослідження цієї схеми.

Під час налаштування бота був пропущений один крок, – як і обіцяли повертаємось до нього. Підключімо бот до чату. Для цього перейдемо на вкладку Overview.

Знаходимо секцію Connections та натискаємо Add.

Вибираємо Connection = Chat, Deployment = назва групи, яку ми вказали на початку. У даному випадку це Support Group. Require Agent Online залишаємо виключеним.

У секції Bot Response Delay можна налаштувати затримку бота перед кожною відправкою повідомлення, яка імітує швидкість набору тексту.

Для відлагодження бота існує можливість зберігати дані про розмову. Щоб отримати таку можливість, потрібно у секції Log Conversation включити Store Einstein Bots conversation data. Ця функція стає у пригоді коли виникають проблеми з не очікуваною поведінкою, тому наполегливо рекомендуємо включити її при розробці. Однак варто пам’ятати, що ця функція може зберігати певні чутливі дані, отже на виробничій організації рекомендується, навіть потрібно, відключати її.

Також налаштуємо юзера, від імені якого буде запускатись транзакція. Для цього в секції Bot User натисніть на іконку олівця та в пункті Bot performs actions as виберіть Custom Chatbot User (Recommended) та знайдіть свого користувача.

При наслідуванні цих кроків бот повинен мати такі налаштування:

Нарешті, активуємо бота у правому верхньому куті.

Чудово! Базове налаштування завершене. Пропонуємо перевірити на даному етапі працездатність бота. Перейдемо на ресурс (веб-сайт або public site) та зініціюємо розмову.

На відміну від звичайного чату, як агент служби підтримки я не буду бачити новий рекорд в Omni-Channel, бо фактично тепер бот приймає чат замість нас.

Чат розпочинається автоматично і на даному етапі у нас є дві опції, а саме Report an issue та Check the status of an existing issue.

Виступимо у ролі клієнта, який зіштовхнувся з певною проблемою, про яку хоче повідомити. Для цього вибираємо Report an issue та описуємо проблему

Вказуємо дані для зворотного зв’язку

Та назву компанії

Після чого бачимо, що кейс був успішно створений, а також ми отримали номер, по якому ми можемо відстежувати прогрес обробки нашого звернення.

Якщо ми повернемось на головне меню, виберемо Check the status of existing issue, та вкажемо дані, щоб бот знайшов саме наш кейс,

то в результаті ми отримаємо статус нашого кейсу та пропозицію додати коментар до нього.

Коли агент служби підтримки прийде на робоче місце, то побачить створений кейс без його участі. Агент вирішить проблему та перетелефонує клієнту чи відпише на емейл. Також агент зможе побачити листування бота з клієнтом та пов’язані рекорди, що були створені в процесі розмови.

Уявімо ситуацію, що у клієнта виникло якесь специфічне питання, для якого потрібно зв’язатись з агентом, а не створювати кейс. Для того, щоб надати таку можливість клієнтам, потрібно зайти в Setup > Einstein Bots > вибрати бота > Main Menu > додати Transfer to Agent в меню.

Зберігаємо та активуємо бота. Важливо розуміти, що переведення на агента доступне, лише якщо він онлайн.

Ми надали можливість розмови з агентом і тим самим спричинили проблему більшого навантаження на працівника. Пропонуємо налаштувати Lightning Knowledge Base, щоб клієнти могли спочатку спробувати знайти вирішення на свою проблему самостійно, а у випадку якщо це не вирішило питання, аж тоді звернутись до агента.

Знову ж таки заходимо в Service Setup > Recommended Setup > View All > Knowledge Setup.

Зверніть увагу, що увімкнувши Lightning Knowledge – ви не зможете його вимкнути.

Вибираємо юзера, який буде мати доступ до створення статей.

Є можливість створити категорії для рекордів Knowledge Articles, але я не бажаю цього створювати, тому пропускаю цей крок.

Потрібно наповнити базу даних рекордами Knowledge Articles та згенерувати модель штучного інтелекту, яка буде шукати відповідні статті на основі введеного запитання від користувача. Мінімальна кількість для генерації моделі – 10 рекордів. Для того, щоб запустити процес навчання потрібно перейти в Setup > Einstein Bots > Smart Features > Get Started.

Після чого мапимо потрібні поля та запускаємо процес тренування, який може тривати досить суттєвий проміжок часу. З особистого досвіду, мінімальний час за який відбувалось навчання – 30 хвилин.

Після завершення навчання, заходимо на Overview в Einstein Bot Builder. У секції Settings знаходимо Article Answers. Вмикаємо цю опцію.

Повертаємось на вкладку Dialogs та бачимо, що з’явився новий діалог Article Answers.

За бажанням можете змінити процес, який відбувається при виклику цього діалогу, своєю чергою – я залишу його без змін. Якщо поставити питання, тоді бот стригерить пошук в базі знань і система знаходитиме найбільш релевантні статті відповідно до даного питання. Якщо ж у базі не буде відповіді на питання, у такому випадку бот пропонує спробувати ще раз.

Ви можете налаштовувати діалоги як вам до вподоби. Наприклад, створити флоу, яке буде збирати інформацію невдалих спроб пошуку відповіді і зберігати ці дані в СФ, щоб надалі ви могли покращувати базу знань і підвищувати рівень задоволеності клієнтів.

Отже, наведемо невелике резюме виконаної роботи:

  1. Налаштовано чати з користувачем.
  2. Добавлено скрипт на Visualforce сторінку.
  3. Винесено сторінку з скриптом на Public Site.
  4. Включено та налаштовано бота.
  5. Налаштували Lightning Knowledge Base.
  6. Добавили статті з часто задаваними питання.
  7. Натренували модель штучного інтелекту для того, щоб надати можливість користувачам самостійно знаходити відповіді на часто задавані питання.

Об’єктивно, тема Einstein Bot надто велика для того, щоб описати все в одній статті. Якщо ви зацікавлені даною тематикою – пропонуємо продовжити самостійне вивчення з такими темами як:

  • Enhanced Einstein Bots – покращенні чатботи
  • Dialog Intents – для маршрутизації клієнта на різні діалоги на основі введеного тексту
  • Multiple Languages Knowledge Base – для локалізації Lightning Knowledge Base на різні мови
  • Multiple Languages Einstein Bot – для локалізації діалогів бота на різні мови
  • Flow/Apex – для розширення можливостей бота
  • Omni-Channel – глибше вивчення даної теми для ефективного розподілу чатів між агентами служби підтримки
  • Supervisor Configurations – для створення системи контролю над агентами служби підтримки та допомозі з вирішенням питань клієнтів

Успіхів та наснаги у вивченні Salesforce!

До скорої зустрічі!

3 Вподобання