На днях мы запустили новых Telegram-ботов, которые призваны облегчить взаимодействие с технической поддержкой дата-центра Миран. Речь, конечно, про @MiranSupportBot и @MiranNotificationsBot. Об их настройке и том, как с ними взаимодействовать, мы уже написали инструкцию в нашем справочнике. И пусть с клиентской стороны были введены, в основном, QoL изменения, мы бы все равно хотели бы рассказать о том, как же мы их запустили, почему их теперь два и что с ними будет дальше.
Чем не устраивал старый бот
Старому @MiranComBot’у скоро исполнится 4 года и, если честно, он нас много чем не устраивал. Наверное, один из главных недостатков — громадный ворох костылей.
Трава была зеленее, электричество дешевле и главное — при старом разработчике. Как оно часто бывает, срочно понадобился функционал для оперативных уведомлений по тикетам и ответам на них, без необходимости открывать почту или личный кабинет.
Но, как и положено, разрабатывая что-то наспех, обязательно проблемы проявятся в перспективе. Для старого бота этой сложностью стала ограниченность в дальнейшем развитии. Бот имел ограничения в работе с вложениями, не мог в форматирование и поддержку эмодзи, а поток уведомлений превращался в кашу и не давал посмотреть на картину целиком.
Часть изменений можно было бы ввести, обновив api до актуальной версии, однако, смена разработчика поставила нас перед дилеммой — использовать знакомые инструменты и делать всё с нуля, или добавлять к чужой телеге новые колеса.
Выбрав путь качества, было решено переехать на нового бота и новую техническую основу — связку Python + python-telegram-bot заменили на более подходящую (да начнется срач) TypeScript с telegraf-js.
Какие изменения в новых
По началу восстанавливали уже имеющийся функционал. В @MiranSupportBot восстановили прежние механизмы, но он все равно топтался на месте — было сложно уйти от существующей структуры. Поэтому, чтоб не собирать старые ошибки, решили начать с другой стороны — с авторизации. В старом боте она требовала участия сотрудника, чтобы он связал все информационные системы.
Отсутствие ограничений по времени дало возможность доработать технический аспект панели управления. Это позволило без ущерба безопасности клиентам самостоятельно регистрировать себя в боте. Управление пользователями, имеющими доступ к уведомлениям организации, полностью перешло в личный кабинет
Допиливание со стороны панели управления дало плацдарм для развития — появилась возможность создавать тикеты напрямую, выгружать их историю, наладить прямую и более глубокую интеграцию с теми функциями, которые доступны в панели управления. Вместе с функциями разметки и эмодзи, взаимодействие с заявками через Telegram-бота стало не только приятным для пользователей-клиентов, но и упростило работу нашим инженерам. Впрочем, это уже совсем другая история.
Почему их два
Большая часть наших клиентов повсеместно используют в своей работе мессенджер Telegram, он давно уже заменил для них корпоративную почту и обычные рабочие созвоны по телефону. Соответственно, нужно было сделать так, чтоб информация доносилась наиболее просто и доступно.
Создание ботов с нуля позволило изменить способ их взаимодействия с информационными системами. Теперь все форматы уведомлений — по заявкам, по услугам и личному кабинету могут отправляться через один шлюз. Минус такого подходя в том, что множество уведомлений по разным темам могут мешать работе с ботом, особенно при большом количестве открытых заявок, особенно в экстренной ситуации (сервер не работает, прод лежит).
Разнесение уведомлений и управления заявками по разным ботам — решение, которое учитывает эти минусы. @MiranNotificationsBot теперь выступает как инструмент для моментальной доставки важных сообщений в виде push’ей на телефон (или десктоп), а @MiranSupportBot — как способ доступной коммуникации с технической поддержкой или отделом продаж. На любое сообщение можно сразу же ответить через быструю команду, а если нужно вспомнить контекст — можно просто показать все сообщения выбранной заявке.
Планы по развитию
Изменение внутренней начинки позволило существенно расширять функционал ботов. В планах множество QoL изменений как для внутреннего использования, так и для клиентской стороны. Говоря про последнюю, в ближайших планах научить @MiranSupportBot’а генерировать пин-коды для автоматизированного доступа в ЦОД, добавить контекстный FAQ по наиболее частым обращениям и научить @MiranCommunicationBot’а новым видам уведомлений.