Пример разработки чат-ботов
Проблема
Заказчик (школа иностранного языка) проводит обучение студентов с помощью собственных ботов, которых они разрабатывают своими силами под каждую отдельную задачу. Ботов заказчик использует по-разному: для проведения курсов, для вводных инструкций, для информационных оповещений.
Работает это так: есть задача сделать курс А — они разрабатывают бота конкретно под курс А. Нужны изменения в контенте — зовут разработчиков, они правят проект. Это долго, дорого и тяжело, потому что оперативно внести какие-то изменения нельзя, создание опросов и курсов отнимает много времени, сбор результатов трудоемкий. Поэтому заказчик хотел оптимизировать работу и объединить управление ботами на одной платформе.
Задача
Разработать инструмент, который поможет управлять чат-ботами из единой административной панели, регулировать их работу и создавать разные сценарии для обучающих курсов.
Решение
Заказчик не хотел продолжать программировать отдельных ботов самостоятельно, поэтому мы предложили разработать конструктор Telegram-ботов, управлять которыми можно с помощью визуального интерфейса. Заказчик может рисовать диаграммы и ветки в сценариях общения бота с пользователем, подключать бота и всё будет работать. Менять сценарии и контент можно в любой момент, обновления – моментальные.
Мы сделали конструктор и оптимизировали управление ботами с помощью единой административной панели. Боты собирают сопутствующую статистику по всем курсам и участникам. Заказчику не нужно прибегать к программированию, все управление ботами происходит с помощью визуального интерфейса. Сервис состоит из административной панели для создания и управления ботами на платформе Telegram.
Бот — это обучающий курс по иностранному языку.
К боту добавляются:
- Версии курса. Версия обучающего курса со своим названием, датой старта, статусом, сценарием и участниками, которые уже можно запустить.
- Администраторы. Управляют контентом сценариев курсов.
- Telegram-боты. Специальный аккаунт, зарегистрированный в главном боте Telegram — BotFather. Участники курса проходят его как раз в Telegram-боте в интерфейсе Telegram.
Как всё работает в административной панели
Администратор заходит в административную панель и создаёт проект бота. В проекте есть сценарий, который включает в себя материалы курса, расположенные в нужном порядке и нужном формате (видео, текст, фото, опросы, файлы, эмодзи), а также набор команд и связанных уведомлений.
В сценарии администратор рисует диаграмму и ветки развития, по которым будет идти общение студента с ботом. Есть разные ветвления: например, если человек отвечает в один момент так, его поведёт по одной ветке, если по-другому ответил, его поведёт по другой ветке. Можно представить это в виде дерева, на котором пути пользователя рисуются, как ветки. Разные опции и ответы влияют на его дальнейший путь.
На каждом этапе есть такой сценарий, бот ведёт общение по ним. Когда пользователь доходит до конечной точки этапа, то переходит на следующий.
Фичи
1. Отложенные сообщения. Есть сообщения или этапы, которые открываются только в определенную дату. Например, для первого этапа курса рассчитан срок прохождения — неделя. Если пользователь пройдёт курс за один день, ему откроется следующий этап только на следующей неделе. Таким образом можно разбить программу на недели обучения и каждую неделю бот будет писать пользователю. Это не обязательно, все этапы и даты можно настраивать в зависимости от потребностей.
2. Мгновенные сообщения. Администратор может мгновенно направлять сообщения выбранным пользователям (или всем) в потоке вне основного сценария.
3. Большой набор инструментов для создания сценария. Когда администратор рисует путь пользователя, то формирует сообщение: может указать, будут показываться картинки и тексты. Есть кнопки, которые разветвляют пользователя по разным сценариям. Дополнительно мы разработали формат викторины: при правильных ответах на вопросы, пользователь зарабатывает баллы.
4. Переменные. Когда бот спрашивает имя пользователя (переменную), то запоминает его и использует его в других тестах.
5. Масштабирование. В проект можно добавить неограниченное количество Telegram-ботов и таким образом распределить загрузку. Дать одним пользователям одного бота, другим — второго, третьим — следующего. Пользователи будут проходить один и тот же сценарий, просто каждый будет общаться с разным ботом.
6. Гибкое управление ботами. Можно быстро деактивировать ботов и подключать новых.
7. Версионность сценария. Можно создать версию сценария. Есть сущность группы или экземпляры курса. Администратор или методист создаёт экземпляр курса, указывает, какие пользователи там будут и сценарий. Пользователи проходят весенний курс экземпляра. А осенью методист его меняет и другие пользователи будут уже проходит осенний сценарий.
8. Настройка уведомлений. Можно делать и отправить общие уведомления, можно отправлять их только определенной группе лиц. Настройка event — система eventov. В какой момент какое сообщение будет триггериться. Например, человек занимается неделю, но все ещё не прошел первый этап курса. Тогда ему приходит автоматическое сообщение с подсказками или напоминаниями, что курс нужно закончить.