Схемы Что нового

Поддержка — модуль техподдержки клиентов

Поддержка (/admin/support/) — нативный модуль техподдержки внутри СмИТ Биллинга: единое окно приёма обращений из всех каналов (email, VK, Telegram, MAX, пропущенные звонки, веб-виджет), карточка тикета со связью с клиентом и CRM, AI-бот с автоответами, база знаний, аналитика. Клиент привязывается к тикету напрямую (данные хранятся в базе биллинга) — оператор видит баланс, тариф и статус без каких-либо внешних интеграций.

Модуль «Поддержка» — на сайте продукта
Содержание страницы

Обзор модуля

Обучающее видео 2:30

Очередь «Входящие» и её срезы, панель обращения, ответ клиенту и заметка, запись звонка и история действий в ленте, полная карточка, журнал звонков на линию и дашборд смены — и три правила, на которых держится очередь.

1920×1080 с озвучкой Скачать

Модуль доступен в верхнем меню биллинга — пункт «Поддержка». Левый сайдбар раздела: Дашборд · Входящие · Мои тикеты · Не назначены · Назначенные · Отмеченные · Отслеживаемые · Черновики · Закрытые · Спам · Корзина · База знаний · Настройки.

flowchart TD
    EM["Email (IMAP)
ask@ · connect@ · call@"] --> IN VK["VK (сообщество)"] --> IN TG["Telegram (бот)"] --> IN MAX["MAX-мессенджер"] --> IN VM["Голосовая почта
(пропущенные звонки)"] --> IN WG["Веб-виджет и AI-виджет"] --> IN IN["Единая точка приёма
ingest_message()"] --> FLT{"Фильтры шума"} FLT -- "bounce / автоответ
уведомление провайдера" --> DROP["Отброшено —
тикет НЕ создаётся"] FLT -- "обращение" --> CONV["Тикет
+ привязка клиента"] CONV --> ORG["Маршрутизация по организации"] CONV --> AI{"AI-бот
включён?"} AI -- "отвечает сам" --> REPLY["Автоответ клиенту"] AI -- "эскалация" --> OP["Оператор: Входящие"] REPLY -.->|"ESCALATE_TO_HUMAN"| OP OP --> DONE["Ответ · статус · SLA
· учёт времени"]

Карта раздела

- Поддержка
  - Каналы приёма
    - Email IMAP
    - Telegram
    - VK
    - MAX
    - Голосовая почта
    - Веб-виджет и AI
  - Очередь
    - Входящие и сохранённые виды
    - Не назначены · Мои
    - Спам · Корзина
    - Карточки на телефоне
  - Карточка тикета
    - Переписка и вложения
    - Шаблонные ответы
    - AI-бот
    - Запись звонка и суть
    - SLA и учёт времени
  - Контекст биллинга
    - Клиент и договор
    - Баланс · тариф · статус
    - Прошлые обращения
  - Настройки
    - Ящики и права
    - Мессенджеры
    - Теги и доп. поля
    - Вложения только в GCS
    - Фильтры шума
  - Мульти-орг
    - Ящик = организация
    - Изоляция тикетов
Входящие: срезы «Все открытые · Без ответа · Клиент ответил», поиск и фильтры, строки с телефоном, адресом, тегами и организацией, колонка «Ожидает» с меткой SLA
Входящие: срезы «Все открытые · Без ответа · Клиент ответил», поиск и фильтры, строки с телефоном, адресом, тегами и организацией, колонка «Ожидает» с меткой SLA

Ключевые принципы:

Модуль «Поддержка» — единое окно техподдержки

Поддержка (/admin/support/) — нативный модуль техподдержки внутри биллинга: приём обращений из всех каналов, карточка тикета со связью с клиентом и CRM, AI-ответы, база знаний, аналитика. Весь приём и обработка обращений — внутри СмИТ Биллинг.

i-иконка рядом с заголовком раздела Поддержки и в модалках тикета ведёт прямо сюда.

Приём обращений — единая точка

Все каналы (email IMAP, VK, Telegram, MAX, голосовая почта Mango, веб-виджет) сходятся в единую функцию приёма, создающую или дополняющую тикет; AI-бот может ответить автоматически или эскалировать на оператора.

flowchart TD
    EM["Email (IMAP)"] --> IN
    VK["VK"] --> IN
    TG["Telegram (polling)"] --> IN
    MAX["MAX (WS)"] --> IN
    VM["Голосовая почта Mango"] --> IN
    WG["Веб-виджет"] --> IN
    IN["ingest_message()"] --> CONV["Тикет (SupportConversation)"]
    CONV --> AI{"AI-бот доступен?"}
    AI -- "да" --> REPLY["Автоответ"]
    AI -- "эскалация/нет" --> OP["Оператор: Входящие"]
    REPLY -. "ESCALATE_TO_HUMAN" .-> OP

Входящие: список тикетов, поиск

Срезы очереди («Все открытые · Без ответа · Клиент ответил»), сохранённые виды, фильтры (приоритет, категория, период, ящик) и умный поиск. Подробно — Поддержка → Входящие.

Поддержка — Входящие: срезы, фильтры, строки с телефоном, адресом, тегами и меткой SLA
Поддержка — Входящие: срезы, фильтры, строки с телефоном, адресом, тегами и меткой SLA

Поиск по тексту переписки. Ищет по теме, тексту сообщений, ФИО/договору клиента, адресу, телефону (любой формат) и №. Если совпадение не в теме — в строке тикета показывается сниппет-выдержка из тела сообщения с жёлтой подсветкой, чтобы оператор видел, почему тикет найден.

Поиск «роутер»: совпадение в переписке показано выдержкой с подсветкой найденного слова
Поиск «роутер»: совпадение в переписке показано выдержкой с подсветкой найденного слова

Карточка тикета и сайдбар

Слева — тред сообщений и редактор ответа (шаблоны saved-replies, AI-«Нейроответ»). Справа — сайдбар: Ответственный + Приоритет, Категория, Биллинг (аватар/баланс/тариф/статус/соцсети), SLA-таймер «Ждёт ответа», Прошлые обращения клиента, Теги, Доп. поля, Логи времени.

Карточка тикета: переписка и поле ответа, справа — ответственный, приоритет, SLA, AI-сводка и данные клиента из биллинга
Карточка тикета: переписка и поле ответа, справа — ответственный, приоритет, SLA, AI-сводка и данные клиента из биллинга

Выезжающая панель тикета

Клик по тикету из «Входящих» выдвигает панель быстрого просмотра и ответа без ухода со списка. В панели: метки отдела, статуса и канала, клиент с балансом, запись звонка с кнопкой «Не тот звонок», приоритет одним нажатием, лента переписки со строками истории (кто назначил, кто сменил статус), переключатель «Ответ клиенту · Заметка» и подтверждение перед закрытием обращения. Подробно — Поддержка → Выезжающая панель.

Выезжающая панель тикета: детали обращения, лента с историей действий, ответственный и поле ответа
Выезжающая панель тикета: детали обращения, лента с историей действий, ответственный и поле ответа

Мобильная адаптация

На узком экране в карточке тикета над записью звонка и перепиской — свёрнутая шапка клиента (имя, баланс, статус); разворот показывает SLA, договор, тариф, телефон и кнопки перехода. В выезжающей панели детали обращения свёрнуты в строку «Детали», а переписке и полю ответа достаётся весь экран.

Карточка тикета на телефоне: шапка, клиент с балансом и переписка
Карточка тикета на телефоне: шапка, клиент с балансом и переписка
Выезжающая панель на телефоне: «Детали» свёрнуты, лента с историей, «Ответ клиенту · Заметка»
Выезжающая панель на телефоне: «Детали» свёрнуты, лента с историей, «Ответ клиенту · Заметка»

Вложения: политика, оптимизация, архив в GCS

Категории обращений и «Перезвонить»

Категории настраиваются пер-ящик (у каждой — имя и иконка), выбираются в сайдбаре тикета и в модалке создания; фильтр по категории — в списке. Отметка «Перезвонить» на тикете создаёт заметку (с необязательным комментарием) и поднимает тикет в блок «требующие внимания».

Тикеты, требующие внимания + кнопка «следующий»

Под формой ответа — до 3 карточек тикетов, требующих внимания оператора («Перезвонить» и «Клиент ждёт N мин»); в шапке — кнопка перехода к следующему такому тикету. Включается настройкой.

Прочие возможности карточки

Настройки, база знаний, аналитика

Настройки Поддержки — вкладки: Общие, Внутренние, Авто-назначение ответственного и наблюдателя, Группы и права, Оповещения, Системный фильтр; почта и каналы настраиваются пер-ящик. Рядом в разделе: База знаний, Аналитика, Мессенджеры, Теги; журнал голосовой почты — в Отчётах.

Общие настройки Поддержки: СМС-идентификация, SLA-политики, открытие тикета панелью, авто-транскрибация звонков и политика вложений
Общие настройки Поддержки: СМС-идентификация, SLA-политики, открытие тикета панелью, авто-транскрибация звонков и политика вложений

Каналы приёма обращений

КаналКак работаетКуда попадает
EmailIMAP-приём с ящиков поддержки (каждый ящик — свои IMAP+SMTP настройки); ответ оператора уходит письмомТикет в ящик-получатель
VKСообщения в сообщество ВКонтакте; идентификация клиента по VK ID или коду из SMSТикет (канал VK)
TelegramКлиентский бот; long-polling демон (работает из РФ без вебхуков)Тикет (канал Telegram)
MAXПриём через пользовательскую сессию мессенджера MAXТикет (канал MAX)
ЗвонкиПропущенные звонки от АТС → письмо с записью → авто-разбор (голосовая почта)Тикет / лид CRM / мусор
Веб-виджетAI-виджет на сайте и форма заказа; диалог с AI, эскалация операторуТикет или лид CRM
ВручнуюКнопка «Новый тикет» во Входящих: поиск клиента, контакты и ящик подставляются по его организации, вложения-скриншотыТикет

SMS-идентификация внешних каналов. Когда клиент пишет из VK/Telegram/MAX/виджета, AI-бот подтверждает личность кодом из SMS (номер → код → доступ к данным договора). Идентификация «по номеру договора» запрещена — это защита персональных данных. Управляется настройкой на странице Мессенджеры.

Варианты ответа в MAX — цифрами. В MAX кнопок нет, поэтому бот присылает варианты пронумерованным списком («1. Я хочу подключиться», «2. Я ваш клиент») с подсказкой «Ответьте цифрой». Ответ «1» или «2.» бот понимает как выбранный вариант; можно написать и своими словами. Показанные варианты бот помнит 30 минут, а после сообщения без вариантов цифры снова считаются обычным текстом. У сценариев Salesbot своя нумерация, она работает как раньше. В Telegram и ВКонтакте варианты — по-прежнему кнопками.

Входящие: список тикетов

Главный экран оператора: KPI-карточки (Не назначены / Мои / Активные / Ожидают / Закрыты), статусные папки в левом сайдбаре, таблица тикетов с превью, тегами и бейджами.

Поддержка — Входящие: срезы очереди, фильтры и список тикетов
Поддержка — Входящие: срезы очереди, фильтры и список тикетов

Todo-секции «Разобрать» и отложенные

Полоса секций по принципу «что делать», а не «какой статус»: Нужен первый ответ (нет ни одного ответа оператора — риск SLA) · Ждёт нашего ответа (клиент написал после нас) · Ждёт клиента · Отложенные. Секции со срочной работой подсвечиваются янтарным, счётчики точные.

Отложить (snooze) — в карточке тикета: 1 ч / 3 ч / завтра 9:00 / понедельник / своя дата. Отложенный тикет скрыт из «Входящих» до срока, затем «просыпается» автоматически: уведомление ответственному в ленту и личный Telegram.

SLA-чипы

При настроенных SLA-политиках строка тикета получает метку SLA в колонке «Ожидает»: красная — просрочен, жёлтая — под угрозой (прошло больше 80% цели), серая — выполнен с опозданием или пауза (статус «Ожидает»). Подробный статус целей — блоком в карточке тикета.

Умный поиск

Одно поле ищет по: теме · тексту переписки · ФИО и договору клиента · адресу · телефону в любом формате (нормализуется до цифр) · номеру тикета. Если совпадение не в теме, строка тикета показывает сниппет — выдержку из сообщения с жёлтой подсветкой найденного.

Фильтры и массовые действия

Обновления инбокса (2026-08):

Дашборд Поддержки

URL: /admin/support/dashboard/. Сводка очереди в стиле CRM-дашборда. Мультиорг-осведомлён: режим «Все» показывает сводные показатели + разбивку по организациям; при выбранной организации — строго её тикеты.

Дашборд Поддержки: период, показатели с дельтами, медианное время первого ответа и решения, доля ответов в срок, разбивка по организациям
Дашборд Поддержки: период, показатели с дельтами, медианное время первого ответа и решения, доля ответов в срок, разбивка по организациям

Выпуск 3.7.0: две колонки без пустот

Дашборд Поддержки: период в шапке, показатели карточками, две независимые колонки блоков
Дашборд Поддержки в 3.7.0

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

Период и дельты

Как считаются метрики за выбранный период:

flowchart LR
  P["Период
(SmitDateRange, 30 дн.)"] --> M["Метрики за период"] T[("Тикеты
+ сообщения")] --> M M --> C1["Создано ▲▼"] M --> C2["Закрыто ▲▼"] M --> FR["Медиана
1-го ответа"] M --> RS["Медиана
решения"] M --> SLA["SLA:
% в срок ≤N ч"] T --> HM["Тепловая карта
часы × дни"] T --> OP["Топ операторов
+ время ответа/решения"] T --> RC["Последние
открытые тикеты"]

Тепловая карта и топ операторов

Динамика за 30 дней, тепловая карта загрузки по часам и дням и топ операторов с медианным временем ответа и решения
Динамика за 30 дней, тепловая карта загрузки по часам и дням и топ операторов с медианным временем ответа и решения

Последние тикеты и каналы

Последние открытые тикеты: канал, статус, категория, номер и клиент, ответственный и время
Последние открытые тикеты: канал, статус, категория, номер и клиент, ответственный и время

Карточка тикета

URL: /admin/support/<id>/. Слева — тред сообщений (клиент / оператор / внутренние заметки, жёлтым), справа — сайдбар. В шапке: номер + тема, чипы статуса/канала/категории, кнопки: учёт времени, звёздочка (Отмеченные), колокольчик (Отслеживаемые), спам, корзина, «следующий тикет внимания».

Карточка тикета: переписка и поле ответа, справа — ответственный, приоритет, SLA, AI-сводка и данные клиента из биллинга
Карточка тикета: переписка и поле ответа, справа — ответственный, приоритет, SLA, AI-сводка и данные клиента из биллинга

Сообщение клиента отмечено серой полосой, ответ оператора — зелёной, внутренняя заметка — жёлтым фоном. Статус SLA показан метками «в норме», «до 14:30», «с опозданием», «просрочен» и «пауза (ждём клиента)».

Редактор ответа и вложения

Лёгкий визуальный редактор: форматирование (жирный/курсив/списки/ссылка), прикрепление файлов, вставка картинки из буфера (Ctrl+V). Вложения-картинки — миниатюры с лайтбоксом, PDF открывается в модальном окне. Для e-mail уходит HTML-тело, для мессенджеров — очищенный plain-text. Кнопки: Ответить · Нейроответ (черновик от AI) · Ответить и закрыть · Заметка · Закрыть тикет. Черновик автосохраняется.

Шаблонные ответы с переменными

Настройки → Шаблонные ответы (/admin/support/saved-replies/). Готовые тексты для вставки в редактор. Переменные в тексте раскрываются данными текущего тикета в момент вставки. Видимость шаблона: глобальная, на ящик или личная; категории группируют шаблоны в списке.

ПеременнаяЧто подставляет
Тикет
{%ticket.number%}Номер тикета
{%ticket.subject%}Тема
Клиент
{%customer.fullname%}Полное имя
{%customer.first%}Имя — для обращения в письме
{%customer.email%}Электронная почта
{%customer.phone%}Телефон
Клиент в биллинге
{%abonent.contract%}Номер договора
{%abonent.login%}Логин учётной записи
{%abonent.tariff%}Название тарифа
{%abonent.balance%}Баланс, ₽
Ящик и оператор
{%mailbox.email%}Адрес ящика поддержки
{%mailbox.name%}Название ящика
{%agent.name%}Имя отвечающего оператора

Если данных нет — клиент не опознан в биллинге или у него не заполнен телефон — переменная раскрывается в пустую строку. Составляйте текст так, чтобы он читался и без подстановки: «Здравствуйте!» вместо «Здравствуйте, {%customer.first%}!».

AI-подбор шаблона

Кнопка «Подобрать» рядом с «Шаблоны»: AI читает последние сообщения клиента и предлагает до 3 подходящих шаблонов чипами — клик вставляет шаблон с раскрытием переменных. Работает на движке из «AI-агента», результат кешируется до нового сообщения клиента; при 3 и менее шаблонах AI не вызывается.

Правка отправленного

Автор может отредактировать свой ответ или заметку — рядом появляется отметка «изменено». Суперадмин может править любые сообщения операторов.

flowchart TB
    A["Ответственный с аватарами
и приоритет"] B["Категория обращения
и «Перезвонить»"] C["Биллинг: баланс, тариф, статус,
телефон и соцсети клиента"] D["SLA «Клиент ждёт ответа: N ч»
и прошлые обращения"] E["Теги, доп. поля
и логи времени"] A --> B --> C --> D --> E

Выезжающая панель и мобильная версия

Клик по тикету из Входящих открывает выезжающую панель справа — просмотр и ответ без ухода со списка. Та же панель открывается из карты клиентов, карты сети, карточки клиента и журнала голосовой почты. Панель собрана по итогам разбора с операторами, руководителем смены и экспертом по интерфейсам: главное в ней — чтобы служебный текст нельзя было случайно отправить клиенту и чтобы по ленте было видно, что с обращением происходило.

Выезжающая панель: метки отдела, статуса и канала, тема, клиент и баланс, приоритет, лента с историей действий, ответственный и поле ответа
Выезжающая панель: метки отдела, статуса и канала, тема, клиент и баланс, запись звонка, приоритет, лента с историей действий, ответственный и поле ответа
flowchart TB
    H["Шапка: номер, организация,
«создано N д назад»"] --> B["Метки: отдел · статус · канал,
тема и «Ждёт ответа»"] B --> D["Детали: клиент и баланс, запись звонка,
приоритет, прошлые обращения"] D --> F["Переписка · N: сообщения
и строки истории"] F --> R["Ответственный"] R --> M{"Ответ клиенту
или заметка?"} M -- "ответ" --> A["Уходит клиенту
в канал обращения"] M -- "заметка" --> N["Видят только
сотрудники"]

Ответ клиенту или заметка

Над полем — переключатель «Ответ клиенту · Заметка». Под ним строка, куда уйдёт сообщение: «Клиент получит ответ: Telegram» или «Ответ появится в обращении клиента — в личном кабинете и приложении». В режиме заметки поле становится жёлтым, кнопка — «Сохранить заметку», строка — «Заметка — видят только сотрудники». У сотрудника без права отвечать клиенту переключателя нет: доступна только заметка.

Режим «Заметка»: жёлтое поле, подпись «видят только сотрудники» и кнопка «Сохранить заметку»
Режим «Заметка»: жёлтое поле, подпись «видят только сотрудники» и кнопка «Сохранить заметку»

Рядом с отправкой — «AI-черновик» (черновик ответа, который оператор проверяет перед отправкой), «Черновик» (сохранить текст на этом устройстве) и «Закрыть». Закрытие спрашивает подтверждение с номером обращения и предупреждает, если в поле остался текст: он уйдёт вместе с закрытием.

Лента: сообщения и история действий

Заголовок «Переписка · N» считает сообщения, кнопка рядом разворачивает ленту на всю панель. Лента открывается на последнем сообщении — текущее состояние дела видно сразу. У каждого сообщения метка: «Клиент» (серая), «Ответ» (зелёная) или «Заметка» (жёлтая) — тип виден не только по цвету полосы.

flowchart TB
    T[("Сообщения
обращения")] --> FEED["Лента панели
по времени"] AU[("Аудит
Поддержки")] --> FEED FEED --> L1["Сообщения с метками
Клиент · Ответ · Заметка"] FEED --> L2["Строки истории: статус,
ответственный, приоритет"] FEED --> L3["Автосводка звонка —
строкой, текст по «показать»"]

Запись звонка и «Не тот звонок»

Если к обращению есть запись разговора, в деталях — блок «Запись звонка» с датой звонка в свёрнутом заголовке. Внутри: плеер (перемотка на 10 секунд, скорость, «Скачать»), суть звонка, «Текст разговора» и «Обновить суть».

Запись звонка раскрыта: плеер, суть звонка, «Не тот звонок», «Текст разговора» и «Обновить суть»
Запись звонка раскрыта: плеер, суть звонка, «Не тот звонок», «Текст разговора» и «Обновить суть»

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

flowchart TB
    S["Открыто обращение"] --> Q1{"Звонок закреплён
за этим обращением?"} Q1 -- "да" --> SHOW["Запись в деталях"] Q1 -- "нет" --> Q2{"Свободная запись с тем же телефоном
в пределах суток от обращения?"} Q2 -- "да" --> SHOW Q2 -- "нет" --> NONE["Записи нет"] SHOW --> FAR{"Звонок дальше суток
от обращения?"} FAR -- "да" --> WARN["Плашка «проверьте,
тот ли это разговор»"] SHOW --> UN["«Не тот звонок»"] UN --> OUT["Запись уходит из обращения,
в журнале звонков остаётся"] OUT --> LOG["Строка в истории
и в аудите"]

Если звонок дальше суток от даты обращения, в свёрнутом заголовке появляется значок предупреждения, а внутри — плашка «Звонок на 68 дней позже обращения — проверьте, тот ли это разговор». Кнопка «Не тот звонок» (для тех, кто может отвечать или назначать) убирает запись из обращения после подтверждения. Запись остаётся в журнале звонков и может найтись для другого обращения, а в ленте появляется строка «отвязана запись звонка от …».

Звонок на 68 дней позже обращения: значок в заголовке, плашка-предупреждение и кнопка «Не тот звонок»
Звонок на 68 дней позже обращения: значок в заголовке, плашка-предупреждение и кнопка «Не тот звонок»
Подтверждение: запись пропадёт из обращения, в журнале звонков останется
Подтверждение: запись пропадёт из обращения, в журнале звонков останется
Ошибочные привязки уже убраны. 16 сентября 2026 проверены обращения за 120 дней: у 604 из них висел звонок дальше суток от даты обращения, закреплённый старым поиском. 600 записей отвязаны разом с копией прежних привязок и строкой в истории каждого обращения; после этого около 400 обращений нашли свой звонок того же дня. Пять записей не тронуты: номер обращения совпал с обращением другого ящика, где звонок сделан в тот же день и привязка верна.

Мобильная версия

Раздел рассчитан на работу с телефона — оператор в поле открывает очередь и отвечает без десктопа:

Входящие на телефоне: карточки с темой, телефоном, тегами, клиентом, исполнителем и SLA
Входящие на телефоне: карточки с темой, телефоном, тегами, клиентом, исполнителем и SLA
Панель тикета на телефоне: «Детали» свёрнуты, лента с историей, переключатель «Ответ клиенту · Заметка»
Панель тикета на телефоне: «Детали» свёрнуты, лента с историей, переключатель «Ответ клиенту · Заметка»

Канбан-доска подключений находится в разделе CRM → Воронка сделок.

Тикеты, требующие внимания

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

AI-бот

AI-бот (единый AI-модуль AI-агент) работает на всех внешних каналах: отвечает на типовые вопросы (баланс, тариф, «нет интернета» — с данными из биллинга), проводит SMS-идентификацию и эскалирует оператору по ключевым словам или запросу клиента (ESCALATE_TO_HUMAN).

База знаний в промпте + авто-обогащение

Статьи базы знаний с аудиторией «Только бот» или «Бот + оператор» автоматически подмешиваются в system prompt всех AI-каналов (виджет, боты VK/Telegram, голос, телефон) — бот отвечает по вашим сценариям. Кэш 120 сек; лимит статей — настройка AI_KB_TOP_N; per-org (свои статьи организации + общие). Статьи «Только оператор» в промпт не идут.

Чтобы замкнуть цикл обучения, в панели оценки сессии на дашборде есть кнопка «В базу знаний»: из операторского разбора «как надо» + диалога AI генерирует черновик статьи. Черновик создаётся неактивным — в промпт бота он попадёт только после проверки и включения оператором в /admin/ai/kb/.

Кроме ручной кнопки работает автономное обогащение: раз в сутки фоновая задача сканирует свежие сессии с оценкой «Как не надо» и сама готовит неактивные черновики статей, присылая в Telegram сводку «N черновиков на проверку». Так база знаний постепенно растёт на реальных разборах, а оператору остаётся только проверить и включить нужные. Отключается настройкой KB_AUTODRAFT_ENABLED.

flowchart LR
    S["Сессия с оценкой «как не надо»
и разбором «как надо»"] --> B["Кнопка «В базу знаний»"] B --> AI["AI → черновик статьи"] AI --> KB["Неактивная статья"] KB --> R["Оператор проверил →
включил"] R --> P["В промпте бота"]

Телефонный AI (звонок на 61-32-40)

Клиент звонит на 61-32-40 и разговаривает с голосовым AI-ассистентом вживую: тот здоровается фирменно и по имени, называет баланс/тариф, меняет тариф, оформляет обещанный платёж — сразу, без ввода кода (клиент опознаётся по номеру, с которого звонит). Это отдельный AI-канал «Телефон» со своим промптом и настройками, независимый от голосового виджета на сайте.

flowchart LR
    A["Клиент 61-32-40"] --> N["Novofon"]
    N --> AST["Asterisk"]
    AST --> BR["Мост smit-phone-ai"]
    BR --> BILL["Биллинг: АОН → клиент,
промпт, ключ, движок"] BR --> AI{"Realtime"} AI --> GEM["Основной провайдер"] AI --> OAI["Резервный провайдер
(фолбэк)"] BR --> LOG["Журнал звонков
ai_chat_dashboard"]
Карточка «Телефонный AI» в /admin/ai/
Карточка «Телефонный AI 61-32-40» в разделе AI-агент.
Панель настроек телефонного AI
Панель настроек: движок, живой статус ключа, голос, приветствие, per-org.

Голосовая почта

Отчёты → Голосовая почта (/admin/reports/voicemail/). Пропущенные звонки на номера техподдержки АТС записывает и присылает письмом с расшифровкой на служебный ящик (call@…). Биллинг разбирает их сам — оператору ничего слушать не нужно.

Журнал один на систему. Раньше эта же страница висела в настройках Поддержки и в настройках CRM — журнал двоился, а фильтры чужого раздела мешали. Теперь события живут в отчётах, а маршруты линий, статус приёма и тест разбора — в Настройки → Голосовая связь (/admin/settings/telephony/). Старые адреса /admin/support/voicemail/ и /admin/crm/voicemail/ ведут на новый журнал, ссылки из писем и закладки не ломаются.
Журнал голосовой почты: срезы «Поддержка · Подключение · Мусор», телефон, организация, запись, SMS, линия, распознанная проблема и что создано
Журнал голосовой почты: срезы «Поддержка · Подключение · Мусор», телефон, организация, запись, SMS, линия, распознанная проблема и что создано
flowchart LR
    ATC["АТС (Mango и др.)
письмо: запись + расшифровка"] --> P1["1. Приём письма
телефон + номер линии"] P1 --> P2["2. Нормализация (ИИ)
телефон → +7…, адрес прописью → цифры
ИИ + regex-резерв"] P2 --> P3{"3. Классификация"} P3 -- "мусор (сброс/тишина)" --> G["ничего не создаётся"] P3 -- "поддержка" --> T["Тикет в ящик «Поддержка»
+ тег «Звонок ‹линия›»"] P3 -- "подключение" --> L["Лид в CRM-воронку
+ тикет + SMS клиенту
+ геокод адреса на карту"] P1 -. "письмо без записи и расшифровки
(«пришло новое голосовое сообщение»)" .-> N["Уведомление провайдера —
отбрасывается, тикета нет"]
Уведомления провайдера не засоряют очередь. Кроме письма с записью АТС присылает голое уведомление «Манго Телеком — пришло новое голосовое сообщение». В нём нет ни записи, ни расшифровки, поэтому тикет из него бесполезен. Такие письма помечаются прочитанными и тикет не создаётся (проверка идёт после разбора голосовой почты — настоящие голосовые сообщения не теряются). Ранее накопленные уведомления удалены из базы, а из списка «Прошлые обращения» клиента подобные записи прячутся.
Проверьте флаг «Создавать лид» у каждой линии. Он выключается на линии поддержки из соображения «сюда звонят действующие клиенты» — но тип обращения определяется по расшифровке, а не по назначению линии: заявки на подключение приходят на любой номер. При выключенном флаге разбор помечает письмо как заявку, тикет заводится, а сделки в CRM не появляется — и понять это по интерфейсу нельзя, смотреть надо колонку «Создано» в журнале ниже. В сентябре 2026 так потерялась 51 заявка за месяц; лиды по ним завела команда manage.py restore_voicemail_leads --days 30 --apply.

Журнал разбора

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

Причина, а не код. Если из письма ничего не создано, в колонке «Причина» стоит человеческое объяснение: «голос не распознан», «телефон не определён», «разбор был выключен», «тестовый прогон».

Расшифровка записи и суть звонка (AI)

Если у тикета есть запись разговора (мп3 от АТС), биллинг умеет расшифровать её и выделить суть — оператору не нужно слушать звонок целиком. Блок «Запись звонка» показывается и в карточке тикета (раздел 4), и в выезжающей панели (раздел 6) — в панели это сворачиваемый аккордеон.

В блоке: плеер записи, кнопка «Скачать», ссылка «Расшифровка» (полный текст) и кнопка «Транскрибировать / Обновить суть». По нажатию запись расшифровывается и прогоняется через AI-движок, который возвращает структурную выжимку:

Результат дописывается в тикет внутренней заметкой «Сводка звонка (AI-разбор)», а суть, категория и связь клиента обновляются в карточке без перезагрузки. В выезжающей панели эта заметка свёрнута в строку «Автосводка звонка» — текст сводки уже есть в блоке записи (подробнее). Какая запись считается записью этого обращения и как убрать чужую — в разделе «Запись звонка и „Не тот звонок“».

Автоматический режим. В Настройки → Общие (/admin/support/settings/) есть тумблер «Авто-транскрибация звонков». Когда включён — расшифровка и выделение сути запускаются сами при поступлении тикета со звонком, и оператор сразу видит готовую выжимку. Требуется ключ сервиса распознавания речи и настроенный AI-движок канала «voice».

Чем расшифровываем и что делать, если сервис отказал

Распознавание речи вынесено в один сервис, поэтому им пользуются и звонки телефонии, и кнопка «Расшифровать запись», и разбор голосовой почты. Провайдера два — OpenAI Whisper и Google Gemini, — выбор в Настройки → Голосовая связь. Если выбранный не ответил, расшифровка автоматически уходит второму: запись важнее, чем верность настройке.

Запись без текста больше не теряется. Бывает, что оператор связи прикладывает к письму запись, но не расшифровку. Раньше такое письмо уходило в «Пропуск» — на практике так терялось около двух десятков разговоров в неделю. Теперь запись расшифровывается на нашей стороне. Короткие файлы (сброс на первых секундах) в модель не отправляются — порог задаётся настройкой.

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

Если провайдер AI лёг. Когда сервис отвечает отказом по ключу, оплате или лимиту (401, 402, 403, 429), он уходит в карантин на 15 минут, а запросы идут к резервному провайдеру — порядок задаётся настройкой. Это касается не только расшифровки: так же подстрахованы бот поддержки, виджет на сайте и разбор голосовой почты. Посмотреть, кто в карантине, и снять его после починки: manage.py ai_failover_status и manage.py ai_failover_status --clear gemini.

База знаний

Поддержка → База знаний (/admin/support/kb/). Статьи с категориями и поиском. У каждой статьи — аудитория:

База знаний Поддержки: поиск по заголовку, проблеме, коду и ключевым словам, категории, тон и приоритет статьи, ссылка «Редактировать в AI»
База знаний Поддержки: поиск по заголовку, проблеме, коду и ключевым словам, категории, тон и приоритет статьи, ссылка «Редактировать в AI»

Аналитика и учёт времени

Аналитика (/admin/support/reports/) — отчёты по потоку обращений: динамика по каналам и ящикам, скорость первого ответа, нагрузка на операторов, топ категорий и тегов.

Отчёты Поддержки (выпуск 3.7.0)

Страница /admin/reports/support/: четыре раздела — Обращения, Продуктивность, Удовлетворённость, Время. Разделы и фильтры (период, канал, тег, ящик) стоят в одной строке; выбранный фильтр подсвечивается зелёным.

Отчёты Поддержки, раздел «Обращения»: показатели, динамика, скорость ответа, каналы, кольцевые диаграммы ящиков и населённых пунктов
Раздел «Обращения»: ящики, категории и населённые пункты — в три колонки
Отчёты Поддержки, раздел «Продуктивность»: операторы с аватарами и ссылкой на карточку
Раздел «Продуктивность»: операторы с аватаром и ссылкой на карточку сотрудника

Отслеживание времени

Настройки → Отслеживание времени (/admin/support/timetracking/). KPI-отчёт по затраченному времени с разбивкой по менеджерам: часы, доля, тикетов, среднее мин/тикет. Период — единый календарный виджет, менеджер — профиль-селектор с аватарами. Экспорт CSV. Источник данных — таймер и ручные записи в карточке тикета.

Отслеживание времени: часы, обработанные тикеты, минуты на тикет и активные менеджеры; доля каждого менеджера и выгрузка CSV
Отслеживание времени: часы, обработанные тикеты, минуты на тикет и активные менеджеры; доля каждого менеджера и выгрузка CSV

Настройки

Поддержка → Настройки (/admin/support/settings/) — вкладки: Общие · Авто ответств. · Авто наблюдат. · Категории · Рейтинги · Учёт времени · Почта (IMAP+SMTP) · Каналы. Настройки ящика собраны пер-ящик: выбрал ящик — правишь его почту, Telegram-параметры, категории. Кнопка «Сохранить» активируется только при изменениях (dirty-save), пояснения к опциям — в i-иконках.

SLA-политики

/admin/support/sla/ (ссылка — из вкладки «Общие»). Цели первого ответа (мин) и решения (ч) с привязкой к ящику / приоритету / организации; для тикета применяется самая специфичная активная политика. Типовой набор провайдера: авария (высокий приоритет) 15 мин/4 ч · перезвон по пропущенному 30 мин · стандарт 60 мин/24 ч · низкий приоритет 4 ч/72 ч. Опция «пауза на „Ожидает"» — просрочка решения не подсвечивается, пока ждём клиента (время считается календарно). Статус — чипами в инбоксе и блоком в карточке тикета.

Очереди операторов — round-robin

Во вкладках «Авто ответств.» / «Авто наблюдат.» в селекте оператора появилась группа «Очередь группы (round-robin)»: вместо конкретного сотрудника тикеты канала/ящика раздаются по кругу активным операторам выбранной Django-группы — нагрузка распределяется автоматически.

Сбор оценок CSAT

При включённых «Отзывах» ящика блок оценки 😊/😐/😞 добавляется в email-ответы (положение и текст — из настроек ящика), в мессенджеры — строка со ссылкой. При закрытии тикета без оценки клиенту уходит опрос (выключатель SUPPORT_CSAT_ON_CLOSE). Оценка «Плохо» — мгновенный алерт ответственному (лента + личный Telegram). Статистика — в отчётах, вкладка «Удовлетворённость».

Вложения: хранение только в облаке (GCS)

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

flowchart LR
    UP["Оператор или клиент
прикрепил файл"] --> CHK{"Тип и размер
разрешены?"} CHK -- "нет" --> REJ["Отклонено"] CHK -- "да" --> OPT["Сжатие картинки
(если включено)"] OPT --> GCS["Заливка в GCS
+ ссылка в тикете"] GCS --> DEL["Локальный файл удалён"] GCS --> VIEW["Скачивание и превью —
редирект на облако"]

Плитки «Занято места» показывают фактическую картину: На диске — файлы, физически лежащие на сервере; В облаке (GCS) — выгруженные; Без файла — записи, оставшиеся от импорта старой системы (сам файл в биллинг не переносился, поэтому объём не занимает).

Настройки вложений: разрешённые типы, размер файла, сжатие картинок, «Только облако (GCS)», архивация и занятое место — на диске 0 Б, в облаке 106,6 МБ
Настройки вложений: разрешённые типы, размер файла, сжатие картинок, «Только облако (GCS)», архивация и занятое место — на диске 0 Б, в облаке 106,6 МБ

Перенос накопленного. Файлы, загруженные до включения режима, переносятся в облако разово — командой support_attachments_to_gcs --apply. Требует настроенного хранилища GCS в разделе «Интеграции». Отдельно работает «Архивация старых» — она уводит в облако вложения старше N дней, если режим «только облако» выключен.

Ящики и разрешения

Настройки → Ящики (/admin/support/mailboxes/). У каждого ящика: email, IMAP+SMTP, организация, категории, Telegram-канал. Организация у ящика обязательна: тикет наследует организацию ящика при создании, а карточка тикета фильтруется по организациям — тикет без организации виден в списках, но не открывается (404). Если ящик остался без организации, назначьте её и обновите существующие тикеты. Кнопка «Разрешения» — выбор сотрудников, работающих с ящиком (по ролям: ст. менеджер / менеджер / монтажник / сэйлс). Ящик без выбранных — открыт всем; с выбранными — виден только им, они же получают оповещения.

Оповещения per-mailbox

Настройки → Оповещения (/admin/support/alerts/). Вкладка «По умолчанию» + вкладка на каждый ящик. Матрица событий (новый тикет / ответ клиента / назначен / просрочен) × каналов (Telegram / Email). Telegram-алерт уходит в личные чаты подключивших бота сотрудников, иначе — в общий чат поддержки.

Теги: справочник и автоназначение

Настройки → Теги (/admin/support/tags/) — название + цвет, CRUD. Автоназначение навешивает теги при создании тикета: по ключевым словам в теме/тексте («не работает» → «Авария»), по каналу (Email/VK/Telegram/Звонок/MAX), по ящику. Правило можно ограничить организацией.

Мессенджеры и SMS-идентификация

Настройки → Мессенджеры (/admin/support/messengers/) — подключение клиентских каналов:

Мессенджеры: вкладки Telegram, VK и MAX, SMS-идентификация для внешних каналов, бот поддержки с проверкой подключения
Мессенджеры: вкладки Telegram, VK и MAX, SMS-идентификация для внешних каналов, бот поддержки с проверкой подключения

Связь с биллингом и CRM

Модуль живёт в базе биллинга, поэтому «интеграция» — это прямые связи, а не API: