Империя рекламы: CRM для менеджеров внутри сайта агентства

Роль: продуктовый дизайнер (структура сделок, ролевая модель, дашборды, UX-плотность рабочего интерфейса) Период: июль — август 2026 (ЛК менеджера v2 — 20–23.07.2026, ревизия v2.1 — 21–22.07.2026, дорабатывается по сей день) Продукт: внутренняя CRM/личный кабинет менеджера, встроена в тот же Next.js-проект, что и сайт (роут /manager) Команда: 1 человек

Ключевые результаты:

Excel и YouGile

Заменены одной системой

Расчёт премии менеджеров

Автоматический вместо ручного подсчёта

Три Telegram-аккаунта менеджеров

Сведены к одному рабочему процессу

Обложка кейса «Империя рекламы: CRM для менеджеров»

Контекст

У агентства 3 менеджера и 3 дизайнера. До CRM сделки и суммы для расчёта премии менеджеры вели вручную — раз в неделю переносили закрытые сделки во внешние таблицы, суммы для процента считали сами в личных экселях, отдельно от карточек клиентов. Задачи дизайнеров жили в стороннем сервисе YouGile — без связи с конкретным клиентом и без видимости, оплачен ли дизайн, при действующем в агентстве правиле «макеты для новых клиентов — после оплаты дизайна как отдельной позиции». Источники лидов нигде не фиксировались: параметр перехода терялся сразу после обработки, а с запуском рекламы в Яндекс.Директе понять, какая кампания приводит клиента, стало бы вообще невозможно.

Источник: docs/Product-Manager-LK-v2-2026-07-20.md, Problem Statement + ответы автора.

Решение

CRM задумана как апгрейд и уход от разрозненных инструментов — таблиц, YouGile и трёх личных Telegram-аккаунтов, через которые менеджеры вели переписку по отдельности. Дальше — по разделам, с конкретными решениями и тем, что за ними стояло.

Данные и деньги

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

Карточки клиентов и сделки

Карточка открывается не попапом, а переключением содержимого той же колонки (master-detail, а не модальное окно) — 20.07.2026, по прямому уточнению владельца «а не аналогично с клиентами по всей строке?» после того, как первая версия делала кликабельным только поле «Описание». Навигация назад тоже прошла итерацию: сначала это были текстовые хлебные крошки «Клиенты › Имя» на десктопе и голая стрелка без подложки на мобильном — по замечанию владельца, что мобильная стрелка «не к селу не к городу», 23.07.2026 оба варианта заменены на единый паттерн «← Имя» на всех размерах экрана, без отдельного текста «Клиенты»: раздел и так называется «Клиенты» в сайдбаре, дублировать это в крошках было незачем.

Список клиентов и открытая карточка одного клиента в той же колонке
Клик по любой точке строки открывает карточку на месте таблицы, без попапа. Кнопка «← Имя» в шапке — единственный признак того, что находишься не в списке, а в карточке; название раздела «Клиенты» не дублируется — оно уже есть в сайдбаре слева.

Статус сделки — намеренно бинарный «денежный шлюз», не воронка: пока сделка in_progress, владелец сделки правит любые поля свободно; после перевода в closed — только просмотр, вернуть в работу может лишь администратор. Формулировку бейджа при этом дважды меняли за два дня: 22.07.2026 подписи переписали с процессных «В работе»/«Закрыта» на денежные «Ещё не закрыта»/«Оплачена», чтобы статус называл факт получения денег напрямую, а не нейтральный этап. Уже на следующий день, 23.07.2026, владелец счёл новую формулировку неочевидной, и подписи вернули к прямым «Открыта»/«Закрыта» — смысл статуса (закрыта = деньги получены, заказ сдан) при этом не изменился, изменилась только видимая подпись. Двухдневный цикл — рабочий пример того, что более «точная» по смыслу формулировка не всегда более понятна на практике.

Журнал сделок со статус-бейджами «Открыта» / «Закрыта»
Два статуса вместо привычной воронки из 4–5 этапов — потому что агентству нужен не процесс продажи, а факт получения денег. Под капотом «Закрыта» всегда означало «деньги получены», но видимая подпись через сутки вернулась к нейтральной — денежная формулировка оказалась менее понятной, чем прямая.

Задачи дизайна

Перенесены из YouGile в свой раздел ЛК. Бейдж оплаты дизайна прошёл через два раунда переработки: сначала одна колонка совмещала статус, ручную отметку и привязку к сделке в одной ячейке — по прямой просьбе владельца («бейдж... в отдельную колонку, следующая с выпадающим списком... последним столбцом иконка привязки») разбита на три независимых столбца с собственным состоянием загрузки у каждого, чтобы клик по одному элементу строки не блокировал соседние.

Таблица задач дизайна: бейдж оплаты, ручная отметка и привязка к сделке как три отдельных столбца
Текущее состояние: «Оплата» (бейдж), «Отметка вручную» (дропдаун) и привязка к сделке (иконка) — три независимых элемента строки вместо одной смешанной ячейки, какой она была до 22.07.2026.

Расчёт премии

Раньше менеджеры сами считали сумму закрытых заказов за период в личных таблицах. Сейчас система выдаёт список закрытых заказов и производит расчёт автоматически, на основе того же статуса-шлюза — расчёт «к выплате» по проценту сознательно не автоматизирован (формула процента по менеджерам/направлениям на момент релиза не была согласована), сводка показывает прибыль, финальный расчёт делается вручную поверх готовой суммы.

UI-паттерны рабочего инструмента

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

Плотность интерфейса

22.07.2026 владелец продиктовал таблицу целевых размеров интерактивных элементов по зонам (32px — навигация и тулбары, 36px — формы и модалки, 28–32px — действия в строках таблицы) с прямой просьбой «зафиксируй её где-нибудь» — записана в лог как обязательный ориентир для любого нового кода в /manager. Это и есть источник более плотного, чем на сайте, спейсинга CRM, который docs/spacing-guidelines.md явно выводит из-под общей шкалы отступов маркетингового сайта: рабочий инструмент подчиняется своей системе, а не системе продающих страниц.

Мелкая деталь, которая экономит внимание сотрудника

Иконки действий в строках таблиц монтировались только когда действие доступно ({condition && <Button>}) — из-за этого набор иконок «прыгал» от строки к строке. 22.07.2026, после жалобы владельца со скриншотом («сами действия прыгают, выглядит стрёмно... наверно их надо привязать каждую к своему месту и заглушить цветом те что неактивны») — переделано на фиксированные слоты: кнопка есть в каждой строке всегда, просто disabled и приглушена, когда действие недоступно. Решение зафиксировано как стандарт для любых будущих колонок действий в ЛК, не разовый фикс.

Колонка действий журнала сделок: три фиксированных слота в каждой строке
Колонка действий журнала сделок. Средний слот меняет иконку по состоянию сделки — замок (закрыть) для открытых, «переоткрыть» для закрытых — но сам слот никогда не исчезает и не сдвигается, в отличие от прежней версии, где набор иконок менялся от строки к строке.

19.07.2026: /manager сделан одним компонентом-оркестратором, переключающим «загрузка → логин → дашборд» без переходов между URL, а разделы внутри — вкладками, а не страницами. Обоснование не эстетическое, а по сценарию: сотрудник за раз держит в голове максимум один из разделов, переключение вкладкой быстрее перехода по ссылке с перезагрузкой данных; тот же единый компонент упрощает обработку истёкшей сессии — куда бы сотрудник ни ушёл, 401 везде возвращает на один и тот же экран логина.

Пустое состояние — тоже часть интерфейса, не забытый случай

Привязка сделки к задаче дизайна открывает список только непривязанных задач того же клиента; если таких нет, вместо пустого дропдауна — текст «Нет свободных задач дизайна у этого клиента», а не молчаливая пустота.

Авторизация через живое членство в Telegram-группе менеджеров

Вместо отдельного списка допуска права наследуются из уже существующей орг. структуры агентства в Telegram. Компактное решение со своей ценой — см. «Что не сработало».

Что не сработало

Неоднозначная формулировка → правка не туда

22.07.2026 владелец описал желаемую фичу — привязку/отвязку задачи к сделке — фразой «в конце блок с действиями, куда нужно добавить действие привязать/отвязать». Формулировка была прочитана в контексте сделок и реализована там; на деле речь шла о задачах дизайна. Владелец указал, что получилось криво, фичу с сделок убрали и перенесли на правильный объект. Зафиксированный для себя вывод: при чтении неоднозначной формулировки из длинного списка правок — сверяться, к какому экрану/сущности она реалистичнее относится, а не хвататься за ближайший по смыслу.

Сотрудники привыкают тяжелее, чем ожидалось

Прямая цитата:

«работники не привыкли к новому сервису и страдают»

Тестовые прогоны с менеджерами провели, но по общей тенденции погружения в продукт всё же начинают им пользоваться и оценивают как удобный. Это не решённая проблема, а текущий процесс: сейчас собирается база багов и практик по улучшению UX на основе реальной менеджерской работы, критичные проблемы из неё заходят в разработку по мере обнаружения — тот же цикл, что документирован в docs/ux-decisions.md.

Цепочка рисков доступа, найденная аудитом

Аудит безопасности (03.08.2026) выявил, что авторизация через членство в группе создаёт составной риск: утечка инвайта → вход без подтверждения администратором → выгрузка базы клиентов без журнала доступа и без возможности отозвать конкретную сессию. Закрыто в тот же день: экран ожидания подтверждения администратором, точечный отзыв сессий, журнал доступа (только для админа), а инвайт-ссылки в группу менеджеров стали одноразовыми вместо постоянных.

Метрики

Внутренних метрик использования (частота входов, скорость закрытия сделок и т.п.) нет и не планируется — инструмент для 6 человек, такая аналитика не оправдана на этом масштабе.

Результат — не цифра, а замена процесса: Excel-таблицы и YouGile больше не нужны как отдельные инструменты; премия менеджеров считается системой автоматически по закрытым заказам вместо ручного подсчёта; три личных Telegram-аккаунта менеджеров сведены к одному рабочему процессу.

Статус

CRM в проде. Миграция — не одномоментная: новые клиенты, прошедшие через воронку, сразу заводятся в новой системе; старые клиенты добавляются постепенно, по мере новых заказов — так база одновременно актуализируется и переезжает, без разового переноса устаревших данных. Часть клиентов пока ведётся по-старому. Сбор багов и практик по UX идёт на основе реальной работы менеджеров, критичные проблемы вносятся по ходу — это видно по датированным записям в docs/ux-decisions.md.

Что дальше

Продолжается сбор базы багов и UX-практик на основе менеджерской работы, с внесением критичных проблем по мере обнаружения — процесс без фиксированной даты завершения.

Выводы

Что сработало: перевод разовых жалоб в системные правила (фиксированные слоты действий, единая шкала размеров компонентов, единый источник подписи статуса) — точечная правка одного экрана становится стандартом для всех будущих.

Что не сработало сразу: чтение неоднозначной формулировки без проверки, к какому именно объекту она относится — стоило дороже, чем лишний уточняющий вопрос.

Переписано по /case-review, 27.08.2026. Источники: docs/manager-lk.md, docs/Product-Manager-LK-v2-2026-07-20.md, docs/Product-Manager-LK-v2.1-Revision-2026-07-21.md, docs/ux-decisions.md (записи 2026-07-19–2026-08-25), docs/spacing-guidelines.md, SECURITY-AUDIT.md, ответы автора в диалоге. Данные о реальных клиентах агентства в кейс не включались — для скриншотов использовать мок-режим (NEXT_PUBLIC_MANAGER_MOCK=1) или анонимизированные данные.

Другие кейсы

Готов к сотрудничеству

Ищу продуктовую команду. Если задача откликается — напишите.

Telegram