Обсудить задачу
кейс · автоматизация · процессная аналитика работает

Как идут бизнес-процессы в компании на самом деле

коротко

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

ПРОЦЕСС ИЗ ДАННЫХ · 9 СОСТОЯНИЙ · 2080 МАРШРУТОВ новая 22% в работе 31% решена ждём ответа клиента возврат в работу · 74 ч простоя 147 ч ожидания закрыта проблема уже устранена, а заявка висит ещё шесть суток проценты и часы – из фактических данных, не оценка
рис. 01 / схема процесса, восстановленная из журнала: вероятности переходов и время ожидания посчитаны по фактамразбор
ОТРАСЛЬуслуги · поддержка и сервис
ФОРМАТаудит по вашей базе · разово
ЗАПУСКиюль 2026
СТАТУСработает

Задача

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

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

Инструмент, который это показывает, существует давно и называется процессной аналитикой. Мешало ему одно: подготовка данных. Чтобы посчитать процесс, аналитику надо руками собрать журнал событий – найти сквозной идентификатор заявки, вытащить длительности, посчитать вероятности развилок, свести ресурсы. Это 60–80% трудозатрат проекта и недели работы. Именно поэтому такие расчёты жили в крупной промышленности, а не в отделе, где обрабатывают заявки.

Я убрал этот шаг.

Что я сделал

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

Дальше работает связка из двух непохожих частей. Флот ИИ-агентов изучает структуру базы и выдвигает гипотезы: вот эта колонка похожа на идентификатор заявки, вот эта – на шаг процесса, вот эта – на время, вот эта – на исполнителя. А проверяет каждую гипотезу обычный SQL по полному объёму данных.

Проверял всё это не на клиентских данных, а на открытом отраслевом журнале управления инцидентами – это выгрузка из реальной ИТ-компании, опубликованная в репозитории UCI: 141 712 событий, 24 918 заявок, 36 колонок с пропусками и датами в неудобном формате. Никакой подготовки я не делал сознательно – хотел проверить, справится ли система с чужой базой, которую видит впервые.

Агенты предполагают, SQL проверяет

Это главная механика, и она же ответ на вопрос «а вы не выдумываете ли».

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

Не сошлось – модель получает назад список замечаний и предлагает другой вариант. На этом логе она угадала с первой попытки: заявка – номер инцидента, шаг – статус, время – метка обновления (формат даты вычислила сама), исполнитель – пользователь, внёсший изменение.

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

Как это работает по шагам

шагчто происходит
ПодключениеДоступ только на чтение к вашей базе или её копии. PostgreSQL, MySQL, MS SQL, Oracle, выгрузка из CRM
КартографияРазбор схемы: таблицы, колонки, связи, заполненность, форматы дат, чем помечены пропуски
РазведкаАгенты выдвигают гипотезы, где заявка, где шаг, где время, где исполнитель
ПроверкаКаждая гипотеза проверяется запросом по полному объёму. Не прошла – возвращается агенту с причиной отказа
ВосстановлениеИз журнала строится схема процесса, считаются реальные вероятности развилок, длительности и возвраты
Проверка моделиСхему прогоняют против исходного журнала: какая доля заявок реально по ней проходит
СимуляцияМодель уходит в расчёт сценариев: меняем правило – смотрим, что стало со временем и очередью

Шестой шаг обычно пропускают, а он важнее остальных. Красивую схему можно нарисовать по любым данным, вопрос – описывает ли она реальность. В моём прогоне по восстановленной схеме без нарушений проходят 91,6% заявок. Вот после этой цифры со схемой уже можно работать.

Что нашлось в чужом журнале за два часа

Девять состояний, 2080 разных маршрутов. Две тысячи маршрутов там, где в регламенте их пять – это, пожалуй, самая честная иллюстрация к разнице между «как должно быть» и «как есть».

147 чзаявка висит после того, как проблема решена
45,6%заявок переходят из рук в руки
36,6%нарушают срок

Самая дорогая находка – первая. Переход «решена» → «закрыта» занимает в среднем 147 часов, и так на всех 24 916 заявках. Проблема устранена, инженер свободен, клиент доволен – а заявка ещё шесть суток числится открытой. При среднем времени жизни заявки в 315 часов это почти половина её срока, в которую никто не работает.

Ещё одно место, где время стоит: заявки, зависшие на поставщике, ждут между событиями по 364 часа. Их немного, но именно они дают тот хвост, из-за которого максимальное время жизни заявки в этом журнале – 8190 часов. Почти год.

Что будет, если

Дальше начинается то, чего не умеет ни один дашборд. Восстановленная модель уходит в симулятор, и его сначала надо проверить на честность: прогнать «как есть» и сравнить с фактом. Расчётное среднее время жизни заявки вышло 315,4 часа против 315,2 фактических. После такого совпадения сценариям можно верить.

сценарийвремя жизни заявки, медиана
как есть сейчас162 часа
закрывать решённые заявки автоматически через сутки48 часов
вдвое меньше запросов информации у клиента156 часов
оба изменения вместе45 часов

Вывод получился обратный тому, что подсказывает интуиция. Все, кого я спрашивал, ставили на борьбу с ожиданием ответа клиента – это же очевидное зло, заявка стоит и ждёт. А расчёт показывает, что там выигрыш почти нулевой: 162 часа против 156, разница в пределах погрешности. Зато одна строчка в регламенте – автозакрытие решённых заявок через сутки – срезает время втрое.

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

Где здесь деньги

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

На этом журнале это выглядит так. Заявок за год 24 918, срок нарушен у 36,6% – это 9 120 нарушений. Если по договору обслуживания каждое стоит компании 500 рублей скидки или штрафа, получается 4,6 млн рублей в год, и это только та часть, которую видно в договоре. Ставку подставляет заказчик – я её не выдумываю и в отчёте всегда помечаю как допущение.

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

Смысл в том, что обе цифры появляются до изменений, а не после. Обычно порядок обратный: сначала наняли, перестроили, купили систему – потом считаем, что получилось.

Чего эти данные НЕ позволяют

Отдельный раздел, и он для меня важнее, чем результаты выше.

Система прямо помечает, каким выводам доверять нельзя. Этот журнал – история смены статусов, а не журнал работ. В нём видно, сколько заявка провисела в состоянии, но не видно, сколько человек над ней работал. Значит выводы про время и маршруты надёжны, а вот эффект найма на таких данных не посчитать: очередей и загрузки людей в них просто нет.

Я мог бы выдать красивое «плюс один сотрудник даст минус 15% ко времени» – проверить это никто бы не смог. Но это была бы выдуманная цифра, а выдуманная цифра в расчёте, под который нанимают людей, дороже, чем отсутствие расчёта.

Если в базе есть отметки о начале и конце работы – а в CRM и сервисных системах они обычно есть, – эта граница снимается, и загрузку людей считать можно.

Стек

PythonSQLprocess mining дискретно-событийная симуляция SQLite / PostgreSQLRouterAI

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

Грабли, на которые уже наступил

Форма данных важнее их размера. К названиям колонок система нечувствительна – хоть number, хоть _Reference114 из 1С, роль определяется по поведению значений, а не по имени. А вот форма решает: журнал событий разбирается сразу, а таблица, где этапы лежат отдельными колонками с датами, требует предварительного разворота.

Сначала проверить, ведут ли систему честно. Если стадии двигают задним числом, а половину сделок закрывают руками в конце месяца – журнал будет мусорным, и любые выводы из него тоже. Проверяется это за час, до всякой аналитики. Кстати, сам такой вывод – «40% ваших сделок не отражены в системе» – обычно стоит дороже, чем то, за чем изначально приходили.

Красивая схема без проверки соответствия – это картинка. Пока не измерено, какая доля заявок реально проходит по нарисованной модели, показывать её нельзя. У меня вышло 91,6%, и это хороший результат для чужих данных без единой ручной правки.

Вопросы и ответы

Сколько стоит такой аудит?

От 50 000 рублей за процесс. В цену входит подключение, разбор, схема процесса по фактам, расчёт двух-трёх сценариев «что если» и разбор результатов. Срок – от нескольких дней, а не месяцев: подготовка данных, которая раньше съедала недели, теперь делается за часы.

Вам нужен доступ к нашей боевой базе?

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

Данные уходят в чужие руки?

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

А если у нас маленькая компания и мало данных?

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

Чем это отличается от отчётов, которые уже есть в нашей CRM?

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

Это работает только с заявками и поддержкой?

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

автор – Семенов Евгений, Forward Deployed Software Engineer
ещё кейсы

Что считал до этого

все кейсы →

Похожая задача?

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

Обсудить задачу
статьи по теме

Про деньги и автоматизацию

все статьи →