Я думаю, многие айтишники не любят принимать заявки от пользователей по телефону. Многим знакома ситуация, когда служебный телефон находится в режиме «без звука», и только индикатор активности линии выдаёт, что кто‑то пытается дозвониться до IT‑отдела. Или когда айтишники редко находятся на рабочем месте, а координатора в отделе, который бы принимал заявки и передавал их затем своим коллегам, нет. Раздавать свой личный номер всем я, например, не хочу — иначе замучают потом звонками по всякой ерунде.

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

Мы с коллегой долго решали, что всё‑таки использовать для решения задачи сбора заявок от пользователей в нашей небольшой поликлинике. Пробовали различные мощные Service Desk и Help Desk‑системы, даже настроили GLPI — кто не знает, это такой «монстр», который может много: начиная от инвентаризации всех устройств в сети до работы в качестве Service Desk‑системы для сбора заявок от пользователей. Но чтобы настроить шлюз для получения почты, нужно столько лишних движений сделать, что просто диву даёшься, как можно было так «заоверинжинирить» систему, что ею просто не хочется пользоваться. К тому же работа через email — это не то, чего мы хотели. Это сложно и как‑то уж чересчур формализованно.

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

Поэтому мы решили использовать интерфейс чат‑ботов для сбора информации о заявке от пользователя как наименее сложный путь внедрения в организации. Таким образом мы сэкономили массу времени и энергии на внедрение системы. Мы просто дали ссылку на бота — и всё! Быстро и лаконично.

Итак, что мы имеем:

Рис. 1 Схема Help Desk системы
Рис. 1 Схема Help Desk системы

Схема выглядит очень сложной )) На самом деле всё очень просто. Пользователь в чате Telegram‑бота или MAX‑бота (поддерживаются оба мессенджера) пишет о своей проблеме, может приложить картинки и отправляет заявку. Далее заявка сохраняется и становится доступной в очень простом веб‑приложении, которое позволяет сотруднику IT‑отдела просматривать поступившие заявки, брать их в работу и закрывать, когда проблема решена. 

Стек технологий, который был использован не очень большой:

  1. В качестве базы данных был использовать PostgreSQL но можно было бы использовать и SQLite. 

  2. Боты написаны на python c использованием библиотек maxapi и telebot соответственно.

  3. Веб приложение это Flask на старом добром движке jinja шаблоны сделаны на статическом html.

  4. Планировщик для обработки очереди отправки тоже на python.

Вот такой простой и незамысловатый стек.

Запуск всего сервиса это запуск четырех python скриптов, они работают по сути независимо друг от друга, могут работать на разных машинах, главное чтобы у них был доступ к базе данных где лежат tickets и база пользователей для авторизации в Flask приложении:

# 1. Telegram-бот
python bot_telebot.py


# 2. MAX-бот
python bot_max.py


# 3. Веб-панель для сотрудников (http://0.0.0.0:5000)
python webapp.py


# 4. Планировщик ответов Telegram
python sheduler_for_response_bot.py


# 5. Планировщик ответов MAX
python sheduler_for_response_max.py

В приложении всё очень по‑спартански: есть просто список заявок и небольшой набор фильтров:

Рис. 2 Список заявок в веб-приложении которые видны авторизованному пользователю
Рис. 2 Список заявок в веб-приложении которые видны авторизованному пользователю

Если провалиться в заявку, мы увидим следующее:

Рис. 3 Работа с заявкой
Рис. 3 Работа с заявкой

Интерфейс чат‑бота тоже в духе минимализма:

Рис. 4 Бот в MAX
Рис. 4 Бот в MAX
Рис. 5 Бот в MAX
Рис. 5 Бот в MAX

Ответы на заявку пользователю придут в этом же чате с цитатой текста самой заявки:

Рис. 6 Ответы на заявки пользователя в боте MAX после закрытия заявки
Рис. 6 Ответы на заявки пользователя в боте MAX после закрытия заявки

Система работает уже почти три года. Пользователи привыкли очень быстро. Конечно, пользователи, которые находятся рядом с кабинетом IT‑отдела, скорее дойдут до вас ногами, но остальные коллеги пользуются системой и создают заявки через неё.

Конечно, есть проблемы с некоторыми пользователями, которые «перебарщивают» и иногда просто отправляют только картинку, не удосужившись сделать хотя бы малейшее описание того, что происходит на фото. Ну, я обычно сразу закрываю такие заявки с ответом: «Пожалуйста, опишите ситуацию: что случилось?».

Зато, при правильном подходе можно совсем избавиться от звонков, если вы этого захотите.

Я выкладываю систему в открытый доступ на GitHub.

Возможно, у кого‑то будут какие‑то идеи, что можно было бы добавить или улучшить?

Милости прошу, я открыт для диалога.

Всем мира и хороших пользователей в придачу )))

https://github.com/ecoli79/help_desk_service