Бот працює на основі 15 бізнес-процесів. Основний процес чатбота - це Beesender Welcome бот, який складається з кількох етапів.
Table of Contents | ||||
---|---|---|---|---|
|
Beesender – Welcome Bot
...
Спочатку чат з'єднується з бізнес-процесом через елемент 'Connect chat'. Потім виконується перевірка, щоб уникнути повторного запуску процесу чатбота, якщо він вже працює в поточному чаті. Після цього ініціюється підпроцес вибору мови, а за ним - отримання відповідей чатбота для обраної мови.
Далі йдуть два елементи Beesender: "Beesender: Текстове повідомлення" з вітальною відповіддю привітанням від чатбота. Якщо контакт впізнанийвже є в системі, вітальне повідомлення чатбота буде включати ім'я контакту, тоді як для невпізнаних нових контактів буде надіслано загальне вітальне повідомлення. Наступний елемент - це Beesender: Задати питання ‘Main menu’, яка дозволяє користувачам вибирати різні опції відповідно до їхніх потреб.
...
Якщо результат будь-якого підпроцесу або кнопки у меню (головному або другому) передбачає закриття чату, бот активує відповідний підпроцес Beesender - Close chat.
Beesender – Choose Language
Спочатку генерується колекція доступних перекладів на основі налаштувань “Мова використовується” та “Мова доступна” у роздiлi “Налаштування welcome бота”. Потім проводиться перевірка на наявність перекладу на переважну мову впізнаного контакту в чаті.
Далі йде перевірка на наявність запису “Налаштування welcome бота”, де параметр 'language' дорівнює переважній мові впізнаного контакту в чаті, за умови, що параметри “Мова використовується” та “Мова доступна” встановлені як істина у цьому записі.
...
Якщо процес розпізнає контакт у чаті впізнаний, і та існує відповідний запис у “Налаштування welcome бота” з установленими параметрами 'Мова використовується' та 'Мова доступна' = true, і користувач не обрав функцію 'Змінити мову', тоді параметр 'LanguageId' буде заповнено відповідно до переважної мови з картки контакту.
Якщо існує лише один запис “Налаштування welcome бота”, який відповідає умовам, тоді параметр 'LanguageId' буде заповнений мовою з відповідного запису.
Якщо немає записів “Налаштування welcome бота”, які відповідають умовам, чатбот повідомить користувача англійською мовою: "The chat was closed." і чат буде закрито.
У всіх інших випадках чатбот запропонує користувачу вибрати мову зі списку, який відповідає умовам. Параметр 'LanguageId' буде заповнений відповідно до мови, обраної користувачем. Обрана мова також буде занесена в картку контакту у поле 'переважна мова' та у картку чату у поле 'Мова спілкування'.
Info |
---|
Фрази у всіх елементах беруться з картки “Налаштування welcome бота” для мови, обраної користувачем. |
Beesender – Client identification, registration
...
На початку процесу ідентифікації клієнта проводиться перевірка на наявність контакту та на те, чи дав він згоду на обробку даних (поле 'Згода' у картці Контакту).
Далі, якщо контакт не дав згоди і прапорець ‘Запитувати згоду на обробку даних' установлено як 'true’ у записі конфігурації Welcome Bot для поточної мови, або контакт не впізнаний розпізнаний і прапорець 'Запитувати згоду на обробку даних' установлено як істина у записі конфігурації Welcome Bot для поточної мови, бот запитує згоду на обробку даних.
Якщо користувач не дає згоди на обробку даних або обирає повернутися до головного меню, параметр GoTo заповнюється значенням "Main Menu". Цей параметр буде використовуватися у процесі Beesender - Welcome Bot.
Якщо користувач обирає закрити чат, параметр GoTo заповнюється значенням "Close chat". Цей параметр також буде використовуватися у процесі Beesender - Welcome Bot.
Якщо користувач дає згоду на обробку даних, виконуються елементи 'Read ChatMessageGDPRQuestion' та 'Read ChatMessageGDPRAnswer', які отримують ID повідомлень питання бота та відповіді користувача.
Якщо контакт визнано був розпізнаний у чаті, параметр ContactId заповнюється визнаним значенням контакту. Запускається процес Beesender - Log GDPR. Потім перевіряється, чи введена електронна пошта у картці контакту.
Якщо електронна пошта не введена у визнаній картці контакту, запускається процес Beesender - Enter Your Email. Після цього запускається елемент ‘Set Email to Contact’, який заповнює поле електронної пошти у визнаній картці контакту.
Якщо електронна пошта введена, процес завершується.
Якщо контакт не визнано у чаті, запускається процес Beesender - Enter Your Email. Потім виконується пошук контакту з такою ж електронною поштою на основі параметру Email з цього процесу.
Якщо знайдено контакт з такою електронною поштою, то параметр ContactId заповнюється значенням знайденого контакту в елементі формули "Set ContactId". І запускається вбудований процес з пакету Beesender - Bind channel to contact is started. Після цього процесу запускається процес Beesender - Log GDRP, і процес Beesender - Client identification, registration, реєстрація завершується.
Якщо контакт з такою електронною поштою не знайдено, використовується елемент 'Читання CC з введеною електронною поштою' для пошуку контакту, який включає дану електронну пошту до своїх комунікаційних опцій.
Якщо контакт з такою електронною поштою не знайдено, використовується елемент 'Read CC with entered email' для пошуку контакту, який включає дану електронну пошту до своїх комунікаційних опцій.
Якщо такий контакт знайдено, то параметр ContactId заповнюється значенням знайденого контакту в елементі формули "Set ContactId". За допомогою елемента 'set Preferred Language' поле 'Вибрана мова' у картці знайденого контакту заповнюється мовою, яку користувач обрав під час процесу Beesender - Choose Language. І запускається вбудований процес з пакету Bind channel to contact is started. Після цього процесу запускається процес Beesender - Log GDRP, і процес Beesender - Client identification, registration завершується.
Якщо такий контакт не знайдено, бот просить користувача вказати своє повне ім'я за допомогою елементу Beesender: Повідомлення з кнопками ‘Please enter your full name’ Далі створюється новий контакт за допомогою елемента Додавання даних 'Create a new contact', з заповненими полями: Повне ім'я, електронна пошта та вибрана мова. Потім параметр ContactId заповнюється значенням створеного контакту в елементі формули "Set ContactId". Після цього запускається вбудований процес з пакету Beesender - Bind channel to contact is started. Після цього процесу запускається процес Beesender - Log GDRP, і процес Beesender - Client identification, registration завершується.
Beesender – Enter Your Email
...
На початку бізнес-процесу є елемент Beesender: Повідомлення з кнопками "Please enter your email", через який чат-бот підказує користувачу ввести свою електронну пошту.
...
Цей параметр Email використовується у процесі Beesender - Client Identification, Registration process.
Beesender - Log GDPR
...
Процес “Beesender - Log GDPR” включає передачу наступних параметрів:
...
У результаті цього підпроцесу запис Контакту відображає деталь Згода на обробку персональних даних з повідомленнями чат-бота та користувача щодо згоди на обробку даних.
...
Bind channel to contact (from Beesender package)
Процес BindChannelToContact є вбудованою функцією додатку Beesender. Він є важливим для асоціації користувача з певним контактом, забезпечуючи впізнаваність користувача як цього контакту у подальших сесіях чату.
...
Цей процес не тільки покращує загальний досвід клієнтів, але й допомагає організаціям краще розуміти потреби, переваги та проблеми своїх клієнтів, що призводить до більш обізнаного прийняття рішень та цілеспрямованих стратегій підтримки.
Beesender – Callback request
...
На початку процесу Beesender – Callback Request використовується елемент “Read Contact Data” для отримання інформації про контакт. Після отримання даних контакту, процес перевіряє, чи заповнений у картці контакту номер телефону.
...
Далі, і у випадку, коли клієнт обрав "Так" у елементі Beesender: Повідомлення з кнопками ‘‘Can we call this number {Number}?' чат-бот запитує бажаний час для дзвінка, використовуючи елемент Beesender: Повідомлення з кнопками 'What time would you like us to call you?’. Потім чат-бот підтверджує з користувачем, що йому незабаром зателефонують, використовуючи елемент Beesender: Текстове повідомлення 'Thank you! We will call you soon'. Потім, використовуючи формульний елемент 'Set Subject', текстовий параметр Subject заповнюється наступним значенням: "Прийняти запит на зворотний дзвінок. Джерело: чат-бот. Ім'я: "Accept the request for a callback. Source: chatbot. Name: " +{Contact name}+ ", phone number: "+{Phone}+", time to call: "+{Answer}+"."Then, using the 'Create activity' Add data element, a new activity is created with the following parameters:
Потім, використовуючи елемент 'Create activity' Додати дані, створюється нова активність з наступними параметрами:
Contact: ID контакту
Subject: текстовий параметр Subject
Type: Дзвінок
Show in calendar: Так
Due: Поточний час + 1 день
Beesender Chat: ID поточного чату
Beesender – Frequently Asked Questions
...
The process consists of three sub-processes: Процес Beesender - Frequently Asked Questions складається з трьох підпроцесів:
...
Якщо результат процесу Beesender - Find question category є Повернення до головного меню, то параметр ‘FAQResult’ заповнюється, який використовується у головному процесі Welcome Bot.
If the result of the process is Back to the main menu, then also the FAQResult parameter is filled out, which is taken in the main Welcome Bot process.
Якщо результат процесу Beesender – Find Question є Повернення до головного меню, то також параметр FAQResult заповнюється, який використовується у головному процесі Welcome Bot.
If the result of the process is Change a category, then the chatbot returns to the sub-process.
Якщо результат процесу Якщо результат процесу Beesender – Find Question є Зміна категорії, тоді чат-бот повертається до підпроцесу вибору категорії.
...
Якщо обрано опції Повернення до головного меню (Back to the main menu) або Закрити чат (Close the chat), параметр ‘FAQResult’ заповнюється, який використовується у головному процесі Welcome Bot.
Beesender – Find question category
...
На початку процесу Beesender - Find question category збираються категорії Поширених запитань, які відповідають обраній користувачем мові, за допомогою скриптового елементу 'Get Categories Collection'.
...
Якщо користувач натискає на кнопку категорії, значення ID обраної категорії зберігається за допомогою скриптового елементу.Similarly, the Beesender: Повідомлення з кнопками 'Choose category' always includes a Back to the main menu button at the end. If the user selects the Back to the main menu option, the GoTo parameter is filled with 'BackMainMenu' using the formula element, which is used in the Beesender – Frequently Asked Questions process. The process Beesender – Find question category is then completed.
Далі, використовуючи елемент Читати дані ‘read current FrequencyCount', отримується значення поля Частота Використання (Frequency Count) для обраної категорії, і за допомогою елементу Змінити дані 'set FrequencyCount+1', значення Частоти Використання збільшується на 1. Це необхідно для аналізу частоти вибору категорій. Процес Beesender – Find question category тоді завершується.
...
Аналогічно, Beesender: Повідомлення з кнопками 'Choose category' ('Оберіть категорію') завжди включає кнопку Back to the main menu (Повернення до головного меню) в кінці спiсусписку. Якщо користувач обирає опцію Повернення до головного меню, параметр GoTo заповнюється 'BackMainMenu' за допомогою формульного елементу, який використовується у процесі Beesender – Frequently Asked Questions. Процес Beesender – Find question category тоді завершується.
Beesender – Find Question
...
Процес Beesender - Find Question схожий на процес Beesender – Find question category, але використовується скриптовий елемент 'question list' для отримання колекції питань, які відповідають категорії, обраній користувачем.
...
Цей елемент використовується як деталі, які відображаються на вкладці FAQ у картці чату та на вкладці Чим цікавиться в картці контакту. Він також використовується в аналітиці у розділі Чати.
Beesender – Find Answer
...
Елемент читатi читати данi "if answer exists" використовується для отримання відповіді на обране питання.
Якщо така відповідь існує, елемент Beesender: Текстове повідомлення "Answer" надсилає текстове повідомлення користувачеві з відповіддю на обране питання.
Якщо відповідь не існує (тобто не заповнена у картці питання), то параметр EmptyQuesry заповнюється значенням "true" за допомогою формульного елемента ‘EmptyQuesry=true’. Цей параметр використовується у процесі Beesender – Find question category у елементі меню FAQ.
Beesender - Chat with an agent
...
На початку процесу Beesender - Chat with an agent спочатку читаються дані поточного чату, які необхідні для розподілу агентів. Після цього запускається процес FindFreeOperatorFromGroup.
...
Якщо вільний агент знайдений, чат-бот інформує користувача, що чат було перенаправлено до агента за допомогою елемента Beesender: Текстове повідомлення 'Chat transferred to an agent'. Після цього використовується вбудований процес BeesenderLogOperatorChange для запису даних про зміну агента. Дані відображаються у картці чату на вкладці Оператори у деталях Оператори.
FindFreeOperatorFromGroup (із пакету Beesender)
Процес FindFreeOperatorFromGroup є вбудованою функцією додатку Beesender. Він є невід'ємним для розподілу сесій чату між групою агентів. Цей процес гарантує, що вхідні запити на чат призначаються доступним агентам, що дозволяє ефективно та своєчасно надавати обслуговування клієнтам.
Використовуючи процес FindFreeOperatorFromGroup, додаток Beesender може рівномірно розподілити робоче навантаження між агентами у групі, запобігти перевантаженню будь-якого окремого агента та підтримувати високий рівень підтримки клієнтів. Ця функція особливо корисна для організацій, в яких декілька агентів працюють разом для обробки запитів клієнтів та підтримки.
BeesenderLogOperatorChange (із пакету Beesender)
Процес BeesenderLogOperatorChange є вбудованою функцією додатку Beesender. Він важливий для відстеження історії призначення агентів у картках чату, зокрема на вкладці "Оператори" та у деталі "Оператори".
Цей процес створює запис про те, який агент був призначений до чату, метод призначення та час призначення. Записуючи цю інформацію, додаток Beesender дозволяє краще контролювати та аналізувати процес розподілу чатів. Він допомагає організаціям стежити за ефективністю своїх агентів підтримки клієнтів, виявляти можливі вузькі місця або проблеми та оптимізувати загальний процес обробки чатів.
Beesender – Close Chat
...
Процес Beesender - Close chat складається з двох елементів:
...
Ці елементи виконуються паралельно. Це необхідно для того, щоб користувач міг бачити кнопку під час закриття чату, і чат-бот не чекав відповіді на кнопку.
...
Beesender Copy Categories and Questions to Added Welcome bot configuration record
...
Процес 'Beesender Copy Categories and Questions to Added Welcome bot configuration record' призначений для автоматичного створення записів категорій і питань у новій картці в розділі FAQ, коли створюється новий запис у розділі конфігурації Welcome bot, наприклад, коли потрібен переклад на нову мову. Адміністратору буде лише потрібно ввести переклади у новий запис.
...
Code Block | ||
---|---|---|
| ||
var WelcomeConfig = Get<Guid>("WelcomeConfig"); var welcomeConfigDefault = Get<Guid>("WelcomeConfigDefault"); var insertCategories = new InsertSelect(UserConnection) .Into("BeesenderFAQCategory") .Set("BeesenderFAQCategoryName","BeesenderFAQParentCategoryId","BeesenderWelcomeBotPhraseTranslationId","BeesenderFAQCategoryIsParent") .FromSelect(new Select(UserConnection) .Column("BeesenderFAQCategoryName") .Column("Id") .Column(Column.Parameter(WelcomeConfig)) .Column(Column.Parameter(false)) .From("BeesenderFAQCategory") .Where("BeesenderWelcomeBotPhraseTranslationId").IsEqual(Column.Parameter(welcomeConfigDefault)) as Select); insertCategories.Execute(); var insertCategoryQuestions = new InsertSelect(UserConnection) .Into("BeesenderFAQQuestion") .Set("BeesenderWelcomeBotPhraseTranslationId","BeesenderParentQuestionId","BeesenderCategoryId","BeesenderQuestion","BeesenderAnswer","BeesenderIsParent") .FromSelect(new Select(UserConnection) .Column(Column.Parameter(WelcomeConfig)) .Column("BQDef","Id") .Column("BCAdded","Id") .Column("BQDef","BeesenderQuestion") .Column("BQDef","BeesenderAnswer") .Column(Column.Parameter(false)) .From("BeesenderFAQQuestion").As("BQDef") .Join(JoinType.Inner, "BeesenderFAQCategory").As("BCAdded") .On("BQDef","BeesenderCategoryId").IsEqual("BCAdded","BeesenderFAQParentCategoryId") .Where("BQDef","BeesenderWelcomeBotPhraseTranslationId").IsEqual(Column.Parameter(welcomeConfigDefault)) .And("BCAdded","BeesenderWelcomeBotPhraseTranslationId").IsEqual(Column.Parameter(WelcomeConfig)) as Select); insertCategoryQuestions.Execute(); var insertNoCategoryQuestions = new InsertSelect(UserConnection) .Into("BeesenderFAQQuestion") .Set("BeesenderWelcomeBotPhraseTranslationId","BeesenderParentQuestionId","BeesenderQuestion","BeesenderAnswer","BeesenderIsParent") .FromSelect(new Select(UserConnection) .Column(Column.Parameter(WelcomeConfig)) .Column("Id") .Column("BeesenderQuestion") .Column("BeesenderAnswer") .Column(Column.Parameter(false)) .From("BeesenderFAQQuestion") .Where("BeesenderWelcomeBotPhraseTranslationId").IsEqual(Column.Parameter(welcomeConfigDefault)) .And("BeesenderCategoryId").IsNull() as Select); insertNoCategoryQuestions.Execute(); return true; |
Beesender Copy FAQ Category To Other Phrase Translations
...
Процес 'Beesender Copy FAQ Category To Other Phrase Translations' створений для автоматичного створення записів категорій у всіх інших мовних картках, коли нова категорія створюється у картці англійської мови. Адміністратору потрібно лише ввести переклади категорій на бажану мову.
...
Code Block | ||
---|---|---|
| ||
var faqCategoryId = Get<Guid>("FAQCategoryId"); var categoryName = Get<string>("CategoryName"); var wbPhraseTranslationId = Get<Guid>("WBPhraseTranslationId"); var sel = new Select(UserConnection) .Column("Id") .From("BeesenderWelcomeBotPhraseTranslation") .Where("Id").IsNotEqual(Column.Parameter(wbPhraseTranslationId)) as Select; List<Guid> selection = new List<Guid>(); using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) { using (IDataReader dataReader = sel.ExecuteReader(dbExecutor)) { while(dataReader.Read()) { if(!dataReader.IsDBNull(0)) selection.Add(dataReader.GetGuid(0)); } } }; if(selection.Count > 0) { var currentphrasetranslationId = Guid.NewGuid(); foreach (Guid record in selection) { currentphrasetranslationId = record; var ins = new Insert(UserConnection) .Into("BeesenderFAQCategory") .Set("BeesenderFAQCategoryName",Column.Parameter(categoryName)) .Set("BeesenderFAQParentCategoryId",Column.Parameter(faqCategoryId)) .Set("BeesenderWelcomeBotPhraseTranslationId",Column.Parameter(currentphrasetranslationId)); var affectedRows = ins.Execute(); } } return true; |
Beesender Copy FAQ Question To Other Phrase Translations
...
Процес 'Beesender Copy FAQ Question To Other Phrase Translations' призначений для автоматичного створення записів питань на всіх інших мовах, коли нове питання додається до англомовних Поширених запитань (FAQ). Адміністратору потрібно лише ввести переклади питань на відповідні мови.
...