Мир на ладони или как мы с помощью чат-бота оптимизируем рабочие процессы сотрудников


Когда численность сотрудников в НСПК стала измеряться сотнями, а количество корпоративных систем, в которых они работают десятками, то взаимодействие с ними стало не всегда удобным, временные затраты на доступ к ним с рабочей машины начали превышать непосредственное время самой работы в них. А что, если сотрудник находится не на своем рабочем месте, но, скажем, срочно необходимо оформить гостевой пропуск для партнера компании? И это лишь один кейс из множества.


Привет, меня зовут Иван Фисунов. Я расскажу, как мы в компании успешно решили и продолжаем решать, задачи по оптимизации рабочего процесса сотрудников, а также делаем рутинные процессы удобнее, проще и даже чуточку веселее, а следовательно и эффективнее.


Начало


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


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


В первом приближении мы решили опробовать подход, понять его жизнеспособность, собрать отклики пользователей, оценить будет ли такой продукт популярен среди сотрудников и есть ли у него будущее в компании. Для первоначальной апробации сервиса и его скорейшего создания был использован инструмент Node-RED, который позволил в достаточно сжатые сроки создать рабочий прототип, наполнить его первичным функционалом, такими сервисами как парковка, поиск контактов сотрудников, переадресация звонков, печать и некоторыми другими. Мы дали ему имя ”Шурик”, запустили в продакшн и отдали на растерзание пользователям.


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


Новая жизнь


Новый статус системы обязал нас более серьезно подойти к вопросу разработки архитектуры приложения и используемым в его основе технологиям. На первом этапе мы решили реализовать монолитную архитектуру приложения, что позволило нам упростить разработку и последующее развертывание, а в качестве технологического стека выбрали JavaScript, Node.js и MySQL. Выбор стека обусловлен рядом причин. Во-первых, мы уже используем Node.js и React в ряде проектов, по созданию дашбордов и визуализации метрик для мониторинга инфраструктуры. Во-вторых, экосистема Node.js хорошо развита и имеет достаточное количество качественных пакетов, позволяющих не изобретать свой велосипед.


Здесь я бы мог погрузиться в технические детали разработки, выбора фреймворков и библиотек, но на просторах Хабра вы и без меня найдете подробные гайды о том, как создать чат-бота на Python, JavaScript, C# и т.д., нужное подчеркнуть. Я же расскажу о том, во что превратился сервис, как он выглядит сейчас и что с его помощью можно делать.


Регистрация


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


Когда сотрудник впервые становится пользователем “Шурика” он проходит аутентификацию. Для этого он должен на корпоративном портале указать свой актуальный номер мобильного телефона, привязанный к Telegram аккаунту, после чего отправить свою карточку контакта боту. Чтобы предотвратить ситуацию когда мошенник отправляет не свою карточку контакта, представившись каким-то другим реальным сотрудником НСПК и получает доступ в систему, нами предусмотрен защитный механизм в виде отправки СМС с кодом на предоставленный номер.



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


Офис


Сервис объединяющий под собой несколько полезных офисных задач.
Печать. Часто сотруднику необходимо распечатать документ, который находится на телефоне. Возможно его прислал партнер в один из мессенджеров и заниматься пересылкой его на почту, чтобы потом пустить на печать — довольно неудобный процесс. Теперь же, попросив бота напечатать документ, а это могут быть как текстовые документы или таблицы Excel, так и графические файлы, остается лишь проходя мимо любого МФУ, приложить к нему свой пропуск и дождаться завершения печати. Интеграция бота с серверами печати позволила сделать процесс печати быстрым, дистанционным и главное удобным.
Звонки. Проблему включения переадресации звонков с внутреннего номера на мобильный без доступа к рабочему месту, решили путем интеграции бота с сервером телефонии. Раньше этот процесс был не оптимален, требовал обращения в службу поддержки, которая в свою очередь обращалась к администратору телефонии. Тем самым процесс занимал достаточно продолжительное время. Теперь же, по просьбе сотрудника, бот любезно "сходит" на сервер телефонии, подкрутит соответствующие настройки и включит переадресацию на дефолтный мобильный номер или иной, указанный сотрудником. Займет это считанные секунды и пройдёт в фоновом режиме.
Переговорные. В компании ежедневно проходят десятки переговоров с партнерами и гостями. Сейчас у нас почти 20 переговорных. Чтобы быстро забронировать свободную, нужно только сообщить боту желаемое время встречи, а он уже сам сходит в Outlook и создаст в календаре встречу. Сделать это можно даже на лету, например, если хорошая идея возникла при встрече в коридоре, что тоже бывает не редко.


Сотрудники


В НСПК уже почти тысяча сотрудников, поэтому мы добавили возможность оперативного поиска карточки сотрудника и его контактов. Причем сделать это возможность из любого места, например, находясь в командировке.
Это позволило нам значительно сократить время на поиск контактов нужного сотрудника и избавиться от необходимости получения информации из разных источников.
Указав несколько букв фамилии искомого человека, получаем список совпадений, находим в нем нужного. Дальше бот отобразит всю доступную информацию, сопроводит карточку контакта актуальной фотографией, а также дополнительно сообщит, если сотрудник сейчас в отпуске или уехал в командировку.
Под капотом этого сервиса реализован отдельный микросервис, в реальном времени агрегирующий информацию о сотрудниках с ряда корпоративных систем, таких как MS Exchange, 1C, Active Directory, корпоративного портала и предоставляющий боту исчерпывающую информацию о сотруднике.


Парковка


В офисе НСПК имеются несколько парковок, доступные сотрудникам. Находятся они в ведении службы физической безопасности, задача которой, в том числе, организовать удобный и беспроблемный процесс парковки сотрудников. Раньше для парковки своего ТС требовалось либо заранее писать письмо уполномоченному сотруднику, либо звонить на внутренний номер для того чтобы забронировать место. В таком виде процесс нельзя было назвать удобным, оперативным и главное надежным.
Одноименный сервис чат-бота позволил решить данную проблему и значительно упростить остальные процессы. Как сотрудники, так и служба безопасности получили в распоряжение единый канал коммуникации, а забронировать место и получить подтверждение теперь можно за 5 — 10 минут до подъезда к офису.
Всего за пару нажатий можно посмотреть сколько осталось свободных мест на уличной парковке или подземной, а также на мотопарковке. В конце рабочего дня можно освободить ранее занятое место. И пожаловаться тоже можно, если вас не пускают по какой-то причине.
Если вы часто приезжаете в офис на своем транспортном средстве, возможно даже каждый день на новом, бот позволит сохранить их все и по мере появления нового или продажи старого ТС, вносить соответствующее изменение в базу данных, а при очередной парковке просто выбрать нужное авто из вашего списка. Дополнительным плюсом для службы безопасности, помимо единого канала обращений, стало появление возможности оперативного формирования аналитических справок по использованию парковок.


Фитнес


В компании есть тренажерный зал , открытый 24 часа 7 дней в неделю. Но его заполняемость была неравномерной: он мог то пустовать, то, наоборот, в нем создавались очереди к тому или иному тренажеру. Причина была в том, что для бронирования приходилось открывать календарь Outlook, выбирать интересующий тренажер, искать свободное время, а если не удавалось найти, то повторять процедуру для другого тренажера. Такой процесс требовал непосредственного нахождения сотрудника за своим рабочим местом, был неудобен и часто приводил к тому, что зал посещали без предварительной брони.
Благодаря интеграции с почтовым сервером MS Exchange нам удалось решить данную проблему. Теперь забронировать тренажер можно с помощью чат-бота, выбрав день и доступное время тренировки. Бот гарантирует, что никто не займет его к вашему приходу. Всю работу в Outlook за вас сделает бот, а вам останется только заняться спортом.
И что важно, теперь это можно сделать, например, сидя в корпоративной столовой в момент, когда вы едите вкусную булочку. Кстати, что сегодня на обед тоже может подсказать бот!


Сервис IT


Здесь чат-бот подскажет какие технические работы Департамента ИТ запланированы в ближайшем будущем или уже завершены. Интеграция с JiraSD и Splunk позволяет получать актуальную информацию и быть в курсе событий.
Если пользователь сталкивается с трудностями входа в систему под своей учётной записью, можно уточнить не заблокирована ли она. Бот обратится к Active Directory и проверит это. Если учетная запись все же заблокирована, то тут же можно оформить заявку на ее разблокировку или сброс пароля после удавшегося отпуска.
Если сотрудник обнаружил неполадки с одним из многочисленных МФУ, разбросанных по офисам, он может с помощью бота оформить инцидент и сообщить информацию в отдел поддержки пользователей. Бот задаст пару вопросов и попросит сфотографировать штрих-код на МФУ. Далее он распарсит его, обратится к инвентарной базе 1С, определит его местоположение и тут же проинформирует ответственное подразделение.


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


  • Заказать себе справку с места работы для визы или иных целей, копию трудовой или 2-НДФЛ. Сотруднику необходимо сделать всего пару нажатий, а дальше ему остается лишь дождаться уведомления о готовности и забрать документы. Интеграция с JiraSD позволяет делать это прямо с телефона.
  • Поболели с электронным больничным? По выходу предоставьте его номер боту.
  • Офис НСПК имеет централизованную систему кондиционирования помещений. С помощью бота можно управлять микроклиматом в кабинетах и переговорных. Если на совещании стало слишком "жарко", то можно попросить его включить кондиционер.
  • Собрались в отпуск? Всего за пару нажатий можно настроить процедуру замещения в ряде корпоративных систем и поставить почтовый автоответ в Outlook.

Бот в эпоху «Короны»


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


В первую очередь, чат-бот стал сервисом по получению актуальных инструкций по работе из хоум-офиса, подключению к удаленному рабочему месту и т.д.
Ввиду того, что чат-бот уже имел интеграцию с JiraSD, оперативно добавить еще несколько сервисов для удобства работы на удаленке не составило труда. Пользователи получили возможность, при необходимости, создавать заявки на перезагрузку/включение своих рабочих машин прямо с телефона. Аналогично была решена проблема разблокировки учётных записей пользователей. Появилась возможность создать заявку на разблокировку без лишних звонков и обращений, так как при заблокированной УЗ оформить заявку в системе самостоятельно просто невозможно.


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


Это еще не конец истории


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


С технической точки зрения за это время сервис из монолитной архитектуры превратился в систему микросервисов, каждая из частей которой выполняет свою работу независимо. А некоторые ее части со временем даже стали источником данных и предоставляют API для ряда сторонних сервисов. Бот интегрирован со множеством корпоративных систем: Active Directory, почтовыми серверами, телефонией, серверами печати, JiraSD, DocVision, 1С и рядом других.
Просматривается тенденция, когда целые подразделения выступают заказчиками того, либо иного функционала, необходимого для их нужд. Служба мониторинга за инфраструктурой получила в лице бота помощника, который отслеживает ряд систем и сигнализирует о наступлении определённых событий, а служба поддержки пользователей, например, получает уведомление о новых открытых инцидентах.


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


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


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

Комментарии 14

    0
    С учетом того, что с ботом нельзя сделать end-to-end шифрование, как принималось решение отправлять в телеграмм перс. данные?
      0
      В рамках организации, а бот доступен только сотрудникам — ваши ФИО и телефон не являются персданными, поскольку необходимы для организации рабочего процесса. Об этом Вы можете прочитать в уведомлении по обработке персональных данных с котором Вас ознакомили в отделе кадров.
      0
      Спасибо за статью! Пожалуй я запланирую себе такой же проект на реализацию в ближайшем будущем.
        0
        Пожалуйста! Рады, что она оказалась Вам интересной и побудила реализовать подобный проект в будущем.
      • НЛО прилетело и опубликовало эту надпись здесь
          0
          Пожалуйста! Старались преподнести материал интересно.
          0

          А можно подробнее про функцию печати из бота? Как срастили принт-сервер внутри корпоративной сети с «внешним» ботом? Какую систему авторизации используете для печати по пропускам?

            0
            Бот сам по себе — это сервер внутри корпоративной сети, который может отправить файл на сервер централизованной печати YSoft SafeQ, который и отвечает за авторизацию по карточкам.
              0
              Спасибо.
              Позвольте небольшое уточнение — SafeQ получит задание от, грубо говоря, учетной записи бот-сервера — как в этом случае SafeQ понимает, какому пользователю в очередь положить задание?
                0
                В нашем случае бот отправит задание от имени пользователя, в виде письма с вложением, отправителем которого будет сам пользователь.
            0

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

              0
              Действительно, основной блок обработки колбеков превращается в довольно длинную портянку. Главный совет, в данном случае, не смешивать логику обработки колбеков с «прочими средствами». По-максимому выносить бизнес-логику обработчика в отдельные модули и при необходимости прокидывать в них инстанс бота и другие параметры, требуемые для работы.
                0

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

                  0
                  Выбор библиотек для работы с API телеграма довольно обширен, наиболее популярные из них полностью покрывают требования, которые могут быть на них возложены для реализации подобной задачи. В нашем случае, по причине того, что бот находится внутри корпоративной сети, нам пришлось реализовать свою логику опроса телеграма о новых сообщениях пользователей, в остальном функционала библиотеки из коробки достаточно.
                  Что касается последней части Вашего вопроса, то на него я не смогу дать однозначного ответа. Но наш опыт использования ноды на данном проекте с большим количеством интеграций в том числе с довольно сложными системами (не только REST запросы) оказался вполне успешным.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое