Как-то раз в светлые головы разработчиков одного департамента ЛАНИТ закралась мысль: “А не провести ли нам хакатон?”. Казалось бы, уже тысячу раз было. Но мы преследовали коварные корпоративные цели, а значит, отступать было некуда - позади HR.  

Во-первых, планировалось сделать хакатон межрегиональным, то бишь собрать команды со всех офисов и дать им тимбилдинг в полный рост. Во-вторых, реально запустить в жизнь продукт, который покажется рецензентам наиболее жизнеспособным и перспективным. А поскольку в то время только ленивый (или ярый пользователь WhatsApp) не писал собственных ботов, мы подумали: “Ок, так тому и быть. Пусть будет бот, но пусть он приносит много пользы”.

В итоге было предложено аж пять почти готовых ботов для Telegram, в каждом из которых было свое рациональное зерно. Но, как водится, ни один из них не получил какого-либо бурного развития. И тогда за дело взялись два рыцаря джедая… 

Зачем нам еще один бот? 

“Так в чем же миссия, может быть, вы откроете?”

А. Смит

На первом этапе мы преследовали две цели.

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

  • Получить песочницу для начинающих разработчиков, где они погружались бы в удивительный мир java, сразу вникая в принципы и правила корпоративной разработки, которые применяются на большинстве наших проектов (работа с тикетами в таск-трекере, код-ревью, мерж-реквесты, работа с БД, фронт-бек etc). 

Исходя из этого, на начальном этапе мы пришли к следующему:

  • была написана обвязка, основные классы, модули;

  • прикручена простая админка для наполнения базы знаний; 

  • придуман механизм аутентификации;

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

Под капотом наш бот выглядит примерно так:

И понеслась

“Почему, мистер Андерсон, почему?

Во имя чего?

Что вы делаете?

Зачем, зачем встаете?

Зачем продолжаете драться?”

А. Смит

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

И вот что решили.

  • Пользователю нужно ненавязчиво предложить воспользоваться ботом.

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

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

Итак, к чему мы пришли в итоге?

Теперь для сотрудников:

  • создана рассылка актуальный мероприятий, которую, конечно, можно отключить;

  • добавлена функция опросов;

  • создан движок для проведения онлайн-квизов, викторин и полноценных квестов с поддержкой разделения на команды;

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

  • реализован функционал отправки больничных листов, что стало особенно актуально в связи с удаленным форматом работы;

  • добавлены функции рекомендации фильмов на базе рейтингов сторонних сервисов и книг как образовательно-технических, так и художественных;

  • анекдоты и мемы по запросу… фьють-ха;

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

  • загружены бланки заявлений на все случаи жизни;

  • появилась возможность добавления информации сотрудниками об изменении личных данных для специалистов отдела кадров;

  • реализована функция прямой линии с руководством департамента для решения наболевших вопросов;

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

  • информирование о корпоративных скидках, программах страхования;

  • расписание корпоративных маршруток до офиса и обратно;

  • помощь в бронировании переговорной комнаты;

  • напоминание о важном событии, в том числе ближайшем дне рождении коллеги;

  • предоставление любых справок и копии трудовой книжки по одному клику;

  • проверка списания времени в Project за период и выгрузка расхождения прямо на устройство;

  • помощь в поиске контактов коллеги: ссылки для связи, почты, ФИО, указания рабочего места. 

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

Коварно? А как же! Зато явка - 120%.

Чуть подробнее

“Иллюзии, мистер Андерсон, причуды восприятия.

Хрупкие логические теории слабого человека,

который отчаянно пытается оправдать

свое существование — бесцельное и бессмысленное! <…>

Вам пора это увидеть, мистер Андерсон, увидеть и понять!”

А. Смит

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

Забегая вперед, там он и остался… Но пользователю больше нет необходимости отдельно заходить на сайт, что-то там колдовать с паролем и многочисленными типами заявок… 

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

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

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

Сколько зайцев мы убили  приголубили? 

“Вам пора это увидеть, мистер Андерсон, увидеть и понять!”

А. Смит

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

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

  • Сотрудник всегда знает, кто задерживает согласование его отпуска, и может связаться с этим человеком. 

  • Все отпуска таким образом посчитаны и привязаны к карточке сотрудника, и он может в любой момент узнать остаток своих отпускных дней (а это, на секунду, второй по повторяемости вопрос от сотрудников в сторону отдела кадров). 

Что в планах

“Вы не можете победить, продолжать борьбу бессмысленно.

Почему, мистер Андерсон, почему вы упорствуете?”

А. Смит

Очень хочется переработать дизайн админки, сделать его более user-friendly, UX, material design, вот это вот все… 

Поработать над тормозами в некоторых запросах. 

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

Реализовать многомерную структуру департамента в связке с карточками сотрудников для формирования групп рассылок. 

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

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

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

Комментарии (4)


  1. DmitryI
    06.12.2022 12:24
    +1

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


    1. SidneyXP Автор
      06.12.2022 12:48
      +2

      Добрый день! Спасибо за вопрос.

      Скажем так, не для всех задач есть Jira как бэк, у бота под ногами есть и своя база.

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

      На самом деле, многие диалоги в корпоративных чатах теперь заканчиваются так:

      • Ну, прямо сейчас я не могу это завести в Jira!

      • Можно же через Бота...

      • Точно! Спасибо!


  1. vassabi
    06.12.2022 16:49
    +1

    а у вас там есть ответы на аварии ?

    типа:
    - а чтойта почта\жира\гитлаб не работает

    - извините, плановые работы с А до Б часов, вам напомнить, когда закончатся?

    и т.д.


    1. SidneyXP Автор
      07.12.2022 20:27
      +1

      Добрый день, спасибо за интерес к статье!

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