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

Практика 2. Глубокие интеграции

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

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

Основные моменты, которые вам нужно понимать:

  1. Взаимодействие с Пользователем: Чат-бот должен уметь работать как с анонимным пользователем (гостем), так и с идентифицированным, который может иметь аккаунты в различных системах. Например, у посетителя аптеки может быть карта лояльности. В боте должны быть процедуры регистрации и авторизации, сбора информации о пользователе и её интеграции в системы бизнеса.
  2. Авторизация: Можно авторизовываться разными способами, например, через номер в Telegram, SMS-шлюз для двухфакторной авторизации, или через e-mail, особенно для входа сотрудников компании.
  3. Идентификация и Интеграция: Необходимо идентифицировать пользователя в базе данных компании. Это может потребовать интеграции с внешними системами при авторизации и регистрации. В чат-боте должна быть таблица с уникальными записями пользователей и их идентификаторами в различных системах.
  4. Работа с Внешними Системами: Важно налаживать взаимодействие с разработчиками внешних систем для эффективной интеграции. Необходимо учитывать способы поиска и идентификации пользователей в этих системах и интегрировать соответствующие API.

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

В ходе выполнения урока, также ознакомьтесь со следующим материалом в документации к платформе (вы найдете примеры кода и дополнительные детали): Диалоговый интерфейс к ИТ системам.

Задание

Давайте разработаем чат-бота для гипотетической сети аптек "Будь Здоров". Чат-бот будет предназначен для сотрудников и партнёров компании. Он будет интегрирован с системой компании, интернет-магазином и системой вебинаров.

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

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

Для упрощения урока интеграция будет мы поместим все две системы (портал и интернет-магазин) в одну. Создадим два чат-бота: один для пользователей (клиент), взаимодействующих с бизнесом, и второй для эмуляции бизнес-систем (сервер). А для вебинаров интегрируемся с MTS-Link (бывший Webinar.ru).

Создаем сервер

На Meteabot создайте серверный чат-бот со всеми нужными таблицами и точками API:

  1. Таблица пользователей:
    • Создайте таблицу пользователей и наполните её данными.
    • Добавьте поля: id, имя, фамилия, отчество, e-mail, признак сотрудник или партнёр, признак администратор или обычный сотрудник.
  2. Таблица Аптек:
    • Создайте таблицу аптек с информацией о каждой аптеке: id, название, улица, город, признак (аптека компании или франчайзи).
  3. Таблица Товаров:
    • Добавьте базу данных товаров с полями: название, категория, описание, стоимость, количество на складе.
  4. Точки Интеграции:
    • Разработайте точки интеграции (API) в чат-боте для взаимодействия с информационной системой.
    • Необходимые API:
      • portal/find-user - поиск пользователя (по e-mail) ;
      • portal/add-user - добавление нового пользователя;
      • ecom/get-shops - получение списка аптек;
      • ecom/get-products - получение списка товаров на складе.
  5. Интеграция с Системой Вебинаров:
    • В качестве учебного примера интегрируйтесь с системой "МТС Link" (бывший Вебинар.ру).
  6. Дополнительные Уроки:

Теперь, когда у вас есть эмуляция бизнес-системы, вы можете наполнять её различными данными и создавать новые API.

Создаем чат-бота с глубокими интеграциями

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

  1. В чат-боте в разделе Заявки и персоны создайте необходимые роли для пользователя в таблице ролей. Эти роли могут быть такими: гость, сотрудник, администратор, партнёр.
  2. Пользователь вводит свой e-mail, на который затем генерируется и отправляется код. После получения кода пользователь вводит его в чат-боте. Если код совпадает, значит e-mail принадлежит пользователю. В случае несовпадения, мы предоставляем несколько дополнительных попыток для ввода.
  3. После успешной авторизации чат-бот обращается по API к endpoint'у find-user вашего сервера для поиска пользователя по e-mail. Если пользователь найден, вы получаете его запись и идентификатор. Эту информацию вы добавляете в кастомную таблицу users пользователей вашего клиентского чат-бота.
  4. Создайте запись о пользователе, добавив колонку внешнего ID (external ID), который соответствует полученному идентификатору от сервера.
  5. Установите роль пользователя на основе полученной информации: если это сотрудник, администратор или партнер, присваивайте ему соответствующую роль.
  6. Добавьте сценарий регистрации. Пользователь должен предоставить имя, фамилию и e-mail. После подтверждения e-mail проверьте, существует ли такой пользователь в системе. Если нет, создайте его, выполняя команду через endpoint add-user.
  7. Добавьте также метод де-авторизации для выхода из чат-бота. Это важная функция, которую можно разместить в секции настроек, чтобы избежать случайного нажатия в главном меню.

На данном этапе у нас есть авторизация, регистрация и выход. Теперь, когда пользователь идентифицирован, вы выполнили примерно 25% работы. У вас есть фундамент для работы с идентифицированными пользователями и возможность интеграции с другими системами, передавая внешние идентификаторы пользователей.

Создаем разные меню и роли

Теперь давайте приступим к следующей части работы. Создадим меню для разных ролей пользователей: сотрудников, администраторов и партнёров. Эти меню будут доступны пользователям после регистрации или авторизации, то есть, внутри системы чат-бота.

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

Для всех (сотрудников, партнеров и администраторов):

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

Для администраторов:

  • Добавьте возможность просмотра товаров на складе и их остатков, выводя список товаров из соответствующей таблицы.
  • Напишите скрипт, который будет обращаться к endpoint'у сервера для получения и вывода этих данных.
  • При запросе к серверу, включите ID пользователя (внешний ID) в запрос, чтобы проверить, есть ли у него привилегии на просмотр товаров и остатков.
  • На сервере:
    • Проверяйте тип пользователя (администратор или нет), используя внешний ID, который был получен при авторизации или регистрации.

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

Обратная связь от систем

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

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

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

На сервере:

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

В серверном чат-боте:

  • Разработайте интерфейс администратора.
  • Добавьте функцию "начислить баллы пользователю", которая может запрашивать ID пользователя или предоставлять список пользователей с возможностью выбора.
  • Укажите, сколько баллов нужно начислить пользователю.
  • Добавьте баллы в базу данных.

На стороне пользовательского чат-бота:

  • Реализуйте API endpoint на стороне клиентского чат-бота для приема уведомлений об изменении баллов, например, gamifaction/add-points
  • Обработайте запрос и отправьте пользователю сообщение: "Спасибо за покупку! Вам начислено [количество] баллов."

В серверном чат-боте:

  • После начисления баллов сообщите о начислении клиентскому чат-боту - вызовите gamifaction/add-pointsendpoint.

Проверки на стороне клиента:

  • Удостоверьтесь, что пользователь существует в системе перед отправкой уведомления.
  • Избегайте отправки информации несуществующим пользователям.

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

Интеграция в вебинарной системой

Теперь переходим к последней части нашего урока, ориентированной на партнёров, которые только что зарегистрировались.

Давайте добавим интеграцию с вебинарным сервисом МТС Link. В рамках этой интеграции, мы предоставляем пользователям список ближайших вебинаров и возможность зарегистрироваться на один из них. При регистрации мы передаём вебинарному сервису информацию о пользователе, которая уже имеется в чат-боте: e-mail, имя, фамилия.

После регистрации пользователя на вебинар, в чат-боте создаётся автоматическое напоминание о мероприятии. Мы планируем триггеры, которые будут информировать пользователя, и когда наступит время мероприятия, отправим ему ссылку.

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

Детальную информацию по уроку по интеграции с MTC Link и шаблоны коды, смотрите в отдельной публикации.

Управление сложными проектами

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

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

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

Карты коммуникаций:

Этапы процесса с описанием / Событие Нужна ли коммуникация в чат-боте и какая / Коммуникация Детальное описание коммуникации

Точки интеграции:

Точка интеграции / Коммуникация
 Параметры Описание

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

Резюме

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

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

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

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

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

Вдохновения и успешных проектов!