PID36
Help Desk своими руками: как я сделал тикет-систему, которой сам не пользовался

Help Desk своими руками: как я сделал тикет-систему, которой сам не пользовался

Откуда вообще возникла эта задача

Я строю сервис для работы с Авито. В процессе выяснилось очевидное: пользователи будут писать. С вопросами, с багами, с "ничего не работает". Нужен инструмент для приёма этих сообщений.

Варианты были простые:

  • Купить/найти готовую help desk систему
  • Завести отдельный телеграм-аккаунт и принимать там

Но я инди-разработчик. Мне нужно не просто, а как мне нужно. Поэтому я, конечно, пошёл делать своё.

Что я построил

Написал собственную тикет-систему. Ключевая фича — мультиботовость: система принимает на входе несколько Telegram-ботов одновременно и работает с ними параллельно.

Стек получился стандартным для моих проектов:

  • Laravel — бэкенд
  • Docker — окружение
  • Redis + очереди — асинхронная обработка входящих сообщений

Веб-интерфейс сделал, всё работает, деплой в прод — поехали.

Первая версия: костыль, который я сам себе придумал

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

Я сам понимаю, насколько это звучит дико — уже пока это пишу.

Быстро одумался и прикрутил email-уведомления для администратора. Логика простая: если кто-то пишет раз в два дня, а я не сижу в интерфейсе постоянно — пусть письмо придёт на почту. Там ссылка, перехожу, отвечаю.

В таком виде это ушло в прод.

Как это работало на практике

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

И тут я столкнулся с собственным UX-провалом. Процесс обработки одного тикета выглядел так:

  1. Зайти в почту
  2. Найти уведомление среди спама
  3. Перейти по ссылке в тикет-систему
  4. Разобраться в истории переписки
  5. Написать ответ через веб-интерфейс
  6. В мобильной версии это вообще отдельный квест

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

Очевидное решение, которое я не увидел сразу

В какой-то момент я задал себе вопрос: а почему всё это не приходит мне прямо в Telegram? Один бот, все входящие — туда. Ответы — обратно через него же.

Ответа "почему нет" не нашлось.

Это было бы в разы удобнее. Никакой почты, никаких переходов, всё в одном мессенджере, который у меня и так открыт постоянно.

Что дальше

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

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

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

Простое решение, которое надо было сделать с самого начала. Но именно такие вещи и понимаешь только после того, как пройдёшь через неудобный вариант.

Обсуждение