Зачем понадобился ещё один трекер

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

В CRM уже были пользователи, роли и разрешения, аудит изменений, комментарии, файловые вложения и исполнение BPMN-процессов. Первую версию трекера собрали примерно за сутки: основная инфраструктура к тому времени использовалась в производственной системе.

Список задач P03 Tracker с фильтрами, типами, статусами и датами обновления

Задача как экземпляр процесса

Поведение каждого типа задачи задаёт связанный с ним BPMN-процесс. Типы могут иметь разные маршруты, а интерфейс получает текущее состояние и доступные действия непосредственно от исполняемого процесса.

Для MVP мы сознательно упростили модель:

  • статус — строка, которую устанавливает процесс;
  • непустая резолюция означает, что задача закрыта;
  • кнопки действий соответствуют ожидающим элементам BPMN;
  • служебные шаги SetStatus, SetResolution, ClearResolution, Notify и Assign выполняют основные автоматические операции.

Отдельный справочник переходов синхронизировать с процессом не нужно. При этом саму BPMN-схему приходится проверять на непротиворечивость: она может допустить несовместимое сочетание статуса, резолюции и ожидающего действия.

BPMN-процесс обычной задачи: работа, завершение и отмена

Проекты, доступ и рабочий контекст

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

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

Карточка задачи с workflow, участниками, вложениями, комментариями и историей

Что получилось

Первая версия используется в нескольких проектах. В ней есть типы задач с отдельными BPMN-процессами, списки и сохранённые фильтры, комментарии, вложения, история изменений, уведомления и разграничение доступа.

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