журналопыт и цифрыцифры и определенияавтор

директор и машина · производственный цикл · запись № 053 · · Давид Герштейн

Разработка личного кабинета: как один скрипт превратил 12 страниц в проблему

12 страниц одним скриптом · 0 интеграций с CRM · 30–40% меньше токенов на MCP
Коротко · суть разбора

Разработка личного кабинета чаще всего срывается не из-за дизайна, а из-за трёх дыр: 12 страниц собраны без контроля качества, данные не долетают до CRM, а сотрудники обходят обязательные поля. На одном реальном экране показываем, как это чинится по шагам — эталон вместо генерации, привязка статуса к файлу, ИИ-проверка документов, — и что это даёт в цифрах: пересборка 12 страниц заняла 30–50 часов, а MCP-сервер срезал 30–40% токенов на запросах к CRM.

Содержание · 10 разделов
  1. Разработка личного кабинета: где чаще всего ошибаются?
  2. Зачем вообще затевают разработку личного кабинета
  3. Как выглядело «до»
  4. Что вскрылось при аудите
  5. Пересборка личного кабинета: механика по шагам
  6. ИИ-связка целиком
  7. Экран «после»: что показал аудит
  8. Экономика: что это стоило и что дало
  9. С чего начать вам в понедельник
  10. Мой вывод из этой пересборки

Суммы в разборе пересчитаны на условную компанию — пропорции, механика и выводы реальные.

Если вы заказали кабинет подрядчику, приняли работу по демонстрации и ни разу не открывали его глазами клиента — у вас там сейчас лежит минимум одна из трёх поломок, о которых ниже, и вы про неё пока не знаете. Я эти грабли собрал своими ногами: разбор ниже — про наш собственный кабинет, а не про чужие кейсы.

У нас сервисная компания: отдел продаж 8 менеджеров, оборот около 9 млн ₽ в месяц, средний чек по сделке — 180 тысяч ₽. Это значит примерно 50 сделок в месяц проходят через один и тот же экран — клиентский портал, личный кабинет, куда контрагент грузит документы для оформления заявки. Когда этот экран собран криво, теряются не абстрактные «удобство» и «имидж», а конкретные сделки: если из 50 сделок в месяц застревает на этапе документов хотя бы 10% — это 5 сделок по 180 тысяч, то есть 900 тысяч ₽ отложенной выручки в месяц (оценка). Формула для своего случая: число сделок в месяц × доля зависших на этапе документов (%) × средний чек = сумма отложенной выручки в месяц — подставьте свои цифры и получите свою оценку. Отдельный случай, когда интерфейс уже есть, а логики под ним нет, — личный кабинет клиента.

посчитайте на своих цифрах
риск ≈ {X} ₽ отложенной выручки в месяц
формула: сделки в месяц × средний чек × доля зависших на этапе документов; результат — верхняя граница риска

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

Разработка личного кабинета: где чаще всего ошибаются?

Ошибок три, и они повторяются почти у всех: страницы генерируют одним скриптом без построчной сверки с брендбуком, данные из кабинета не долетают до CRM автоматически, а статус «документ получен» ставится без прикреплённого файла. В клиентском портале компании на 40 человек это вылилось в пересборку 12 типов страниц — 30–50 часов дизайнера и разработчика.

Порядок важнее скорости: сначала данные и валидация, потом логика и только в конце интерфейс. Я делал наоборот и потерял на этом месяц.

Зачем вообще затевают разработку личного кабинета

Ваша логика при заказе портала обычно такая же: клиенты сами всё увидят, менеджеры разгрузятся. Дальше — что этому мешает.

Идея была простая: клиент заходит в личный кабинет, грузит документы — карточку организации, доверенность, спецификацию — и видит статус: одобрено, нужен доп. документ, лимит согласован. Менеджер освобождается от рутинной переписки «а вы прислали скан?». Под капотом — нейросеть, которая анализирует загруженные документы и формирует рекомендацию.

Чтобы не тратить месяцы на полноценный продукт, решили запустить обучение алгоритма на реальных кейсах прямо сейчас: взять 40 живых случаев, прогнать через систему, отдать менеджерам на проверку. Если менеджеры подтвердят корректность — протестировать на сегменте из 5 тысяч клиентов и оценить отклик. Логика: за полгода набрать адекватный массив данных, чтобы к концу года запустить полноценный MVP. Разумный план. Экран подвёл раньше, чем модель.

Как выглядело «до»

Если у вас портал делал подрядчик и вы не смотрели внутрь — там может быть примерно то же самое.

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

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

Мой первый инстинкт был именно такой — доводить каждую из 12 страниц до идеала вручную, страница за страницей. Это тупик: 12 страниц, у каждой десяток мелких расхождений — на полную вычитку и правку уйдут недели, а сзади уже стоит вторая проблема, куда более серьёзная.

Что вскрылось при аудите

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

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

Третья поломка была самой тихой и самой опасной. Менеджеры отмечали в CRM статус «документ в наличии» — но физически файл на сервер не грузили: экономили время, ставили галочку по памяти. Для человека разницы нет: документ где-то есть, все в курсе. Для модели, которая обучается на этих статусах, разница катастрофическая — она начинает считать, что клиент может пройти проверку без документа вообще. Обучающая выборка тихо портится, и никто этого не видит, пока не начинают сыпаться рекомендации по реальным сделкам.

Где ломается: если в системе можно поставить статус «готово» без прикреплённого файла — рано или поздно кто-то так и сделает, не по злому умыслу, а чтобы не тормозить работу. Любая ИИ-модель, обученная на таких статусах, унаследует эту дыру и начнёт занижать требования к комплекту документов. Проверяйте не «отмечено ли», а «прикреплён ли файл» — это разные вещи.

рассылка журнала

Разборы про документы и заявки — на почту

Распознавание, сроки, зависшие статусы, клиентский портал.

Пересборка личного кабинета: механика по шагам

Ваш порядок: сначала данные, потом логика, и только в конце интерфейс. Мы делали наоборот и потеряли на этом месяц.

Я принял решение не доводить каждую из 12 страниц до идеала перед тестированием, а изменить сам процесс сборки.

  1. Эталон вместо генерации. Взяли единственный утверждённый прототип главной страницы — тот, что прошёл дизайн-ревью без замечаний — и сделали его образцом для всех остальных 12 типов.
  2. Комплексный аудит вместо точечных правок. Собрали все 12 типов страниц в одну таблицу (Google Sheets: тип страницы → элемент брендбука → статус «совпадает / не совпадает» → кто чинит) и прогнали разом с привлечением дизайнера и разработчика, а не по одной странице за раз.
  3. Обязательная привязка статуса к файлу. На уровне формы и API запретили менять статус документа на «в наличии», пока файл физически не загружен на сервер. Это убрало третью поломку сразу — модель больше не видит «пустых успехов».
  4. Выгрузка и сопоставление данных. Массив документов и рекомендаций портала выгрузили и сопоставили с клиентами, прошедшими проверку с первого раза — так появился первый размеченный датасет для обучения.
  5. Точечное обучение OCR вместо запуска на всей базе. Вместо прогона через всю накопленную базу собрали 92 типовых документа, обучили стажёра проверять результат вручную и по каждому типу документа написали отдельную спецификацию — с описанием нюансов распознавания (развороты, качество скана, положение печати).
  6. Многоступенчатый анализ. Сначала система определяет тип документа, затем применяет нужную спецификацию, при затруднении эскалирует на более мощную модель, и только после этого документ уходит на подтверждение менеджеру.

Координатор, который в других процессах компании держит статусы в трёх табличках, на этой пересборке сформулировал главное требование к системе одной фразой: «Статус меняется один раз и в одну сторону. Если менеджер откатывает дату проверки назад — я должен это видеть, а не гадать, что случилось на самом деле». Требование вошло в техзадание почти дословно.

ИИ-связка целиком

Возьмите эту схему за основу — она не зависит от того, на чём сделан ваш портал.

Конвейер обработки документа выглядит так: клиент грузит файл на портал → вебхук уходит в обработчик → OCR извлекает текст → лёгкая модель определяет тип документа и полноту пакета → при низкой уверенности передаёт сложный случай на более мощную модель → результат пишется в карточку сделки в CRM → менеджер подтверждает или отклоняет.

На шаге определения типа и полноты пакета работает дешёвая модель: задача формальная (классификация + извлечение полей), ошибка стоит немного, а объём документов большой. На шаге эскалации, когда документ повёрнут, скан плохого качества или тип нестандартный, — подключаем более дорогую модель с расширенным контекстом. Разница в стоимости запроса ощутима при потоке в сотни документов в месяц, поэтому маршрутизация «дешёвая → дорогая только по необходимости» — не экономия ради экономии, а единственный способ не сжечь бюджет на рутине.

Ты — ассистент проверки комплекта документов клиента B2B-портала.
На вход: распознанный текст документа (OCR) + тип документа, заявленный при загрузке.

Проверь и верни строго JSON:
1. document_type — фактический тип документа (карточка организации / доверенность / спецификация / другое)
2. matches_declared — совпадает ли фактический тип с заявленным (true/false)
3. required_fields_found — список найденных обязательных полей (ИНН, ОГРН, срок действия доверенности, подпись)
4. missing_fields — список отсутствующих обязательных полей
5. confidence — уверенность распознавания от 0 до 1
6. escalate — true, если confidence ниже 0.75 ИЛИ документ повёрнут/плохого качества
7. comment — одна короткая фраза для менеджера, что проверить руками

Не придумывай значения полей, которых нет в тексте. Если поле не читается — ставь в missing_fields.

Текст документа: {{ocr_text}}
Заявленный тип: {{declared_type}}

Пример ответа модели:

{
  "document_type": "доверенность",
  "matches_declared": true,
  "required_fields_found": ["ИНН", "срок действия", "подпись"],
  "missing_fields": ["печать"],
  "confidence": 0.62,
  "escalate": true,
  "comment": "Проверить наличие печати вручную, скан частично обрезан"
}

Инженерная обвязка. Обработчик крутится на отдельном сервере, принимает вебхук из Bitrix24 при появлении нового файла в карточке сделки (входные данные: ID сделки, ссылка на файл, тип документа из формы). Результат анализа пишется обратно в кастомное поле сделки через API. Каждый шаг конвейера логируется в отдельную Google-таблицу: время, ID документа, модель, результат, ошибка — по образцу того, как в другом процессе компании настроили логирование обработки резюме, чтобы руководитель видел не только успешные случаи, но и зависшие. При сбое обработчик переставляет задачу в очередь на повтор и, если попытка проваливается трижды, кидает сообщение в общий чат команды, а не молчит.

Отдельно для доступа ИИ-инструментов к данным CRM без раздувания промпта настроили MCP-сервер поверх базы CRM. Это снижает расход токенов на 30–40% и уменьшает долю галлюцинаций, потому что модель обращается к структурированным данным напрямую, а не получает их вставленными текстом в каждый запрос. Условный пример: запрос без MCP — это вставка текстового дампа карточки сделки в промпт, порядка 3000 токенов (оценка); тот же запрос через MCP обращается к структурированным полям и укладывается в 1800–2100 токенов — те самые 30–40% экономии на каждом вызове. При потоке в несколько сотен вызовов в месяц разница заметна на счёте за токены, но точную сумму в рублях считайте по своему тарифу у провайдера модели — универсальной цифры тут нет.

Экран «после»: что показал аудит

Ориентир для вашей проверки: данные на экране должны сходиться с системой на всех пяти проверенных клиентах, а не на одном показательном.

Тип страницы порталаПроблема на аудитеЧасов на исправление
Личный кабинет / дашборд статусаНе тот акцентный цвет, шрифт заголовков не по брендбуку3–4
Загрузка документовСтатус менялся без привязки к файлу6–8 (включая правку API)
История заявокРасхождение в стилистике карточек2–3
Договор и тарифыВёрстка не соответствовала эталону3–4
Остальные 8 типов страницТочечные расхождения того же рода2–4 на каждую, то есть 16–32 суммарно
Итого по 12 страницам—30–51, консервативно берём 30–50 (оценка)

До пересборки ни одна из 12 страниц не проходила аудит без замечаний по брендбуку; после сборки по единому эталону — все 12 страниц прошли аудит комплексно, за один цикл.

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

бесплатный курс · телеграм

Собрать разбор документов машиной

В курсе — как поставить обработку документов: эталонный набор, правила для спорных случаев, приёмка результата. Тот путь, которым мы дошли с 59% до 85% точности.

Начать курс бесплатно →

открывается в Telegram · доступ по подписке на канал

Экономика: что это стоило и что дало

Прикиньте свою: сколько времени ваши менеджеры тратят на ответы про статусы и сколько стоит переделка портала, если данные под ним неверны.

Настройка ИИ-конвейера и MCP-сервера (вебхук, OCR, маршрутизация «дешёвая → дорогая модель», подключение к CRM) заняла ориентировочно 20–30 часов разработчика, эксплуатация моделей — около 3 000–5 000 ₽/мес, а эффект — сокращение затрат на ручную проверку документов примерно на 6 500–11 000 ₽/мес (оценка). Дальше — раскладка по инициативам: пересборку экрана и ИИ-модуль считаю раздельно, потому что это разные инициативы с разной окупаемостью и их нельзя складывать в один эффект.

Пересборка вёрстки по эталону. По таблице выше сумма нижних оценок часов — 30, верхних — 51; берём консервативный диапазон 30–50 часов дизайнера и разработчика на аудит и доводку 12 типов страниц. При ставке около 1500 ₽/час это 45 000–75 000 ₽ разовых расходов — не эксплуатационных, а разового цикла пересборки.

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

ИИ-конвейер анализа документов. При потоке около 50 сделок в месяц и в среднем 3–4 документах на сделку это 150–200 документов ежемесячно. Формула для своего случая: количество документов в месяц × время ручной проверки одного документа (мин) / 60 × ставка часа сотрудника = затраты на ручную проверку. Подставляем: ручная проверка каждого документа менеджером занимает 5–7 минут — 150×5/60 ≈ 12,5 и 200×7/60 ≈ 23,3, то есть 12–23 часа в месяц на весь отдел, или 12 500–23 000 ₽ по ставке 1000 ₽/час менеджера. Автоматическая маршрутизация «дешёвая модель → эскалация только сложных случаев» оставляет менеджеру только проверку результата — консервативно это сокращает время проверки вдвое (точная доля зависит от того, сколько документов ушло на эскалацию), то есть высвобождает 6 500–11 000 ₽/мес в пересчёте на часы менеджеров. Расходы на сами модели при таком потоке — условно 3 000–5 000 ₽/мес, то есть в разы меньше, чем экономия на времени менеджеров; подробный разбор счетов за ИИ есть в материале про реальные расходы на ИИ.

ПоказательДо автоматизацииПосле автоматизации
Документов в месяц150–200150–200
Время проверки менеджером5–7 мин/документ~2,5–3,5 мин/документ (в среднем вдвое меньше)
Часы отдела в месяц12–236–12
Стоимость времени менеджеров (1000 ₽/час)12 500–23 000 ₽6 000–12 000 ₽
Расходы на модели—3 000–5 000 ₽/мес

Риск зависших сделок. Если 10% из 50 месячных сделок зависает на этапе документов — это 5 сделок по 180 тысяч ₽, то есть 900 тысяч ₽ отложенной выручки в месяц (формула — в начале статьи). Пересборка экрана и обязательная привязка статуса к файлу не гарантируют, что этот риск исчезнет полностью, но убирают одну из его причин — искажённые статусы, из-за которых сделка стоит на месте, пока никто не замечает, что документа фактически нет. Что мы не считаем эффектом: устранение этой причины — это снижение вероятности зависания, а не гарантированная экономия; складывать эту цифру с экономией на ИИ-конвейере напрямую нельзя — это разные механизмы эффекта, один снижает трудозатраты, другой снижает вероятность потери сделки.

Где ломается: качество OCR через API и через веб-интерфейс модели — разные вещи. Мы тестировали распознавание в самом сервисе — работало отлично. При запуске через API повёрнутые документы переставали распознаваться корректно. Если тестируете модель только в интерфейсе, а в продакшне работаете через API — закладывайте отдельный цикл тестирования именно на API-вызовах, желательно на 90–100 типовых документах с разными углами поворота и качеством скана.

С чего начать вам в понедельник

Четыре шага, и первый — не про интерфейс.

Про то, когда клиентский портал вообще нужен компании, а когда это лишние деньги на пустом месте, — отдельный разбор в материале о клиентских порталах для среднего бизнеса. Как поднять точность распознавания документов с 59% до 85% на конкретном кейсе — в разборе по OCR.

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

Как понять, дозрели ли вы до портала, — в отдельном разборе, а механика внедрения — в бесплатном курсе.

Мой вывод из этой пересборки

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

Если вы делаете свой портал — начните с проверки данных. Это скучно и это единственное, что определит, будет он работать или нет.

И назову вещь, которую раньше не считал работой руководителя. Это отдельный управленческий навык: читать не экран, а данные под ним. Руководитель, который умеет спросить «что физически лежит в системе за этим статусом» и получить ответ цифрой, стоит дороже руководителя, который принимает решения по красивой картинке. Мне этот навык обошёлся в месяц работы команды — вам он может достаться за один вечер проверки.

И назову вещь, которую раньше не считал работой руководителя. Это отдельный управленческий навык: читать не экран, а данные под ним. Руководитель, который умеет спросить «что физически лежит в системе за этим статусом» и получить ответ цифрой, стоит дороже руководителя, который принимает решения по красивой картинке. Мне этот навык обошёлся в месяц работы команды — вам он может достаться за один вечер проверки.

Проверьте свой портал на этой неделе так же, как проверили мы: пять реальных клиентов, сверка того, что видят они, с тем, что в системе.

Частые вопросы

Почему личный кабинет не работает после запуска?

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

Какие ошибки чаще всего допускают при разработке личного кабинета?

Автогенерация страниц одним скриптом без построчного аудита на соответствие брендбуку, отсутствие обязательной привязки статуса к загруженному файлу, и разное качество OCR при работе через API по сравнению с интерфейсом самого сервиса.

Как понять, что кабинет сломан именно из-за ИИ-модуля, а не интерфейса?

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

#ошибки и провалы #ии и нейросети #контроль и надёжность

→Дальше читать подобрано по направлению и темам
058
Личный кабинет на 400 тысячах вопросов: красивый интерфейс без работающей логики
92 примера на OCR, 27 клиентов в просрочке, 30–40% экономии токенов
003
Автоматизация заявок: от письма до задачи с ответственным
3000 мс → 80 мс отклик формы · несколько десятков клиентов в просрочке на этапе документов · более сотни клиентов пострадали из-за устаревших шаблонов
034
Контроль сроков выполнения заказов: как перестать узнавать о срыве от клиента
8 из 75 сделок зависает на одном этапе (~10%) · около 20 случаев в месяц требуют ручного разбора причины · 3 неответа клиента = отказ по договору