Перейти к основному контенту

Урок 5: Автоматизируем службу поддержки

Цели и задачи

Вы когда-нибудь задумывались, как происходит работа в службе поддержки в большинстве компаний?

А ведь иногда это работа в качестве живых автоответчиков. Потому что большинство запросов, которые персоналу приходится разрешать — это стандартные вопросы и типовые проблемы, которые смог бы разрешить и чат-бот.

Согласно многочисленным опросам, почти 70% людей при обращении в поддержку хотят, чтобы проблемы решались моментально и им не важно, кто именно их будет решать. Они не хотят ждать, пока их вопрос пройдет длинных путь через  одного или нескольких специалистов, вернется к ним с постоянным повторением ситуации. Время — ценный товар, к которому люди в современном мире не относятся легкомысленно. 

Вот почему так много людей признаются, что предпочитают использовать чат-ботов и другие автоматизированные технологии для самообслуживания. Ведь чат-боты дают мгновенные ответы. Также люди ценят тот факт, что чат-бот может перенаправить их сразу к нужному человеку, если это понадобится, передав их контекст беседы, а еще он может помочь в нерабочее время.

Но при этом люди в службе поддержки сами работают как роботы, занимаясь копи-пастом ответов на часто-задаваемые вопросы, вместо того, чтобы фокусироваться исключительно на нестандартных, сложных и эмоциональных ситуациях, которые действительно требуют человеческого участия.

Задайте себе вопрос, как клиент компании (или пользователь сервиса), обратившись с проблемой в поддержку, в каком случае вы себя будете чувствовать лучше: когда к вам относятся как к очередной заводской операции, обслуживаемой копи-пастом, или когда к вам отнесутся с пониманием и уделят качественное внимание?

Приведем пару интересных исследований касаемо плохого клиентского опыта (CX):

  • После более чем одного неудачного опыта около 80% потребителей говорят, что они предпочли бы иметь дело с конкурентом. (Zendesk);
  • 1 из 3 клиентов покинет любимый бренд после всего лишь одного неудачного опыта, а 92% полностью покинут компанию после двух или трех негативных взаимодействий. (PwC).

Что можно отнести к плохому клиентскому опыту?

Иногда, это банально: забыли связаться с клиентом повторно. Вы можете избежать многих неприятных ситуаций, просто уделив клиенту больше заботы, отправив дополнительное письмо, написав сообщение или сделав звонок.

В конкурентной среде, где компании оказывают примерно похожие услуги или производят похожие товары, именно организации, которые серьезно относятся к опыту работы с клиентами, выделяются из общей массы и завоевывают лояльных клиентов.

Но где сотрудникам можно найти дополнительной время? Компаниям, заинтересованным в быстром росте быстрыми темпами, в особенности нужно, чтобы их сотрудники имели возможность решать сложные проблемы. Для роста требуется комплексное мышление, к которому не каждый сотрудник может адаптироваться, если он увяз в повторяющихся задачах.

Согласно данным, собранным Salesforce, 64% сотрудников признают, что благодаря чат-ботам у них появилось больше времени, чтобы сосредоточиться на общей картине. И наоборот, в компаниях без чат-ботов только 50% сотрудников могут сказать то же самое.

Так почему бы нам не научиться внедрять чат-боты в службы поддержки для того, чтобы высвобождать персоналу время на решение сложных и эмоциональных задач, которые приведут к улучшению клиентского опыта и росту лояльности клиентов? Именно этим мы с вами сейчас и займемся.

Как работает

Достаточно хорошо обученный чат-бот для самообслуживания на базе технологии распознавания естественного языка (NLP), которой вы сейчас овладеете, по нашему опыту, способен обрабатывать до 70-90% рутинных обращений в службу поддержки. 

Чат-бот обладает следующим функционалом:

  • Встраивается в любой канал: чат на сайте, мессенджеры и социальные сети;
  • Работает 24/7 без выходных и перерывов и мгновенно отвечает на запросы;
  • Умеет отвечать на вопросы, заданные в свободной форме;
  • Содержит меню с кнопками для популярных запросов;
  • Бесшовно переводит диалог на персонал контакт-центра и обратно, в случае необходимости, предварительно собрав данные о запросе;
  • Умеет опрашивать пользователя и передавать анкету в CRM и CDP системы по API;
  • Способен интегрироваться c cистемами компании по API, например, для проверки статуса заказа.

Инструкция по разработке: Подготовка бота

В этом уроке мы покажем, как создается чат-бот на базе NLP c помощью Dialogflow от Google. Мы создадим бот для небольшой фирмы межевания, который даст возможность клиентам получить быстрые ответы на базовые вопросы о месте, времени работы и оказываемых услугах, а так же разгрузит работу операторов. Если ответ бота не устроит пользователя, то у него будет возможность поговорить с оператором.

1. Первым делом создайте бота на платформе Metabot.

Вы можете узнать как создать самого простого бота из урока Hello Humans: ваше руководство по быстрому старту

2. Следующим этапом является создание скриптов. Нашему боту потребуются такие скрипты, как:

  • Стартовый скрипт — стандартный скрипт приветствия;
  • Скрипт с NLP распознаваниемв этом скрипте бот будет получать вопрос от пользователя и отправлять его в Dialogflow на распознавание;
  • Скрипты-NLP намерениякогда намерение в Dialogflow распознано, оно ищется по базе скриптов, используя поле NLP Намерение в свойствах скрипта по полному совпадению;
  • Перевод на оператора — переключение на оператора. Данная задача легко реализуется с помощью команды Перевести на оператора, которую нужно будет разместить в этот скрипт.
  • Вызов ботаскрипт необходим для перевода с оператора на бота по просьбе пользователя;
  • Некорректный ввод — скрипт с типом Fallback, который бот выполняет, когда не распознано намерение пользователя.

Перед тем как идти дальше рекомендуем ознакомиться со статьями Скрипты и Редактор скрипта.

Создание скриптов

Стартовый скрипт

1. В Стартовый скрипт должны быть добавлены следующие команды:

  • Отправить текст с тем содержимым, которое вам нравится;
  • Выполнить скрипт "Задать вопрос" — скрипт с NLP распознаванием.

image.png

Скрипт с NLP распознаванием

2. В свойствах скрипта с подсказкой, как задать вопрос должны быть настроены следующие параметры: 

  • Включить NLP — чтобы распознавание срабатывало внутри скрипта;
  • Включить NLP Action — чтобы внутри скрипта можно быть распознавать NLP Action (функционал Small Talk от Dialogflow и другие action);
  • Остальные параметры оставить без изменений.

Снимок экрана 2023-08-28 132010.png

Галочка параметра Создать новую сессию в NLP при обнаружении намерения всегда проставляется по умолчанию и ее не нужно убирать, если логика скрипта не подразумевает зацикливание. Например, если вы хотите воспользоваться функционалом запроса данных через Dialogflow с подбором значения из системных справочников.  

3. В редакторе скрипта нужно добавить текст, призывающий задать вопрос, а в меню добавить скрытый пункт. Этот пункт не заведет пользователя в тупиковый сценарий, а будет слушать ввод. Если сделать скрипт без меню, то при вводе текста внутри этого скрипта, бот сбросит диалог, а не приведет в нужный ответ.

Поскольку мы включили опции распознавания естественного языка у скрипта, то ввод от пользователя в первую очередь будет отправлен в DF для распознавания намерения и только в случае, если намерение не будет найдено, ввод от пользователя будет перенаправлен в Fallback.

image.png

Скрипт-NLP намерение

Выполнение данных скрипта подразумевают реакцию на вопрос пользователя, распознанный DF .

4. В данном боте мы создадим подобные скрипты трех типов:

  • Простой ответ на вопрос — один скрипт на все вопросы требующие однозначного ответа;
  • Отдельный скрипт-ответ — в нашем случае это скрипты услуг, на каждую услугу будет создан свой скрипт;
  • Перевод на оператора — скрипт, который вызывается просьбой лида поговорить с человеком и переключает его на оператора.

Главным условием работы данных скриптов является установка значения в поле NLP Намерение. Когда намерение в Dialogflow найдено, оно ищется по базе скриптов и сравнивается со значениями полей NLP Намерение. Если найдено полное совпадение, то скрипт с совпадающим значением вступает в работу. 

NLP намерение лучше называть по аналогии с названием скрипта, но без пробела. Например для скрипта "Заказать услугу" намерение лучше назвать "заказать_услугу".

Снимок экрана 2023-08-28 132010.png

Рекомендуем также прописывать нумерацию намерений, чтобы легче работать с базой. Например: 01_заказать консультацию.

Рассмотрим примеры каждого типа скрипта:

Скрипт простого ответа на вопрос должен содержать команду с выводом атрибута {{$nlpLastResponseText}}. Данный атрибут будет возвращен DF после распознавания вопроса и содержать ответ на вопрос указанный в намерении DF.

Для исправной работы в поле NLP Намерение скрипта следует указать .*, чтобы в данный скрипт попадали все распознанные намерения не относящиеся к другим скриптам.

image.png

Отдельные скрипты-ответы в поле NLP Намерение должны содержать намерение соответствующее названию скрипта и могут содержать одну или несколько команд, например:

  • Отправить текст: "Я Ваш личный бот-помощник и я готов принять Ваш заказ прямо сейчас! Просто ответьте на мои вопросы."
  • Запросить значение:  "Одним сообщением укажите Ваши данные (ФИО, адрес, индекс и номер телефона) и какую услугу Вы хотите заказать." и т.д.
  • Перевести на оператора — выполнение данной команды приведет к переводу лида на оператора. Она обязательна.
  • Стоп — выполнение данной команды приведет к остановке работы бота. Она также обязательна.

image.png

По тому же принципу создается скрипт "Перевод на оператора":

image.png

В вашем боте может быть множество скриптов намерений и создаются они все по аналогии.

Вызов бота

Скрипт будет возобновлять работу чат-бота в том случае, если пользователь был переведен на оператора.

5. В редакторе скрипта добавьте такие команды, как:

  • Вернуть боту - для передачи диалога обратно боту;
  • Отправить текст, в которой вы уведомите пользователя о том, что с ним снова общается бот. Например, текст "Я здесь, с вами снова общается бот.";
  • Выполнить скрипт "Задать вопрос".

image.png

Некорректный ввод

Скрипт, который будет выполняться в том случае, если пользователь ввел вопрос/намерение или фразу не заложенные в базе знаний вашего бота.

6. В свойствах данного скрипта следует установить тип Fallback:

Снимок экрана 2023-08-28 132010.png

7. Далее в редакторе скрипта добавьте команду Отправить текст. В данной команде необходимо сообщить пользователю, что его запрос не распознан и порекомендовать его перефразировать, например, "Извините не понял. Сформулируйте свой вопрос по-другому."

8. Последним этапом добавьте команду Повторить вопрос.

image.png

Основные скрипты для работы бота созданы. Далее рассмотрим создание маршрутов для взаимодействия бота с пользователями.

Создание маршрутов

Перед прочтением рекомендуем ознакомиться со статьей Маршруты

1. Нам понадобится создать всего два маршрута:

  • Маршрут, который будет запускать скрипт приветствия. В Регулярном выражении напишите .*. Это выражение означает, что бот будет реагировать на любой текст от пользователя;
  • Маршрут, который будет запускаться при вызове бота и скрипта Позвать бота. В Регулярном выражении напишите слово "бот". Это выражение означает, что бот будет реагировать на ввод текста "бот" от пользователя. В качестве опции выберите из выпадающего списка значение Оператор.

image.png

Приступим ко второй части нашего урока — созданию базы знаний и модели Dialogflow.

Создание намерений в Dialogflow

Для полноценной работы чат-бота с распознаванием намерений пользователя необходимо создать и настроить базу знаний, по запросам к которой бот будет давать правильные ответы и выстраивать логику взаимодействия с пользователем.

Для работы нам понадобится сервис Dialogflow.

Перед тем как приступать к созданию намерений пройдите уроки Начало работы с Dialogflow и Интеграция с Dialogflow

1. В привязанном к вашему боту агенту мы будем создавать намерения, с помощью которых бот сможет распознавать текстовые запросы пользователя и подбирать правильные ответы из базы знаний. По кнопке Create Intent создаем новое намерение.

Снимок экрана 2023-02-13 141817.png

2. Для каждого скрипта с NLP намерением в боте создаем свое намерение DF с идентичным наименованием.

Внимание! При обучении бота, чем больше вы введете однородных по смыслу запросов и синонимов ключевых слов, тем более точнее ваш бот будет понимать ваших пользователей.

3. В раздел Training phrases надо добавить различные варианты на тему того, что могут написать пользователи. Например для намерения вызова оператора:

Снимок экрана 2023-02-13 142411.png

Внимание! В тренировочных фразах не должно быть знаков препинания в конце предложений. Так же при обучении бота намерению важно стараться не допускать фраз, которые могут повторяться в соседних намерениях, иначе бот из базы знаний может выбрать некорректный ответ.

Применение вариантов с перестановкой слов приветствуется. Знаки вопроса и прочие знаки препинания здесь прописывать не нужно.

4. Для намерений с однозначным ответом в поле Responses добавьте текстовый ответ. Он и будет выводиться в атрибут nlpLastResponseText.

image.png

5. В процессе обучения бота нужно проверять правильность вводимых значений. Для этого, в поле Try it now необходимо указать один из введенных вариантов обращения и система должна предоставить ссылку на нужное намерение.

Снимок экрана 2023-02-13 142648.png

6. После ввода всех вариантов возможных обращений необходимо сохранить намерение, нажав на кнопку Save.

7. Таким же образом создайте остальные намерения для вашего бота.

Остается только проверить работу чат-бота через мессенджер.

Проверка работы бота

Проверим как работает наш бот.

 

1. Задайте вопрос боту. Бот должен распознать намерение и отправить соответствующий ответ на вопрос.

image.png

2. Попросите бота перевести вас на оператора. Бот должен остановить свою работу.

3. Попросите бота вернуться к диалогу. Бот должен возобновить свою работу.

image.png

Если все работает правильно, то поздравляем вас с созданием вашего бота c NLP на платформе Metabot24!

Вы так же можете попробовать в действии тестовый NLP бот, созданный командой Metabot24, набрав в Telegram логин @NLPDialogflowMetabot.