Валя, как это было… И еще раз о ботах с человеческим именем
Как-то раз в светлые головы разработчиков одного департамента ЛАНИТ закралась мысль: «А не провести ли нам хакатон?». Казалось бы, уже тысячу раз было. Но мы преследовали коварные корпоративные цели, а значит, отступать было некуда — позади HR.
Во-первых, планировалось сделать хакатон межрегиональным, то бишь собрать команды со всех офисов и дать им тимбилдинг в полный рост. Во-вторых, реально запустить в жизнь продукт, который покажется рецензентам наиболее жизнеспособным и перспективным. А поскольку в то время только ленивый (или ярый пользователь WhatsApp) не писал собственных ботов, мы подумали: «Ок, так тому и быть. Пусть будет бот, но пусть он приносит много пользы».
В итоге было предложено аж пять почти готовых ботов для Telegram, в каждом из которых было свое рациональное зерно. Но, как водится, ни один из них не получил какого-либо бурного развития. И тогда за дело взялись два рыцаря джедая…
Зачем нам еще один бот?
«Так в чем же миссия, может быть, вы откроете?»
А. Смит
На первом этапе мы преследовали две цели.
Создать помощника для HR-специалистов, который мог бы отвечать на бесконечный поток однотипных вопросов, реагируя на ключевые слова. Например, на те самые вопросы: как оформить отпуск, когда приходит аванс, как получить корпоративные скидки и где вкусно поесть/поспать/далее по списку.
Получить песочницу для начинающих разработчиков, где они погружались бы в удивительный мир java, сразу вникая в принципы и правила корпоративной разработки, которые применяются на большинстве наших проектов (работа с тикетами в таск-трекере, код-ревью, мерж-реквесты, работа с БД, фронт-бек etc).
Исходя из этого, на начальном этапе мы пришли к следующему:
была написана обвязка, основные классы, модули;
прикручена простая админка для наполнения базы знаний;
придуман механизм аутентификации;
добавлена возможность получения обратной связи прямо из бота в тикеты таск-трекера.
Под капотом наш бот выглядит примерно так:
И понеслась
«Почему, мистер Андерсон, почему?
Во имя чего?
Что вы делаете?
Зачем, зачем встаете?
Зачем продолжаете драться?»
А. Смит
Реализовав базовые функции, мы выдохнули и стали изучать статистику. Оказалось, что ботом не пользуется почти никто. Пришлось оперативно собирать фокус-группу и устраивать мозговой штурм в лучших традициях фильмов про всех умных людей. Ведь так решаются все проблемы — от качества кода до наличия чая на корпоративной кухне, верно?
И вот что решили.
Пользователю нужно ненавязчиво предложить воспользоваться ботом.
Пользователю нужно дать больше социальных функций, чтобы он не просто спрашивал что-то у бота, но и мог использовать его как ежедневного помощника во всех сферах жизни.
Некоторые из бизнес-процессов компании должны быть завязаны исключительно на использовании бота, тогда каждому сотруднику хотя бы раз в месяц придется обращаться к виртуальному помощнику, и он поймет, насколько удобно им пользоваться и как же раньше ошибался.
Итак, к чему мы пришли в итоге?
Теперь для сотрудников:
создана рассылка актуальный мероприятий, которую, конечно, можно отключить;
добавлена функция опросов;
создан движок для проведения онлайн-квизов, викторин и полноценных квестов с поддержкой разделения на команды;
реализован процесс быстрого согласования отпусков, что весьма удобно для распределенной компании;
реализован функционал отправки больничных листов, что стало особенно актуально в связи с удаленным форматом работы;
добавлены функции рекомендации фильмов на базе рейтингов сторонних сервисов и книг как образовательно-технических, так и художественных;
анекдоты и мемы по запросу… фьють-ха;
открыт календарь мероприятий с возможностью подписки на события и получения видеозаписей прошедших вебинаров,
загружены бланки заявлений на все случаи жизни;
появилась возможность добавления информации сотрудниками об изменении личных данных для специалистов отдела кадров;
реализована функция прямой линии с руководством департамента для решения наболевших вопросов;
подключена возможность открытия заявок на ремонт оборудования, его замену, настройку ПО и помощь во внештатных ситуациях;
информирование о корпоративных скидках, программах страхования;
расписание корпоративных маршруток до офиса и обратно;
помощь в бронировании переговорной комнаты;
напоминание о важном событии, в том числе ближайшем дне рождении коллеги;
предоставление любых справок и копии трудовой книжки по одному клику;
проверка списания времени в Project за период и выгрузка расхождения прямо на устройство;
помощь в поиске контактов коллеги: ссылки для связи, почты, ФИО, указания рабочего места.
Кроме этого, мы перестроили бизнес-процесс адаптации сотрудников таким образом, что уже на этапе получения явок и паролей новичок регистрируется в боте, а виртуальный помощник выдает всю первичную информацию.
Коварно? А как же! Зато явка — 120%.
Чуть подробнее
«Иллюзии, мистер Андерсон, причуды восприятия.
Хрупкие логические теории слабого человека,
который отчаянно пытается оправдать
свое существование — бесцельное и бессмысленное! <…>
Вам пора это увидеть, мистер Андерсон, увидеть и понять!»
А. Смит
Например, разглядим под лупой подачу сотрудниками заявления на отпуск. Этот процесс было решено полностью перенести в бота — раньше он был реализован через тикеты в таск-трекере.
Забегая вперед, там он и остался… Но пользователю больше нет необходимости отдельно заходить на сайт, что-то там колдовать с паролем и многочисленными типами заявок…
Во-первых, мы увязали пользователей бота с их карточками в таск-трекере. Это было долго, муторно, не все сразу получалось, но в итоге мы достигли единства и нирваны. Во-вторых, мы научили бота вести несколько диалогов: отвечать в зависимости от типа отпуска и других факторов.
Как итог — на выходе из диалога мы получаем готовый тикет в таск-трекере, связанный с карточкой пользователя и другими тикетами, которые уходят на согласование руководителям сотрудников. Но и этим милым людям нет нужды идти на какой-то сайт — бот сам потревожит их покой и сообщит, что у них есть заявка на согласование. Которую, кстати, можно подтвердить или отклонить прямо в боте.
Сотрудник, в свою очередь, может там же отслеживать все этапы жизни своей заявки (а может и не отслеживать). В любом случае бот напомнит ему, что отпуск согласован, и осталось только подписать заявление и загрузить скан прямо в бота, который любезно положит его в тикет и отправит заявку в отдел кадров и бухгалтерию.
Сколько зайцев мы убили приголубили?
«Вам пора это увидеть, мистер Андерсон, увидеть и понять!»
А. Смит
Сотруднику нет необходимости заходить на корпоративный портал, вся рабочая «вселенная» прямо у него в телефоне/Telegram.
Беспокойство самых важных и всегда занятых руководителей берет на себя бот — теперь не надо собираться с духом и дрожащими руками писать в личку напрямую.
Сотрудник всегда знает, кто задерживает согласование его отпуска, и может связаться с этим человеком.
Все отпуска таким образом посчитаны и привязаны к карточке сотрудника, и он может в любой момент узнать остаток своих отпускных дней (а это, на секунду, второй по повторяемости вопрос от сотрудников в сторону отдела кадров).
Что в планах
«Вы не можете победить, продолжать борьбу бессмысленно.
Почему, мистер Андерсон, почему вы упорствуете?»
А. Смит
Очень хочется переработать дизайн админки, сделать его более user-friendly, UX, material design, вот это вот все…
Поработать над тормозами в некоторых запросах.
Добавить боту такой функционал, как сбор документов при трудоустройстве, а также адаптацию/онбординг/хлеб-соль для нового сотрудника.
Реализовать многомерную структуру департамента в связке с карточками сотрудников для формирования групп рассылок.
Сделать робота более гибким в плане общения — не зря же у него человеческое имя.
Так что двухгодичная история, которая началась с очередного хакатона, еще далеко не закончена. Бот, который изначально выполнял несколько базовых функций и в целом не особо отличался от других шаблонных существ, вырос в полноразмерного помощника.
Ну, а после всех доработок он, наверное, вообще заговорит голосом и потребует у нас должность сотрудника HR и соответствующую зарплату. Но до этого мы пока не дошли, хотя все впереди.