ПРО ТРАНСПОРТ
Рейсы, контрагенты, автопарк, водители и деньги в одной системе — и маржа, которая видна в момент создания заявки, а не в конце месяца.
Открыть живой прототип crm.foxdim.ruПРО ТРАНСПОРТ — CRM для транспортной компании со своим и привлечённым парком. Компания уходила с готовой системы: дорого, плохо подстраивается под их процессы, интерфейс устарел. Решили растить собственный продукт. Я отвечал за дизайн и фронтенд, бэкенд делала другая команда — поэтому между макетом и работающим интерфейсом не было передачи «через стену».
Почему за это взялись
В проект меня привёл разработчик, который уже проработал основную бизнес-логику. Чтобы понять работу диспетчеров, я изучал видео их рабочего дня, которые прислал заказчик, и обсуждал процессы напрямую с владельцем бизнеса. Главное условие — диспетчеры переходят со старой системы: привычная логика форм должна сохраниться, а новое — деньги, проверки, контроль документов — должно появиться рядом, не ломая навык. Это определило подход: не переизобретать рабочие формы, а убрать из них потери времени и сделать видимыми деньги.
Что мешало — и что изменили
Что мешало
- Статус рейсов и маржу собирают из разных таблиц и звонков.
- Документы водителей и транспорта истекают незаметно — о просрочке узнают на рейсе.
- Реквизиты контрагентов вводят вручную, с ошибками; проверка контрагента и водителя — отдельным делом.
- Реальную рентабельность видят в конце месяца, когда повлиять на неё уже нельзя.
Что изменили
- Дашборд отвечает на вопрос «куда смотреть»: рейсы в работе со ставкой и маржой, готовность автопарка и список «Требуют внимания», каждый пункт которого ведёт к объекту.
- Заявка на рейс сохраняет привычную раскладку — заказчик и перевозчик рядом, у каждого своя оплата, — а умный калькулятор считает маржу сразу.
- Справочники контрагентов, транспорта, водителей и адресов заполняются из ФНС, ГИБДД и ФИАС и защищены от дублей — ввод руками остаётся для исключений.
- Отчёты показывают выручку, себестоимость и маржу по месяцам и по заказчикам — рентабельность перестаёт быть сюрпризом.
Как я работал
- 01
Погружение в процесс
Видео рабочего дня диспетчеров и разговоры с владельцем бизнеса: где теряются время и деньги, что диспетчер делает руками, а что система может сделать за него.
- 02
Сохранить привычное
Диспетчеры переходят со старой системы, поэтому логика форм осталась узнаваемой: тулбар «Провести / Создать на основании / Печать», колонки заказчика и перевозчика. Новое добавлено рядом.
- 03
Единые паттерны
Десять разделов в боковом меню со счётчиками. Все реестры устроены одинаково: вкладки по типам, фильтры, настраиваемые столбцы, массовые проверки, импорт и экспорт. Карточки объектов — с вкладками и лентой активности, добавление и правка — в боковой панели поверх списка.
- 04
Ввод данных без ошибок
Формы знают, что можно получить из внешних источников: ИНН и КПП — из ФНС, марка и модель по госномеру — из ГИБДД, ИНН водителя — по паспорту, адрес — из ФИАС. Дубли ловятся до создания записи: по паспорту водителя, по строке и городу адреса.
- 05
Дизайн и фронтенд в одних руках
Дизайн-система на основе Consta и собранный мной фронтенд: решения проверялись в работающем интерфейсе, а не на статичных макетах.
Экраны, которые двигают работу
Оперативная сводка
Шесть показателей в одну строку: рейсы в работе, погрузки на сегодня, выручка и маржа за месяц (₽ 613 000, рентабельность 21 %), свободный транспорт, «Требуют внимания». Ниже — рейсы со ставкой и маржой, готовность автопарка кольцевой диаграммой (в рейсе, свободны, на ремонте), список «Требуют внимания» с задержкой рейса, истекающими документами, неполными документами ТС и превышенным лимитом дебиторки, финансы месяца и топ дебиторов.
- Каждый пункт «Требуют внимания» ведёт к объекту — к рейсу, водителю, транспорту, контрагенту
- Соотношение себестоимости и маржи — одной полосой, 79 % и 21 %
- Единый поиск по рейсам, ТТН и перевозчикам — в шапке на любом экране
Заявка на рейс
Рабочий документ диспетчера. Сверху статус «В пути» и маршрут, тулбар «Провести / Создать на основании / Печать / Проверить водителя». Заказчик слева, перевозчик справа — с контактами, ставкой, формой оплаты, условиями и отсрочкой. Умный калькулятор показывает маржу и прибыль, ниже — точки погрузки и выгрузки с датой, адресом, грузом, весом, объёмом и температурным режимом.
- Две независимые оплаты в одной заявке — заказчика и перевозчика
- Водителя можно проверить, не выходя из заявки
- Температурный режим — отдельная колонка для рефрижераторных рейсов
Контрагенты: реестр
Вкладки по ролям с счётчиками — заказчики, перевозчики, грузоотправители, грузополучатели, прочие, чёрный список. Поиск по наименованию и ИНН, фильтры, массовое обновление из ФНС, импорт и экспорт. Настройка столбцов открывается поповером с переключателями и подписью «Настройки сохраняются для вашего профиля». Роли показаны цветными метками, статус — «Разрешён».
- Массовая проверка в ФНС — выделить галочками и обновить
- Эталонный паттерн реестра: так же устроены транспорт, водители и адреса
Новый контрагент: мастер из трёх шагов
Добавление открывается боковой панелью поверх реестра — список остаётся перед глазами. Шаг 1 из 3 — «Реквизиты и роли»: ИНН и КПП запрашиваются из ФНС одной кнопкой («Не заполняется для ИП»), затем сайт и код ATI, по которому подгружается рейтинг. Роли выбираются карточками с пояснением, что каждая значит для рейса: заказчик размещает заявки на перевозку, перевозчик выполняет рейсы своим транспортом, грузоотправитель — точка погрузки, грузополучатель — точка выгрузки, прочий — например, агент.
- Прогресс из трёх шагов, у текущего подпись «ИНН, ФНС, АТИ, роли»
- Подсказка под полем объясняет, зачем код ATI — «если есть, по нему подгрузится рейтинг»
- Роли — не список галочек, а выбор с пояснением смысла
Карточка контрагента
Шапка отвечает на главные вопросы о партнёре: рейтинг заказчика и перевозчика, активные рейсы, договоры и дебиторская задолженность относительно лимита. Десять вкладок — от реквизитов и контактных лиц до договоров, водителей, транспорта, адресов и грузов. На «Обзоре» основные сведения со статусом ФНС и ЭДО, контактное лицо, основной банковский счёт, активные договоры со статусами и лента активности.
- Дебиторка на фоне лимита — сразу видно, сколько до него осталось
- Лента активности хранит историю: от создания рейса до смены лимита
Автопарк
Машины, фургоны и прицепы — 30 единиц, 15 в рейсе. Вкладки по типу и состоянию: свободные, в рейсе, на ремонте. Госномер показан как номерной знак, рядом владелец (собственный парк, аренда), водитель со сцепкой и статус документов. Фильтры по владельцу, статусу, региону, типу кузова, водителю и истекающим документам, проверка в ГИБДД.
- Собственный парк и привлечённый — в одном реестре, различаются владельцем
- Проверка документов — «СТС · ПТС» в строке, неполные выделены
Новое ТС: сначала тип — потом поля
Форма добавления начинается с выбора типа средства — машина, прицеп или фургон, потому что от него зависит набор полей. Машина — седельный тягач или грузовик, к ней можно прицепить прицеп и назначить водителя; прицеп описывается грузовыми характеристиками, тип кузова, тоннаж, габариты и способы погрузки; фургон — цельнометаллический или изотермический, без прицепа. Дальше — госномер и регион: по кнопке «Проверить в ГИБДД» марка, модель, год и цвет подтягиваются сами и остаются редактируемыми.
- Каждый тип объяснён одной строкой — не нужно угадывать по названию
- Автозаполнение не блокирует поля: ошибку источника можно исправить руками
- «Необязательно» подписано там, где поле можно пропустить, — например, год выпуска
Карточка водителя
В шапке — привлечённый водитель, статус «В рейсе», категории, срок действия удостоверения и текущее ТС. Основные данные, документы с отметкой «в заявку», занятость, связанные контрагенты, лента активности («ИНН получен автоматически по паспортным данным») и последние рейсы. Кнопки «Обновить из ФНС» и «Назначить на рейс».
- У документов отметка «в заявку» — видно, какие из них уйдут в рейс
- «Назначить на рейс» — действие в шапке, не в глубине карточки
Новый водитель: защита от дублей
Быстрая форма просит минимум — ФИО и паспортные данные, — и прежде чем что-то создавать, система проверяет, нет ли уже такого водителя: дедупликация по серии и номеру паспорта. Затем «Основные данные»: дата рождения, гражданство, телефон с маской, ИНН физлица рассчитывается автоматически по ФИО, дате рождения и паспорту через ФНС и DaData («Получить ИНН»), СНИЛС — по желанию. В реестре водителей вкладки «Штатные 4 / Привлечённые 11 / В рейсе 8 / Свободны 7».
- Дубль ловится до создания записи, а не после — когда он уже в рейсах
- ИНН не вводится руками: поле подписано «Будет получен из ФНС»
- Кнопка сохранения называет результат: «Сохранить водителя»
Справочник адресов
33 адреса в 18 городах, вкладки «Точки погрузки 21 / Точки выгрузки 17 / Погрузка и выгрузка 5». Редактирование — в боковой панели: контрагент, город из списка, который нормализуется через DaData и ФИАС, адрес и тип точки двумя переключателями. Внизу пояснение: адреса дедуплицируются по строке и городу, а тот же адрес создаётся автоматически при оформлении рейса.
- Адрес привязан к контрагенту — у «ТрансСервиса» их несколько
- Тип точки — переключатели, а не выпадающий список: одна точка может быть и погрузкой, и выгрузкой
Отчёты
Пять вкладок: выручка и маржа, рейсы, перевозчики, автопарк, дебиторская задолженность; период переключается — март, февраль, квартал. Вверху выручка, себестоимость, маржа и доля доставленных рейсов. Динамика за 12 месяцев столбцами (себестоимость и маржа), выручка и рентабельность по заказчикам с долей, структура выручки.
- Текущий месяц выделен в динамике — виден на фоне года
- Экспорт отчёта одной кнопкой
Сотрудники и доступы
37 пользователей, 11 подразделений. Карточка сотрудника с вкладками: основное, права доступа, дополнительные права, история входов, копии документов и ЭДО, Telegram-бот и доступ в мобильное приложение. Данные для входа и ограничения — рядом с личными данными, чтобы руководитель настраивал доступ в одном месте.
- Роль, отдел и доступ собраны в одной карточке
- История входов — вкладкой, без отдельного журнала
Итог в цифрах
- Рабочий фронтенд CRM и маркетинговый лендинг продукта.
- Ключевые процессы диспетчера собраны в одной системе, а маржа видна в момент создания заявки.
- Единые паттерны реестров и карточек позволяют освоить новый раздел, выучив один.