Граф Wiki

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

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

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

1. Обзор модуля

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

В каком порядке разбирать очередь, как ответить из выезжающей панели, где взять баланс и тариф клиента, что делает бот и из-за чего портится SLA.

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
    - Фильтры шума
  - Мульти-орг
    - Ящик = организация
    - Изоляция тикетов

Входящие: показатели, сохранённые виды, фильтры, список тикетов с адресом, тегами и бейджем организации

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

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

КаналКак работаетКуда попадает
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 (номер → код → доступ к данным договора). Идентификация «по номеру договора» запрещена — это защита персональных данных. Управляется настройкой на странице Мессенджеры.

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

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

Поддержка — Входящие: KPI, папки, список тикетов

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

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

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

SLA-чипы

При настроенных SLA-политиках строка тикета получает чип: 🔴 просрочен · 🟠 под угрозой (прошло >80% цели) · ⏱ выполнен с опозданием · ⏸ пауза (статус «Ожидает»). Подробный статус целей — блоком в карточке тикета.

Умный поиск

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

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

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

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

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

Дашборд Поддержки: селектор периода, KPI с дельтами, медианное время ответа/решения, SLA

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

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

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["Последние
открытые тикеты"]

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

Тепловая карта загрузки по часам и дням + Топ операторов с временем ответа и решения

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

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

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

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

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

Лёгкий визуальный редактор: форматирование (жирный/курсив/списки/ссылка), прикрепление файлов, вставка картинки из буфера (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 TD
    A["👤 Ответственный (профиль-селектор
с аватарами) + 🎯 Приоритет"] B["🗂 Категория обращения · 📞 «Перезвонить»"] C["💳 Биллинг: аватар · баланс · тариф ·
статус · телефон · соцсети VK/TG/MAX"] D["⏱ SLA «Клиент ждёт ответа: N ч»
🕘 Прошлые обращения (5)"] E["🏷 Теги · 📋 Доп. поля · ⏲ Логи времени"] A --> B --> C --> D --> E

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

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

Строка биллинга — клиент (ссылка открывает карточку), баланс, тариф, статус и телефон в одну линию — тред виден сразу, а контекст не потерян.

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

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

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

Входящие на телефоне: тикеты-карточки с темой, телефоном, адресом, тегами и строкой Клиент/Исполнитель

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

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

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

8. 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["В промпте бота"]

8А. Телефонный 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.

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

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

Голосовая почта — настройки и схема работы

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

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

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

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

Результат дописывается в тикет внутренней заметкой «🎧 Суть звонка», а суть, категория и связь клиента обновляются в карточке без перезагрузки.

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

10. База знаний

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

База знаний Поддержки

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

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

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

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

Отслеживание времени — KPI по менеджерам

12. Настройки

Поддержка → Настройки (/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, в облаке 11.8 МБ

Перенос накопленного. Файлы, загруженные до включения режима, переносятся в облако разово — командой 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), по ящику. Правило можно ограничить организацией.

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

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

Мессенджеры — Telegram, VK, MAX, SMS-идентификация

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

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