Покрытие документации по CRM
Эта карта нужна авторам документации LadVen OS, чтобы модуль CRM был описан так же полно и одинаково полезно для владельца бизнеса, руководителя отдела продаж или сервиса, менеджера и администратора процесса, как уже описан модуль задач. Документация объясняет не внутреннее устройство системы, а управленческий смысл: как вести клиента без дублей, провести сделку по этапам, не потерять следующий шаг, принять результат, настроить воронку и автоматизацию и удержать клиентский процесс под контролем.
Карта построена по образцу docs/admin/task-coverage.md. Она внутренняя: это методология производства документации, а не публичная страница. Публичные статьи живут в docs/crm.md и будущем каталоге docs/crm/*.
Цель покрытия
Документация по CRM должна отвечать на пять вопросов для каждой поверхности:
- Где пользователь находится: клиенты, сделки, воронки, рабочая область клиента, автоматизация, формы, интеграции, дашборд.
- Какой рабочий вопрос решает экран или блок.
- Какие действия доступны и что произойдет после действия.
- Какие состояния, ограничения и ошибки пользователь может увидеть.
- Какие скриншоты нужны, чтобы сценарий был понятен без доступа к демо-стенду.
Писать нужно на языке процесса: клиент, сделка, этап, ответственный, следующий шаг, результат, приемка, история, доступ. Не писать про backend, API, схемы полей, токены интеграций, внутренние коды прав и технические классы.
Срез актуальности
Первичный CRM-аудит выполнен read-only по фронтенду на коммите аудита.
| Поле | Значение |
|---|---|
| Дата аудита | 2026-06-08 |
| Frontend commit аудита | de08556e |
| Текущий frontend HEAD на момент аудита | ed7dbe93 (изменения в mailbox, не затрагивают CRM) |
| Область | Read-only каталог поверхностей, блоков, сценариев, состояний CRM и план скриншотов; публичные статьи еще не написаны |
| Ограничение | Незакоммиченные изменения frontend — только draft-контекст. CRM-аудит зафиксирован на de08556e; перед написанием каждой статьи проверять актуальность поверхности |
Когда начнется написание публичных CRM-статей и привязка к baseline, дату, frontend commit и проверенный range нужно зафиксировать здесь и в отдельном CRM-разделе baseline, по аналогии с задачами.
Каталог поверхностей
Маршруты подтверждены по src/modules/crm/routes.tsx и левой навигации (AppShell.tsx, CrmSectionNav.tsx). Вход в CRM — группа «Клиенты»: пункт «Клиенты» (/clients) виден всегда, пункт «CRM» (/crm/opportunities) — только при правах на модуль.
| ID | Поверхность | Route | Что нужно описать | Статус |
|---|---|---|---|---|
crm.surface.clients | Хаб клиентов | /clients | Список клиентских записей, поиск, вход в рабочие области; импорт/экспорт на хабе отключены («intelligence pending») | covered (статья first-translation-ready) |
crm.surface.client-workspace | Рабочая область клиента | /clients/:clientType/:clientId | Вкладки: сделки, задачи, файлы, документы, экстранет; единая картина по клиенту и контекстные действия | covered (статья first-translation-ready) |
crm.surface.client-project | Рабочая область клиентского проекта | /client-projects/:clientProjectId | Клиентский проект как рабочее пространство, связь с задачами и сделками | covered (статья first-translation-ready) |
crm.surface.accounts | Компании | /crm/accounts, /crm/accounts/:id | Юрлица-контрагенты, карточка компании, создание/редактирование (легаси-поток создания) | covered (статья first-translation-ready) |
crm.surface.contacts | Контакты | /crm/contacts, /crm/contacts/:id | Контактные лица, карточка, экспорт в Excel | covered (статья first-translation-ready) |
crm.surface.legal-entities | Юрлица | /crm/legal-entities | Реквизиты (ИНН/КПП/ОГРН) с маскированием по правам на ПДн | covered (статья first-translation-ready) |
crm.surface.opportunities | Сделки и обращения | /crm/opportunities (/crm редирект) | Доска (Список + Канбан), движок «внимание», создание, карточка сделки, переход по этапам, закрытие | covered (статья first-translation-ready) |
crm.surface.pipelines | Воронки | /crm/pipelines, /crm/pipelines/:id | Список воронок и настройка: поля, этапы, внешние поля, доступ, распределение, автоматизация | covered (статья first-translation-ready) |
crm.surface.dashboard | Дашборд CRM | /crm/dashboard | KPI-карточки, превью воронки, быстрые действия, дела на сегодня (внимание: фильтры сейчас демо-нефункциональны) | covered (статья first-translation-ready) |
crm.surface.automation | Автоматизация CRM | /crm/automation | Роботы (правила после события) и защитные проверки (перед операцией), редактор правил, логи запусков | covered (статья first-translation-ready) |
crm.surface.email-templates | Шаблоны писем | /crm/email-templates | Шаблоны внешних сообщений для действия «Email клиенту» в роботах и процессах | covered (статья first-translation-ready) |
crm.surface.integrations | Интеграции | /crm/integrations | Каналы входящего потока: чат-виджет, Telegram/MAX/WhatsApp, телефония, REST, СБИС/ЭДО | covered (статья first-translation-ready) |
crm.surface.forms | Формы | /crm/integrations/forms, /crm/integrations/forms/:id | Формы сайта, публикация, маршрутизация заявок в воронку, заявки и повтор отправки в CRM | covered (статья first-translation-ready) |
crm.surface.workflows | Бизнес-процессы | /automation/workflows?module=crm | Список процессов, графический редактор, инстансы, ручные задания (общий с задачами маршрут) | covered (статья first-translation-ready) |
/crm/clients* редиректит на /clients*; /crm/workflows* — на /automation/workflows?module=crm.
Каталог блоков
| ID | Блок | Где встречается | Что раскрыть в статье |
|---|---|---|---|
crm.block.client-record | Клиентская запись | clients, accounts, contacts | Кто клиент, контакт, компания, ответственный, ограничения доступа; избегание дублей как практика (клиентского дедупа в UI нет) |
crm.block.workspace-tabs | Вкладки рабочей области | client-workspace | Сделки, задачи, файлы, документы, экстранет; единый контекст и счетчики |
crm.block.deal-card | Карточка сделки | opportunities | Воронка, этап, ответственный, клиент/компания/контакт, сумма, срок, следующий шаг, связи, таймлайн |
crm.block.board-views | Представления доски | opportunities | Список и Канбан (Канбан требует выбранной воронки); группировки и сортировки |
crm.block.attention | Движок «внимание» | opportunities | Требует/просрочено/сегодня/скоро/непрочитано, разрез «Все/Мои», приоритетные плашки |
crm.block.stage-path | Путь по этапам и закрытие | opportunities | Перевод между этапами, терминальные этапы, исход Выиграно/Проиграно, обязательная причина закрытия, read-only после закрытия |
crm.block.deal-create | Создание сделки | opportunities | Поля воронки, панель готовности (Готово/Черновик/Заблокировано), список недостающих обязательных полей |
crm.block.pipeline-fields | Поля и группы воронки | pipelines | Конструктор групп/полей, типы, обязательность, уровень чувствительности (public/internal/PII/secret), видимость на внешних формах |
crm.block.pipeline-stages | Этапы воронки | pipelines | Имя, роль этапа (обычный/ожидание/финал), режим SLA, исход и код, обязательная причина, read-only |
crm.block.pipeline-access | Доступ воронки | pipelines | Права сотрудник/менеджер (наследование/чтение/запись/управление), обязательная причина изменения, права по этапам, экстранет-модель |
crm.block.pipeline-assignments | Распределение | pipelines | Правила маршрутизации: стадия, приоритет, стратегия (round-robin/фикс. список), исполнители |
crm.block.automation-rule | Правило автоматизации | automation, pipelines | Триггер, условия (AND/OR), цепочка действий, ветвление, расписание, политика ошибок, логи |
crm.block.guards | Защитные проверки | automation | Проверки перед операцией: условие, блокирующее сообщение, подсветка поля/секции |
crm.block.external-message | Внешнее сообщение | automation, email-templates | Действие «Email клиенту», выбор ящика и шаблона, источник адресата, токены шаблона |
crm.block.forms-builder | Конструктор формы | forms | Поля, маршрутизация в воронку/этап, маппинг кастомных полей, готовность, публикация, встраивание |
crm.block.forms-submissions | Заявки формы | forms | Статусы, отметка принято/спам, повтор отправки в CRM (ПДн — только demo-данные) |
crm.block.integration-connector | Коннектор интеграции | integrations | Тип канала, параметры, тест, здоровье, включение; виджет — домены, сценарий, форма перед чатом |
crm.block.workflow-graph | Граф процесса | workflows | Узлы (старт/действие/условие/ожидание/задание/цикл/параллельно), валидация, симуляция, запуск |
crm.block.workflow-instance | Инстанс процесса | workflows | Состояние, история узлов, таймлайн, прерывание; ручные задания процесса |
crm.block.permissions | Права и доступ | все поверхности | Видимость модуля, режим root/scoped, права по сущностям, маскирование полей/ПДн, членство, экстранет |
crm.block.errors-limits | Ошибки и лимиты | все поверхности | Нет доступа, не участник, конфликт версий, устаревший контекст, блокировка этапа/статуса, частичный bulk |
Сценарии, которые должны быть покрыты
| Сценарий | Где описывать | Что обязательно объяснить |
|---|---|---|
| Найти или создать клиента без дублей | crm/clients.md | Поиск по имени/телефону/почте/компании до создания; дубли разводят историю и документы |
| Открыть рабочую область клиента | crm/client-workspace.md | Единая картина: сделки, задачи, файлы, документы, экстранет; контекстные действия |
| Создать сделку в правильной воронке | crm/deals.md | Поля воронки, панель готовности, один ответственный, контакт, сумма, срок, следующий шаг |
| Вести сделку по этапам | crm/deals.md | Этап отражает реальное состояние работы; Канбан/Список; движок «внимание» |
| Закрыть сделку | crm/deals.md | Терминальный этап, исход Выиграно/Проиграно, обязательная причина, read-only после закрытия |
| Настроить воронку | crm/pipelines.md | Поля и группы, этапы и их семантика, доступ, распределение, автоматизация |
| Контролировать портфель | crm/control-dashboard.md | Сделки без следующего шага, застрявшие этапы, без ответственного, просрочка; дашборд и разрезы внимания |
| Настроить автоматизацию | crm/automation-workflows.md | Триггер, условия, действия, ветвление, расписание, preview/логи, владелец правила |
| Защитные проверки перед операцией | crm/automation-workflows.md | Что блокируется, при каком условии, какое сообщение видит пользователь |
| Принять входящий поток | crm/forms-intake.md | Формы и интеграции, маршрутизация заявки в воронку, статусы заявок, повтор отправки в CRM |
| Связать CRM с задачами и документами | crm/links-tasks-documents.md | Задача из сделки/клиента (clientRef, клиентский проект), документы и файлы рядом с клиентом |
| Разобрать ошибку или ограничение | crm/errors-and-limits.md | Нет доступа, не участник, конфликт версий, блокировка этапа/статуса, частичный bulk, ошибка интеграции |
План публичных статей (первая волна)
| Статья | Покрытие | Статус |
|---|---|---|
crm.md (обзор, уже есть) | Общий маршрут CRM, локализован во все языки | first-translation-ready |
crm/clients.md | Клиенты, компании, контакты, юрлица, дедуп-практика | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/client-workspace.md | Рабочая область клиента и клиентского проекта, вкладки | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/deals.md | Сделки: создание, доска, этапы, закрытие, внимание | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/pipelines.md | Воронки: поля, этапы, доступ, распределение, автоматизация | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/forms-intake.md | Формы и интеграции: входящий поток, маршрутизация, заявки | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/automation-workflows.md | Роботы, защитные проверки, бизнес-процессы, шаблоны писем | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/links-tasks-documents.md | Связь CRM с задачами, документами, файлами, экстранетом | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/control-dashboard.md | Контроль руководителя, дашборд, разрезы внимания | first-translation-ready (RU + все локали + ar, 08.06.2026) |
crm/errors-and-limits.md | Доступ, права, конфликты, блокировки, частичные операции | first-translation-ready (RU + все локали + ar, 08.06.2026) |
Каждая новая RU-статья требует counterpart во всех опубликованных локалях (en/de/zh/es/fr/kk/ky) для прохождения check:doc-pages, и ar-counterpart по конвенции pending-локали. Локализация — волнами, как по задачам.
План скриншотов
Первая волна CRM-ID заведена в screenshot-manifest.json (8 записей, все локали в статусе planned), в screenshot-capture-plan.json (батч crm-batch-1-core) и в localized-screenshot-readiness.json (волна crm-core). Захват по-прежнему блокирован чистым demo-контуром и фронтовой локализацией части CRM-экранов. Набор первой волны:
crm.clients.list-light-desktop— список клиентов;crm.client-workspace.tabs-light-desktop— рабочая область клиента;crm.deals.kanban-light-desktop— доска сделок (Канбан);crm.deals.create-readiness-light-desktop— создание сделки с панелью готовности;crm.deals.stage-close-light-desktop— закрытие с исходом и причиной;crm.pipelines.fields-light-desktop— конструктор полей воронки;crm.forms.builder-light-desktop— конструктор формы;crm.automation.rule-editor-light-desktop— редактор правила.
Захват блокируется тем же гейтом чистого demo-контура, что и скриншоты задач (см. screenshot-capture-profile-readiness.json), плюс CRM-специфичными утечками локализации (ниже).
Готовность к локализации (риски из аудита)
CRM-аудит выявил поверхности, которые сейчас непригодны для локализованных скриншотов и требуют осторожности в публичном тексте. Дефекты зафиксированы в docs/admin/frontend-issues.md:
- настройки воронки
/crm/pipelines/:idрендерятся по-английски дляde/zh/es/fr/kk/ky/ar(инлайновыйlocalize(ru,en)); - сообщения о правах и блокировках CRM (
ACCESS_REASON_MESSAGES) заданы только дляru/en— на остальных локалях утечка ru/en во всех состояниях ошибок и защитных проверок; - шаблоны писем
/crm/email-templatesбез i18n-неймспейса — фактически только русский на всех локалях; - защитные проверки CRM — те же ru/en, что и в задачах;
- вкладка экстранета в рабочей области — хардкод русских подписей на всех локалях;
- мастер чат-виджета в интеграциях — смешанный русско-английский UI;
- дашборд
/crm/dashboard— фильтры нефункциональны (демо-значения), нельзя обещать работающую фильтрацию в тексте; - инстанс процесса — сырой
JSON.stringifyи нелокализованные технические коды.
Поэтому RU-статьи можно писать сразу, а локализованные скриншоты CRM в большинстве поверхностей — только после исправления локализации во фронте или с осторожным кадрированием.
Приватность скриншотов
CRM показывает максимум чувствительных данных: имена контактов, почты, телефоны, реквизиты юрлиц (ИНН/КПП/ОГРН), суммы, токены интеграций, embed-ключи форм, активационные ссылки экстранета. Снимать только подготовленные demo-данные; поля с уровнем PII/secret и экраны интеграций с секретами не выводить в публичные кадры. Маскирующая подпись «Скрыто по правам» сама по себе безопасна и даже полезна для иллюстрации модели доступа.
Семантический аудит локалей (первая волна, 09.06.2026)
Паритет переводов CRM считается первой волной, а не финалом. Проведены две проверки.
Структурная (количественная): все 9 CRM-страниц имеют одинаковое число заголовков во всех 8 локалях, без усечения текста. Переводы созданы как полные версии с нуля, поэтому пропавших разделов нет.
Смысловая (качественная): read-only аудит самых рисковых локалей (kk, ky, ar) против RU. Общий рейтинг первой волны — acceptable: проза точная и естественная, без утечек языка-источника; главная проблема — сквозной терминологический дрейф (одно понятие переведено по-разному на разных страницах, т.к. страницы переводились независимо без общего глоссария).
Найдено и сделано:
ky— исправлено сразу (correctness): на дашборде конверсия была определена как доля «проигранных» вместо «выигранных» — фактическая ошибка, исправлена; основа «выиграно/проиграно» читалась как «проиграно/проиграно» (стемжеңил-) — исправлена нажеңип алынды/утулдув deals/pipelines/errors; унифицированы терминыкелишим(вместобүтүм) иворонка(вместоpipeline); поправлены ярлыки кросс-ссылок и опечатка.
Нормализация по итогам аудита — выполнено:
kk— сделано: унифицированы «доступ» →қолжетімділік(былқолжетім/қол жеткізу/рұқсат), «воронка» (убран Latinpipeline; заголовок и ярлыки кросс-ссылок страницы воронок выровнены), «защитная проверка» →операция алдындағы тексеру,карта→карточка,контактілер→контакттар.ar— сделано:forms-intake.mdпереведён на общий набор терминов (الفرصة/الطلبвместоصفقة/معاملة), унифицированы «обращение» →الطلبи «защитная проверка» →فحص ما قبل العملية, поправлен ярлык кросс-ссылки на страницу сделок.
Осталось как следующий инкремент:
en/de/es/fr/zh— структурно на паритете и без утечек по чекам; отдельный смысловой аудит не проводился, считать первой волной. Сквозной дрейфzh(выявлен при wave-2) нормализован 10.06.2026: по всем 9 CRM-страницам воронка приведена к管道, сделка — к销售机会(канон из обзораcrm.md); устранены漏斗/销售管道/交易/商机.
Правило на будущее: вести единый CRM-глоссарий ключевых терминов и давать его переводчикам до запуска, чтобы исключить сквозной дрейф (см. также memory translation-leak-lessons).
Definition of Done
Статья по CRM считается готовой, когда:
- раскрывает все видимые блоки соответствующей поверхности;
- объясняет рабочий процесс клиента/сделки, а не только кнопки;
- содержит практики для руководителя, менеджера и администратора процесса;
- описывает пустые, ошибочные, ограниченные и успешные состояния, включая модель доступа и маскирование ПДн;
- показывает, как проверить результат действия;
- не содержит приватных данных, внутренних URL, токенов и backend-деталей;
- использует скриншоты или planned-id в
screenshot-manifest.json; - связана с соседними сценариями (задачи, документы, формы, экстранет);
- имеет counterpart во всех опубликованных локалях и
ar.