CRM — продажи и заявки
Отдельными страницами: Salesbot, рекламные кампании, выезды, наряды и договор, дашборд продаж.
CRM (/admin/crm/) — нативный модуль работы с лидами и
сделками: канбан-воронка с настраиваемыми стадиями, конструктор триггеров-автоматизаций,
источники сделок, визуальный Salesbot, Задачи и Списки. Полностью интегрирован с
биллингом: сделка знает клиента, тариф и адрес, эскалации уходят в
Поддержку, диалоги может подхватывать
AI-агент.
Содержание раздела
- Как устроен модуль
- Организация по умолчанию
- Стадия «Неразобранное» и автораспределение
- Звонки клиента в сделках
- Быстрый старт: от нуля до первого лида
- Воронка сделок (канбан)
- Импорт лидов из CSV
- Конструктор воронок и стадий
- Жизненный цикл сделки
- Правила входа (Stage Gates)
- Триггеры-автоматизации
- Вид карточки и раскладка
- Типы задач воронки
- Поле «Роутер» и Склад
- Галерея «Из шаблона»
- Воронки и организации
- Источники сделок
- Карточка источника
- Источники в каталоге виджетов
- Как подключить форму на сайт
- Единый приём: как заполняется карточка
- Доп. поля сделок
- Задачи
- Задачи из договорённостей в звонке
- Списки (контакты)
- Виджеты-плагины
- Версия, окно виджета и автообновление
- Точки монтирования и стандартные виджеты
- Встроенные карточки «Быстрый доступ»
- Виджет «Рекламные кампании»
- Виджет «Salesbot»
- Виджет «Организации: сводка»
- Мастер настройки
- Карточка сделки (полноэкранный дровер)
- Лента: сообщения, звонки и история сделки
- Вкладка «Подключение»
- Перевод стадии: что произойдёт
- Откуда карточка берёт данные
Десять шагов работы с CRM: дашборд, приём заявок и источники, воронка, карточка сделки и перевод стадии, задачи и календарь, списки, конструктор воронок, рекламные кампании, обзвон и выезды, показатели. Экраны сняты на копии базы с выдуманными клиентами.
Тот же механизм, но нарисованный: узлы можно подсвечивать, связи — разбирать по шагам. Открывается в новой вкладке.
Жизненный цикл сделки
Состояния
Наряд монтажнику
Процесс
Подпись договора на телефоне
Последовательность
Как устроен модуль
Все заявки — из мессенджеров, звонков, форм и почты — проходят через единую точку приёма: дедупликация по телефону, геокодирование адреса, привязка рекламной кампании по UTM, определение организации и воронки. Дальше сделка живёт в канбане, а конструктор автоматизирует рутину: задачи, SMS, документы, теги.
flowchart LR
subgraph CH["Каналы приёма"]
TG["Telegram"]
VK["VK"]
MX["MAX"]
MG["Звонок Mango
(голосовая почта)"]
AI["AI-виджет / AI Voice"]
WF["Веб-формы"]
EM["Email / Поддержка"]
end
SB{"Salesbot
сценарий"}
TG --> SB
VK --> SB
MX --> SB
SB -- "узел «Лид в CRM»" --> IN
SB -- "узел «AI-агент»" --> BOT["AI-агент"]
SB -- "узел «Оператору»" --> SUP["Тикет Поддержки
со сводкой данных"]
MG --> IN
AI --> IN
WF --> IN
EM --> IN
IN["Единая точка приёма:
дедуп · геокод · UTM · организация"]
IN -- "настройки канала" --> SRC[("Источники сделок")]
IN --> D["Сделка в воронке"]
D -- "вход в стадию" --> AUTO["Триггеры-автоматизации
14 действий"]
AUTO --> T["Задачи"]
AUTO --> SMS["SMS / Email / Telegram"]
AUTO --> DOC["PDF-документы"]
AUTO --> TAGS["Теги"]
CRM_PIPELINE_ADMIN_GROUPS (по умолчанию: Директор, Старший менеджер,
root); остальные видят эти разделы в режиме просмотра.Организация по умолчанию
Каждая сделка привязана к организации. Точка приёма определяет её по каскаду: явно указанная организация → организация клиента → по тексту заявки (например, по названию компании) → по каналу-источнику. Если ничего не подошло — сделка привязывается к организации по умолчанию. Сделок «Без организации» в воронке не остаётся: это касается и пропущенных звонков Mango, и нераспознанных голосовых сообщений, у которых нет клиента.
Стадия «Неразобранное» и автораспределение
Пропущенные звонки и нераспознанные голосовые сообщения попадают в первую стадию воронки — «Неразобранное». Такие заявки автоматически распределяются между сэйлсами по очереди (round-robin): каждый новый лид достаётся следующему сотруднику из группы «Сэйлс». Одновременно на сделку ставится задача-звонок «Позвонить клиенту, узнать адрес и заполнить профиль» со сроком «сегодня».
CRM_UNSORTED_AUTODISTRIBUTE (по умолчанию включено). Круг сэйлсов
берётся из групп CRM_SALES_GROUPS (Сэйлс, Старший сэйлс). Если
ответственный у сделки уже назначен — она не перераспределяется.Звонки клиента в сделках
Звонок из телефонии сам привязывается к открытой сделке звонящего. Кроме того, вкладка «Звонки» в карточке клиента при открытии связывает его звонки со сделками, чтобы разговоры были видны в ленте CRM. Как именно — выбирается в CRM → Настройки, строка «Звонки клиента в сделках»:
| Режим | Что происходит |
|---|---|
| Ближайшая, даже закрытая | звонок привязывается к последней сделке, созданной до него, в том числе с отказом или «Подключено». Так было всегда — это значение по умолчанию |
| Только открытая | закрытые сделки не трогаются: в ленте отказанной сделки не появляются звонки клиента в Поддержку, а счётчики звонков CRM не растут за их счёт |
| Не привязывать | новые связи не создаются, уже сделанные остаются |
Рядом — «Авто-транскрибация звонков»: запись звонка по сделке расшифровывается сама, а суть, адрес и договорённость о повторном контакте попадают в сделку. Каждый звонок разбирается один раз: забор звонков из телефонии каждые 20 минут видит его снова, но заново не расшифровывает и не дописывает в обращение Поддержки. Разобрать звонок повторно можно кнопкой «Транскрибировать» в ленте сделки.
Быстрый старт: от нуля до первого лида
Свежая инсталляция превращается в рабочую CRM за пять минут:
- Откройте Мастер настройки — шаг «Воронки» создаст стартовые воронки из пресетов (у новых инсталляций они уже созданы автоматически);
- На шаге «Каналы» включите источники приёма: формы сайта, Telegram/VK, голосовую почту; для формы скопируйте код вставки с токеном;
- Шаг «Команда» — включите распределение лидов по очереди между менеджерами;
- Отправьте тестовую заявку с сайта или добавьте лида через Импорт CSV — сделка появится в первой стадии канбана;
- Откройте сделку кликом — дровер покажет контакт, источник и UTM; двигайте сделку по полосе стадий до «Подключено», монтажнику назначайте наряд.
Воронка сделок (канбан)
URL: /admin/crm/deals/. Колонки — стадии воронки, карточка сделки
показывает то, что настроено в «Виде карточки»: клиента и телефон, адрес, сумму,
цветные теги, чипы источника/тарифа/монтажа, «дней в стадии», аватар ответственного.
Строка управления разделом — одна линия: выбор воронки, фильтры по ответственному и периоду, «Наблюдаю», панель «Фильтры», поиск и действия раздела. Когда места мало, подписи кнопок скрываются и остаются значки, поэтому доска начинается выше, а не после двух рядов управления.
- Чипы-фильтры: Все / Мои / Наблюдаю / Не назнач. — со счётчиками; плюс мультивыбор источников, поиск (имя / телефон в любом формате / адрес / текст примечаний) и диапазон дат с быстрыми периодами.
- Перенос стадии — перетаскиванием или через меню ⋮ (с клавиатуры). Переход проверяют правила входа: например, в «Назначен монтаж» не пустит без монтажника или даты.
- Свёрнутые терминальные стадии — «Подключено» и «Отказ» показывают кнопку «Показать N карточек» (в колонке — топ-60 свежих, счётчики точные по всей базе).
- Наблюдение — кнопка «глаз» в карточке: сделка помечается водяным знаком и собирается фильтром «Наблюдаю».
- Дни в стадии — чип ⏱ появляется с 3-го дня, с 7-го — оранжевый, с 14-го — красный: застой виден без отчётов.
- Взвешенные суммы — под шапкой каждой открытой колонки: «⚖ сумма × вероятность закрытия стадии». Вероятность задаётся в конструкторе (по умолчанию 50%); РОП видит реалистичный прогноз денег в воронке, а не «валовую» сумму.
- Следующий шаг — на карточке видна ближайшая открытая задача с типом и сроком: просроченная — красная, на сегодня — оранжевая. Открытая сделка без задач помечается серым «без задачи» — по amo-принципу такая сделка считается потерянной. Та же плашка — в шапке дровера.
- Без касания — индикатор «N дн. без касания» (заметка/звонок): с 3-го дня оранжевый, с 7-го — красный.
- На проверку — «N на проверку»: сколько данных из обращения AI не записал в сделку сам, а оставил оператору (подробнее). После решения в карточке счётчик уменьшается сразу.
Пример: оператор ищет «Мира 10» → находит заявку по адресу → двойной клик открывает карточку → кнопка «Позвонить» → итог звонка фиксируется прямо в карточке («Дозвонился / Не дозвонился / Перезвонить») и попадает в таймлайн.
Импорт лидов из CSV
Кнопка «Импорт» в тулбаре канбана принимает файл или вставленный текст в
формате Имя;Телефон;Комментарий (разделитель — точка с запятой,
запятая или табуляция; до 500 строк за раз). Каждая строка проходит штатный
приём лидов: дубли отсекаются, применяются теги источника и распределение
ответственного; при выбранной недефолтной воронке лиды попадают в неё. После
импорта — отчёт: создано / дублей / ошибок по строкам.
Конструктор воронок и стадий
URL: /admin/crm/settings/pipelines/ (CRM → Настройки → Воронки и
стадии). Стадии — колонки слева направо, как в воронке: название, цвет, ключ, тип
(В работе / Успех / Проигрыш), перестановка ←→, счётчик сделок. Изменения сразу
применяются в канбане, карточке сделки, на карте и в дашборде.
Вероятность закрытия: у открытых стадий в шапке — поле «⚖ N %», вероятность что сделка с этой стадии дойдёт до подключения. Пусто — 50%; стадии «Успех» и «Проигрыш» фиксированы (100% / 0%). Используется для взвешенных сумм колонок канбана.
Жизненный цикл сделки
stateDiagram-v2
direction LR
[*] --> lead : лид из любого канала
lead --> tariff : тариф выбран
tariff --> install : Stage Gate — монтажник ИЛИ дата
install --> connected : Успех ✅
lead --> refused : Проигрыш ❌
tariff --> refused
install --> refused
connected --> [*]
refused --> [*]
note right of lead
триггеры «При входе в стадию»
срабатывают и для нового лида
end note
note right of install
«застряла N дней» — таймер-триггер
по каждой стадии
end note
Правила входа (Stage Gates)
Блокируют перенос сделки в стадию, пока условие не выполнено. Настраиваются чипами под каждой стадией:
| Правило | Что проверяет |
|---|---|
| Назначен монтажник | у сделки заполнен исполнитель |
| Указана дата монтажа | заполнено поле «Дата монтажа» |
| Монтажник ИЛИ дата | хотя бы одно из двух |
| Есть контакт (телефон) | у клиента указан телефон |
| Подтверждение оператора | перенос требует явного «Да» в диалоге |
| 🔒 Обязательные доп. поля | все доп. поля с признаком «Обязательно для стадии» заполнены (например, паспортные данные перед «Назначен монтаж») |
Триггеры-автоматизации
Кнопка «+ Добавить триггер» под стадией открывает галерею действий (как плитки).
Триггер срабатывает «При входе в стадию» (в том числе при создании лида) или
«Застряла в стадии N дней». В текстах работают плейсхолдеры
{title} {name} {phone} {stage} {days} {id}.
| Действие | Пример использования |
|---|---|
| Создать задачу | вход в «Новый лид» → задача «Перезвонить по «{title}»» на завтра |
| Telegram сотруднику | застряла в «Тариф выбран» 3 дня → пинг ответственному |
| SMS клиенту | вход в «Назначен монтаж» → «Монтаж {stage}, ждите звонка мастера» |
| Письмо клиенту | приветственное письмо с презентацией тарифов |
| Смена стадии | авто-перенос после выполнения условий (без цепной реакции) |
| Сменить ответственного | эскалация на старшего при простое |
| Примечание в сделку | служебная отметка в таймлайн |
| Webhook (POST JSON) | уведомить внешнюю систему |
| Завершить задачи | вход в «Подключено» → закрыть все открытые задачи |
| Создать сделку | после подключения интернета → сделка на видеонаблюдение |
| Изменить поле | проставить доп. поле «Согласие получено» = «да» |
| Сгенерировать документ | вход в «Договор» → PDF-договор ссылкой в таймлайн |
| Редактировать теги | добавить тег «Срочно» при застое |
| Запустить Salesbot | вход в стадию → бот собирает недостающие данные |
Вид карточки и раскладка
- «Вид карточки» — состав мини-карточки канбана: слоты строк (клиент/адрес/бюджет/дата/доп. поля), набор чипов (источник, тариф, монтаж, монтажник, организация, дней в стадии, теги), аватарка ответственного, последнее примечание.
- «Карточка» — раскладка полной карточки сделки по зонам (верх/лево/право) с ограничением блоков по ролям: например, блок «Биллинг» видят только менеджеры.
Типы задач воронки
Слева в редакторе, над источниками, — блок «Типы задач»: что предлагает композер задач в карточке сделки этой воронки. У каждого типа своя подпись и цвет, тумблер выключает тип из предложения новым задачам (у прежних задач тип сохраняется), кнопка «Добавить тип» заводит свой.
Ключ типа общий для всей системы, поэтому календарь, отчёты и старые задачи продолжают его понимать, а подпись и значок берут из настройки воронки. Так монтажной воронке можно оставить «Выезд» и «Замер», а продажной — «Связаться» и «Встреча», не заводя отдельных справочников.
Поле «Роутер» и Склад
Переключатель «Связать поле „Роутер“ со Складом» в настройках CRM превращает текстовое поле сделки в список номенклатуры: категория «Роутеры», режим передачи «Продажа». Рядом выбор, какие роутеры предлагать — только продажу или продажу вместе с арендой; у арендных в списке видна месячная плата и пометка «аренда». Позиции ответственного хранения в список не попадают.
В списке у каждой модели показаны цена и остаток, поэтому менеджер не обещает клиенту то, чего нет на складе. Связь выключена, модуль Склада отключён или роутеры не заведены — поле остаётся обычным текстовым, как раньше.
Галерея «Из шаблона»
Кнопка «Из шаблона» открывает галерею готовых воронок провайдера: подключение интернета, продажи B2B, доп. продажи, возврат ушедших, видеонаблюдение. Пресет создаёт новую воронку со стадиями, правилами входа, триггерами и причинами отказа — существующие воронки и сделки не затрагиваются. Ниже встроенных пресетов подтягиваются рецепты с сервера лицензий — новые шаблоны появляются без обновления биллинга. У новых инсталляций с пустой CRM стартовый набор воронок создаётся автоматически при развёртывании.
Воронки и организации
Воронка принадлежит организации: у каждой компании свои стадии, правила перехода и триггеры. Селектор воронок в канбане показывает только воронки выбранной в шапке компании — если она одна, селектор не показывается вовсе. В режиме «Все организации» перед названием воронки стоит бейдж её компании.
Общая воронка (без организации) остаётся видимой для компании, пока в ней есть её сделки: у сделки часто нет явной воронки, и она держится на совпадении типа. Как только сделки перенесены, общая воронка из списка уходит.
Источники сделок
В панель попадает только то, по чему есть сделки: источники и теги с ненулевым счётчиком, причины отказа — встретившиеся больше одного раза (причину оператор вводит руками, и разовые опечатки занимали целый столбец). Счётчик — бейдж с числом; секции разложены по четырём колонкам, внутренней прокрутки у них нет.
CRM → Настройки → Источники сделок (панель вверху конструктора воронок). Источник — это запись, а не фиксированный канал: на один канал (Mango, AI-виджет, AI Voice, VK, Telegram, MAX, веб-форма, заявка из Поддержки) можно завести несколько источников — например «Лендинг тарифов» и «Форма подключения», или отдельные Telegram-источники для разных брендов. Кнопка «+ Источник» создаёт пользовательский источник.
Карточка источника
- аналитика — лиды за 7 и 30 дней и конверсия в успешные этапы за 30 дней, прямо в карточке;
- воронка и этап входа — лид падает в выбранный этап (пусто = первый этап воронки);
- организация и ящик канала (при модуле мультиорганизации) — пары «канал×ящик»: источник ловит лиды только своего бота/группы/линии, у разных брендов — свои воронки и настройки; без модуля эти поля скрыты;
- «Ещё настройки»: теги лида, распределение ответственного (логины через запятую — назначение по очереди), кампания по умолчанию, окно контроля дублей в часах (повторная заявка с того же телефона дополняет открытую сделку, а не плодит новую);
- токен — у веб-форм и AI-виджетов: заявка с
source_tokenпопадает именно в этот источник со своей воронкой и распределением; - тумблер — выключенный источник не создаёт сделки; шестерёнка — настройки самого канала (линии голосовой почты, мессенджеры Поддержки, AI-хаб).
Все источники идут через единую точку приёма: дедуп, геокод адреса, UTM-кампании и организация работают одинаково везде; у каждой сделки сохраняется ссылка на источник — на ней строится аналитика.
Источники в каталоге виджетов
Виджеты приёма заявок (Mango, AI-виджет, AI Voice, веб-формы) показаны и в каталоге Настройки → Виджеты — секция «Источники лидов»: включение/выключение источника тумблером, переходы в настройки канала и в панель источников. Виджет «Лиды по источникам» на дашборде CRM показывает топ источников с конверсией; при мультиорганизации он учитывает доступные сотруднику организации и помечает источники-пары чипом организации.
Как подключить форму на сайт
Порядок один для любой формы: сначала воронка, потом источник с токеном, потом сама форма. Токен — то, что связывает форму с настройками: воронкой, этапом входа, организацией, тегами, распределением и окном дублей.
| Что подключаем | Куда уходит заявка | Включается настройкой |
|---|---|---|
| Готовый виджет заказа на чужом сайте | /api/crm/lead/ | CRM_PUBLIC_LEAD_ENABLED |
| Своя вёрстка формы | /api/crm/lead/ | CRM_PUBLIC_LEAD_ENABLED |
| Страница конструктора сайтов | /l/submit/ | LANDING_ENABLED |
| AI-виджет (чат и голос) | /api/ai/widget/lead/ | AI_WIDGET_ENABLED |
| Salesbot на сайте | /api/crm/bot/<id>/ | канал «Виджет» у бота |
Виджет заказа. В карточке источника — кнопка «Скопировать код вставки»: сниппет уже содержит ваш токен. Виджет сам подтянет тарифы, соберёт UTM-метки из адреса страницы и отправит заявку:
<script src="адрес вашей установки/static/js/order_widget.js"
data-api="адрес вашей установки"
data-token="ВАШ_ТОКЕН_ИСТОЧНИКА"
data-auto-init></script>
Параметры: data-title, data-subtitle,
data-color, data-button, data-tariff="0"
(скрыть выбор тарифа), data-address="0" (скрыть адрес). Открыть
форму из своей кнопки — SmitOrderWidget.openCentered(). Есть и
готовая страница заказа без встраивания: /order.
Своя форма. Отправьте JSON — обязателен только телефон; остальные поля заполняют карточку (см. единый приём):
fetch('адрес вашей установки/api/crm/lead/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
phone: '+7 917 000-11-22',
name: 'Иванов Иван',
address: 'г. Волгоград, ул. Мира, д. 10',
comment: 'Звонить после 18:00',
source: 'form',
source_token: 'ВАШ_ТОКЕН_ИСТОЧНИКА',
utm: { utm_source: 'yandex', utm_medium: 'cpc', utm_campaign: 'internet-vlg' }
})
})
Ответ — {"ok": true, "deal_id": 12345}. Если сработал контроль
дублей, вернётся номер уже существующей сделки: для посетителя это по-прежнему
«заявка принята», а в CRM вместо второй карточки появится примечание
«Повторная заявка» со всеми новыми данными.
disabled. (2) Выключен тумблер источника — заявка отбрасывается
намеренно. (3) Превышен лимит: 10 заявок с одного IP за 10 минут. Приём никогда
не роняет форму: любая внутренняя ошибка пишется в журнал, а посетитель видит
«спасибо» — поэтому после настройки отправьте тестовую заявку и убедитесь, что
сделка появилась в канбане.Организацию, воронку и этап источник задаёт сам, но заявка может указать их
явно (organization_id, pipeline_id, stage) —
явное указание приоритетнее настроек источника. Полный список полей заявки и
рецепты подключения — во внутренней инструкции «Формы создают лиды в CRM»
(раздел «Разработчикам» → Документация).
Единый приём: как заполняется карточка
Все каналы (веб-форма, AI-виджет чата и голоса, звонки Mango, голосовая почта,
VK/Telegram/MAX, Email, Salesbot, импорт CSV) сходятся в одной функции приёма
crm_intake. Она максимально заполняет карточку лида из того, что есть в
обращении, и делает это одинаково для всех каналов:
- Контакт: имя, телефон (+ нормализация), e-mail (дозаполняется
существующему контакту, если пуст), доп. телефон
phone2(явный или извлечённый из комментария); - Юрлицо по ИНН: достаточно ИНН — название, КПП, ОГРН, юр. адрес и руководитель подтягиваются из DaData; создаётся/находится компания, сделка автоматически становится «юрлицо»;
- Адрес → дом и квартира: геокодирование через DaData →
дом справочника
Homes(для карты) + координаты, квартира — в поле сделки «Квартира». Найденный дом не переименовывается, а по коду КЛАДР дом совпадает только вместе с номером — в одном коде бывает несколько зданий; - Тариф → FK по названию; доп. услуги — постоянный IP и число камер видеонаблюдения как структурные поля сделки (входят в «Итого»), а не текст в комментарии;
- Маркетинг: UTM-метки → авто-привязка рекламной кампании; «как узнали о нас» (referrer);
- Служебное: организация (своя/по умолчанию СмИТ), источник и его воронка/этап, дедуп по телефону, авто-назначение ответственного, теги источника, системное примечание и аудит;
- Проверка распознанного: то, что AI достал из свободного текста, пишется в сделку только при надёжном источнике — иначе становится подсказкой оператору.
flowchart TB
CH["Каналы: веб-форма, AI-виджет, голос и голосовая почта,
звонки Mango, VK, Telegram, MAX, Email, Salesbot, CSV"] --> INTAKE["crm_intake — единая точка приёма"]
INTAKE --> R1
subgraph R1 [" "]
direction LR
C1["Контакт:
имя, телефоны, e-mail"] ~~~ C2["Юрлицо по ИНН
из DaData"] ~~~ C3["Адрес → дом
и координаты"] ~~~ C4["Тариф и доп. услуги
в «Итого»"]
end
R1 --> R2
subgraph R2 [" "]
direction LR
C5["UTM → кампания"] ~~~ C6["Организация, источник,
дедуп, ответственный"] ~~~ C7["Распознанное AI:
подсказка с цитатой"]
end
R2 --> DEAL[("Сделка в CRM,
карточка заполнена")]
style R1 fill:none,stroke:none
style R2 fill:none,stroke:none
Что распознал AI — подсказка, а не значение
Часть полей заявки берётся не из формы, а из свободного текста: адрес — из расшифровки звонка или голосового сообщения, имя и тариф — из письма. Распознавание ошибается, а ошибка в поле выглядит как обычное значение, и проверять его никто не станет. Поэтому действует правило: значение пишется в сделку, только когда источник надёжный, остальное становится подсказкой оператору с цитатой.
| Что есть | Что происходит |
|---|---|
| Дом найден точно и уже есть в справочнике адресов | адрес записывается в сделку |
| Дом найден точно, но в справочнике его нет | адрес записывается с пометкой «проверьте», чтобы заявка сразу была на карте |
| Адрес распознан только до улицы или города | подсказка, поле не трогается |
| Имя или тариф, которых нет в тексте дословно | подсказка |
| Телефон есть у нескольких клиентов или имя в заявке другое | клиент не привязывается, подсказка на каждого кандидата |
| Цитаты из источника нет | ничего не сохраняется |
В карточке сделки подсказки собраны в блок «Проверьте данные из обращения»: поле, значение, откуда взято и когда, дословная цитата. «Принять» записывает значение, «Отклонить» убирает подсказку; адрес с пометкой «проверьте» при отказе снимается со сделки, если оператор его не менял. В канбане у такой сделки видно «N на проверку». Подсказки старше 14 дней в карточке не показываются.
flowchart TB
SRC["Звонок, голосовое, письмо"] --> AI["AI извлекает поля"]
AI --> Q{"Источник надёжный?"}
Q -->|"дом найден точно"| W["Записано в сделку"]
Q -->|"до улицы, догадка,
несколько клиентов"| S["Подсказка с цитатой"]
Q -->|"цитаты нет"| X["Не сохраняется"]
S --> OP{"Оператор"}
OP -->|"Принять"| W
OP -->|"Отклонить"| D["Подсказка закрыта"]
Доп. поля сделок
URL: /admin/crm/userfields/. Панель групп слева (как разделы анкеты),
поля выбранной группы справа — с порядком ↑↓ и добавлением «+ поле в группу».
| Свойство поля | Зачем |
|---|---|
| Тип | Текст / Число / Дата / Список (варианты) / Да-Нет / Многострочный |
| Группа | секция в карточке сделки: «Договор — физ. лицо», «UTM и рекламные метки»… |
| Тип клиента | физ / юр — поле показывается только своему сегменту |
| Воронка и организация | пусто = все; иначе поле видно только сделкам этой воронки/организации |
| 🔒 Обязательно для стадии | Stage Gate: без заполнения сделка не перейдёт в указанную (и последующие) стадию |
| В списке / в превью | колонка в «Списках» / показ в карточке-модалке |
Пример: группа «Договор — физ. лицо» содержит паспортные поля с 🔒 «Назначен монтаж» — менеджер физически не сможет назначить монтаж, пока не заполнит паспорт; для юр. лиц действует своя группа с ИНН/КПП.
Задачи
Задачи, «Списки», кампании, наряды и Salesbot устроены одинаково: сверху название раздела со справкой и главной кнопкой, ниже одна строка фильтров — срезы слева, поиск и выбор колонок справа, дальше таблица до краёв карточки. На телефоне поиск и «+» стоят в одну строку, фильтры — парами по 44 px, а строки таблицы превращаются в карточки с подписями.
URL: /admin/crm/tasks/ (CRM → Задачи). Единый список задач по всем
сделкам:
- Единая панель фильтров (обновлена в 2026-07): статус — селект (Активные / Сегодня / Просроченные 🔥 / Выполненные) со счётчиками; селект по типу задачи; SmitResponsibleSelect (аватар + Фамилия И.О.) вместо «Мои / Все» — клик по фамилии в строке подставляет сотрудника в фильтр; SmitDateRange (пресеты + календарь) вместо День / Неделя / Месяц; поиск по тексту и названию сделки. Счётчик «N задач» скрыт. Бесконечная прокрутка.
- «+ Задача» — живой поиск сделки, срок (по умолчанию завтра 9:00), тип (Звонок / Встреча / Обследование / Монтаж / Перезвонить), ответственный.
- Выполнение с результатом — кнопка ✓ спрашивает «чем закончилось»; результат сохраняется в задаче и уходит системным примечанием в сделку.
Пример потока: триггер «Новый лид → Создать задачу „Перезвонить“» ставит задачу автоматически; утром менеджер открывает чип «Сегодня», обзванивает список, закрывает задачи с результатами — вся история остаётся в таймлайнах сделок.
Задачи из договорённостей в звонке
Если в звонке по сделке клиент сам назвал срок — «перезвоните после 15-го», «в октябре вернусь, тогда и подключим», — разбор звонка ставит задачу ответственному на этот день к 10:00. В задаче остаются слова клиента: «из звонка: «…»». Срок, который назвал оператор, и фраза, которой нет в расшифровке, задачу не создают.
Когда срок наступает, задача сама проходит перепроверку (раз в час):
- сделка уже закрыта — подключена или отказ — задача закрывается с итогом «перезванивать не нужно»;
- после договорённости по сделке ничего не происходило — итог «договорённость в силе»;
- были звонки, примечания, смена стадии — AI пишет одну-две фразы: в силе ли договорённость и что учесть перед звонком.
Итог виден в карточке задачи и системным примечанием в ленте. Клиенту перепроверка ничего
не отправляет — звонит оператор. Если AI не ответил, проход повторяется; после трёх попыток
итог пишется списком событий. Выключатель — настройка CRM_AI_FOLLOWUPS, ручной
проход — manage.py crm_followup_recheck --run.
flowchart TB
C["Разбор звонка:
клиент назвал срок"] --> T["Задача на этот день
со словами клиента"]
T --> DUE["Срок наступил"]
DUE --> Q{"Сделка закрыта?"}
Q -->|"да"| CL["Задача закрыта:
звонить не нужно"]
Q -->|"нет"| F{"Что было после
договорённости?"}
F -->|"ничего"| K1["Итог: договорённость
в силе"]
F -->|"звонки, примечания"| K2["Итог от AI:
что учесть перед звонком"]
Списки (контакты)
В шапке — сколько контактов показано из всех подходящих («показано 50 из 3 708»): таблица догружается при прокрутке, и число сразу говорит, сколько ещё впереди.
URL: /admin/crm/contacts/ (CRM → Списки). Все клиенты CRM одной
таблицей:
- «Настройки таблицы» — плитки-колонки: 11 стандартных (наименование, телефон, email, источник, адрес, клиент, компания, сделок, ответственный, организация, создан) + все доп. поля. Выбор запоминается в браузере.
- Inline-редактор — двойной клик или Enter на ячейке (при наведении появляется карандаш): правка имени/телефона/email/компании и доп. полей без открытия карточки. Телефон нормализуется автоматически.
- Селект-фильтр со счётчиками (обновлён в 2026-07): вместо чипов — единый селект «Все / Клиент / Без клиента / Со сделками» с числами напротив каждого пункта. Организация показывается единым бейджем OrgBadge (favicon + акцентный цвет). Строки таблицы выровнены по верхнему краю; при наведении на бейдж «Сделок» — тултип с названиями сделок.
- Массовые действия (ответственный, сделка, удаление); клик по строке — карточка контакта со сделками и биллинг-данными привязанного клиента. Контактов «без организации» нет — новым по умолчанию присваивается организация по умолчанию (СмИТ).
Пример: маркетологу нужен срез по UTM — включает колонки «UTM source» и «UTM campaign» в настройках таблицы и выгружает картину по источникам без отчётов.
Виджеты-плагины
URL: /admin/settings/widgets/ (Настройки → Виджеты). Каталог
загружаемых расширений: новый виджет публикуется на сервере лицензий и появляется
у всех инсталляций без обновления биллинга, с фильтрацией по тарифному плану.
sequenceDiagram
participant A as Администратор СмИТ
participant L as Сервер лицензий
participant B as Биллинг клиента
participant P as Страница (дашборд CRM)
A->>L: загрузка zip-пакета виджета
B->>L: каталог по лицензионному ключу
L-->>B: список виджетов тарифа (+SHA-256)
B->>L: скачать пакет
B->>B: сверка SHA-256, распаковка
только фронтовых файлов
P->>B: страница с точкой монтирования
B-->>P: widget.js + контейнер
P->>P: SmitWidget.register() → рендер
Пакет — zip с манифестом и фронтовым кодом (серверный код в v1 не исполняется):
{
"slug": "funnel-summary",
"name": "Сводка воронки",
"version": "1.0.0",
"entry": "widget.js",
"description": "Счётчики сделок по стадиям — прямо на дашборде CRM."
}
// widget.js — контейнер уже в DOM, settings — из настроек установки
window.SmitWidget.register('funnel-summary', function (el, settings) {
fetch('/admin/crm/deals/json/?type=' + (settings.type || 'internet'))
.then(r => r.json())
.then(d => { el.innerHTML = /* счётчики по d.counts */; });
});
На плитке каталога: версия, размер, точка монтирования, кнопки Установить / Обновить / Удалить и тумблер вкл/выкл. Первая точка монтирования — дашборд CRM (виджет «Сводка воронки»), далее — карточка сделки и карточка клиента.
Версия, окно виджета и автообновление
Плитка виджета показывает бейдж версии справа от названия (зелёный — установлен и включён, жёлтый — доступно обновление, серый — доступен в каталоге). Клик по названию или обложке открывает окно виджета — по структуре как у окна модуля: сводка в две колонки (слева обложка и «Разработчик», справа категория и компактное описание), вкладки «Возможности» / «Как это работает» / «Скриншоты» / «История версий» и блок «Зависит от модуля» (данные — из расширенного каталога сервера лицензий). Отдельной кнопки «Подробнее» больше нет.
Обновление по умолчанию ручное: у виджета с более новой версией в
каталоге появляется кнопка «Обновить». Тумблер
«Автообновление виджетов» в тулбаре
(WIDGET_AUTO_UPDATE_ENABLED, по умолчанию OFF) включает ежесуточное
авто-обновление всех установленных виджетов. Аналогичный тумблер
«Автообновление модулей» — на /admin/settings/modules/
(MODULE_AUTO_UPDATE_ENABLED), там же версия модуля показана бейджем рядом с
названием. Полное описание политики версионности и автообновления —
в разделе СОРМ → Версионность и обновления.
Точки монтирования и стандартные виджеты
- Дашборд CRM — «Сводка воронки»: счётчики сделок по стадиям;
- Карточка сделки — «Рядом с адресом»: сколько клиентов уже подключено в доме сделки и в радиусе 300 м — аргумент для продажи;
- Карточка клиента — «CRM и Поддержка клиента»: его сделки и обращения одним блоком; виджеты этой точки встраиваются карточками прямо в грид «Быстрый доступ»;
- Дашборд биллинга — «Лицензия и модули»: тариф с обложкой, статус и срок лицензии, версия сборки, включённые модули.
Встроенные карточки «Быстрый доступ»
Шесть карточек в карточке клиента (Аудит, Услуги и бонусы, Операции, Обращения, Сообщения, Сессии) — тоже виджеты: в каталоге они показаны в секции «Встроенные карточки» и включаются/выключаются тумблером для всех сотрудников сразу. Удалить встроенную карточку нельзя — только выключить; персональная видимость из настроек профиля продолжает действовать поверх.
Виджет «Рекламные кампании»
Точка монтирования — дашборд CRM, стоит сразу под воронкой по организациям. За 30 дней: топ-3 кампании по заявкам, сделки, выручка и окупаемость, снизу итог по всем. Суммы коротко («403,5К»), точное значение — в подсказке. ROI считается только у кампаний с заявками. Клик по названию открывает дашборд кампании.
Виджет «Salesbot»
Отвечает на один вопрос — работают боты или молчат: диалоги за 30 дней, сколько дошло до заявки и какая доля. У каждого бота отметка «включён». Ссылка ведёт в конструктор сценариев.
Виджет «Организации: сводка»
Точка монтирования — дашборд CRM. Показывает, как распределены сделки между
компаниями: всего, новые за 30 дней, в работе, выиграно и конверсия. Каждая
строка помечена единым бейджем организации. При одной организации виджет
скрывается сам. Устанавливается из каталога на странице
/admin/settings/widgets/.
Мастер настройки
URL: /admin/crm/setup/ (CRM → Настройки → Мастер настройки).
Пять шагов приводят CRM в боевое состояние: воронки из пресетов, каналы приёма
заявок, команда и распределение лидов, AI-бот Поддержки, рекомендованные
виджеты — каждый шаг применяется одной кнопкой и пишет только в существующие
настройки. Чеклист «Готовность CRM» из шести живых проверок (есть воронка,
работает источник, настроено распределение, включён бот, пришёл свежий лид,
установлен виджет) обновляется после каждого шага.
Карточка сделки (полноэкранный дровер)
Под именем клиента — две служебные строки, по которым состояние сделки видно без перехода по вкладкам: источник заявки с датой («Чат на сайте · 15.09.2026») и последнее касание со счётчиками («последнее касание 15.09.2026 · 3 звонка · 2 примечания»). Если касаний не было — так и написано: это данные, а не пропуск.
Лента: сообщения, звонки и история сделки
В ленту сведены примечания, звонки с расшифровкой, задачи и история сделки: «Сделка создана», «Стадия: Неразобранное → Назначен монтаж», «Ответственный: …», «Документ: …». Источник истории — аудит CRM, ключи стадий переводятся подписями воронки. Подряд идущие одинаковые события одного автора (шесть правок полей за минуту при заполнении формы) сворачиваются в одну строку со счётчиком, чтобы лента оставалась читаемой.
Срезы над лентой — «Все», «Примечания», «Звонки», «События»: последний оставляет только системные строки, когда нужно понять, кто и когда двигал сделку. Поиск по ленте ищет и по тексту событий.
Вкладка «Подключение»
«Монтаж назначен» — одно поле с датой и временем. Быстрые кнопки «Сегодня / Завтра / Послезавтра / Через неделю» ставят дату, время выбирается рядом; дата уходит в поле монтажа, время — в окно монтажа, поэтому наряд монтажника и календарь получают точный интервал. Если монтажник в это время уже занят другой сделкой, карточка спросит подтверждение и покажет, кем занят слот, — раньше такой ответ сервера терялся молча.
«Квартира» — отдельное поле рядом с адресом: справочник адресов хранит только дома. Квартира видна в шапке карточки («…, д 61, кв 12») и в данных для договора, подставляется в окно «Создать абонента». Заявки с сайта, из звонков и писем заполняют её сами — из адреса заявки; при создании сделки и лида вручную квартира берётся из выбранной подсказки адреса.
«Роутер» выбирается из номенклатуры Склада: категория «Роутеры», режим передачи «Продажа» (при желании — и «Аренда»). В списке сразу видны цена и остаток, поэтому менеджер не обещает клиенту модель, которой нет. Пока модуль Склада выключен или роутеры не заведены, поле остаётся обычным текстовым, и связь со Складом ничего не ломает.
Перевод стадии: что произойдёт
Клик по стадии — и на полосе карточки, и в окне «Перевести в стадию» — сначала показывает, что именно изменится: сама смена стадии, автоматизации (SMS клиенту, задача монтажнику, письмо, webhook), попадание монтажа в календарь. Если перевод невозможен, вместо этого выводится список того, что нужно заполнить.
flowchart TD
C["Клик по стадии"] --> P["Предпросмотр на сервере
(ничего не меняет)"]
P --> G{"Правила входа
в стадию"}
G -- "не хватает данных" --> STOP["Список незаполненного:
монтажник, дата, паспорт, договор"]
G -- "правила пройдены" --> W["Окно подтверждения:
стадия A → B, автоматизации,
календарь монтажа"]
W -- "Отмена" --> X["Ничего не изменилось"]
W -- "Перевести" --> S["Стадия сохранена"]
S --> A["Автоматизации стадии"]
S --> H["Запись в историю сделки
(видна в ленте)"]
A --> T["Задача"]
A --> M["SMS / письмо / Telegram"]
A --> D["Документ"]
Стадии в боковой панели лида
Так же работает боковая панель лида, которая открывается с дашборда, карты, календаря, задач и списков.
- При включённой «Цветовой маркировке статусов» (Настройки CRM → «Отображение воронки») бейдж в шапке и текущая стадия окрашены цветом стадии из воронки самой сделки, у остальных стадий — цветная точка. Без маркировки бейдж окрашен по смыслу: подключено — зелёный, отказ — красный.
- Стадии, куда сделку сейчас не пустят правила воронки или обязательные поля, — полупрозрачные; подсказка и нажатие объясняют, чего не хватает.
- Перевод всегда идёт через окно подтверждения со списком последствий; причину отказа спрашивает выбор из списка правила, ошибки приходят уведомлением. У окна «Нельзя перевести» одна кнопка — «Понятно».
Откуда карточка берёт данные
flowchart LR
AUD[("Аудит CRM")] --> FEED["Лента: история сделки"]
NOTES[("Примечания и звонки")] --> FEED
NOTES --> TOUCH["Строка последнего касания"]
SRC[("Источник заявки")] --> HEAD["Шапка карточки"]
STOCK[("Склад: роутеры
категория «Роутеры», режим «Продажа»")] --> CONN["Вкладка «Подключение»"]
TAR[("Тарифы с флагом CRM")] --> CONN
ZONE[("Зоны покрытия")] --> NEAR["Виджет «Рядом с адресом»"]
USERS[("Клиенты в доме")] --> NEAR
Виджет «Рядом с адресом» отвечает по-разному на «нет данных» и «нет подключений»: у дома без координат радиус не считается и так и написано, а ноль подключений сопровождается пояснением. Там же — зона покрытия с технологией и время, когда расчёт выполнен.
Одинарный клик по карточке канбана открывает сделку дровером на весь экран. Слева — «паспорт сделки»: полоса-прогресс стадий (клик по сегменту переводит сделку), контакт с телефонами и адресом, параметры, клиент биллинга, обращения в Поддержку, мини-карта адреса и виджеты точки «Карточка сделки». Справа — лента: суть заявки, активность, задачи и композер внизу.
Вкладки левой панели:
- Основное — контакт (основной и доп. телефон, e-mail, кнопки «Наблюдать» / «Позвонить»), параметры сделки, связь с биллингом;
- Подключение — выбор тарифа, поле «Стоимость подключения» (по умолчанию 12 000 ₽), месячная стоимость тарифа и «Итого». Общая сумма сделки считается как стоимость подключения + месячная плата тарифа и обновляется прямо при вводе;
- Статистика — источник и дата, «дней в работе», счётчики звонков/задач/примечаний, история стадий, ответы Salesbot и все UTM-метки заявки;
- Доп. поля — группы кастомных полей со счётчиком заполненности;
- Настроить — включение блоков карточки для всей воронки; кнопка «+» добавляет новую группу полей, не выходя из сделки.
Под контактом — блок «Проверьте данные из обращения» (что туда попадает) и ссылка «Не связываться…»: запрет на рекламу, звонки робота или на всё сразу для телефона сделки, клиента и контакта. Запрет действует во всех каналах — подробнее в разделе «Стоп-лист».
Задачи в ленте — карточками: видно, до какого времени и для
кого поставлена задача; поле «Добавить результат» и кнопку «Выполнить» видит
только ответственный. Задача, поставленная по словам клиента в звонке, показывает цитату
и итог перепроверки (подробнее). Новая задача из
композера требует дату/время и ответственного. Дубли: если у клиента есть другие открытые
сделки с тем же телефоном, над лентой появляется плашка «Возможные дубли» —
кнопка «Объединить» переносит заметки, задачи, звонки и теги в текущую сделку
(id: дубль удаляется, в сделке остаётся системная
заметка). Прямые ссылки вида /admin/crm/deals/<id>/
автоматически открывают канбан с этим дровером.