Поддержка — модуль техподдержки клиентов
Поддержка (/admin/support/) — нативный модуль техподдержки
внутри СмИТ Биллинга: единое окно приёма обращений из всех каналов (email, VK,
Telegram, MAX, пропущенные звонки, веб-виджет), карточка тикета со связью с клиентом
и CRM, AI-бот с автоответами, база знаний, аналитика. Клиент привязывается к тикету
напрямую (данные хранятся в базе биллинга) — оператор видит баланс, тариф и статус
без каких-либо внешних интеграций.
Содержание страницы
- 1. Обзор модуля
- 2. Каналы приёма обращений
- 3. Входящие: список тикетов
- 3А. Дашборд Поддержки
- 4. Карточка тикета
- 5. Правый сайдбар
- 6. Выезжающая панель и мобильная версия
- 7. Тикеты, требующие внимания
- 8. AI-бот
- — База знаний в промпте
- 8А. Телефонный AI (61-32-40)
- 9. Голосовая почта
- — Расшифровка и суть звонка (AI)
- 10. База знаний
- 11. Аналитика и учёт времени
- 12. Настройки
- 13. Мессенджеры и SMS-идентификация
- 14. Связь с биллингом и CRM
1. Обзор модуля
В каком порядке разбирать очередь, как ответить из выезжающей панели, где взять баланс и тариф клиента, что делает бот и из-за чего портится SLA.
Модуль доступен в верхнем меню биллинга — пункт «Поддержка». Левый сайдбар раздела: Дашборд · Входящие · Мои тикеты · Не назначены · Назначенные · Отмеченные · Отслеживаемые · Черновики · Закрытые · Спам · Корзина · База знаний · Настройки.
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
- Фильтры шума
- Мульти-орг
- Ящик = организация
- Изоляция тикетов

Ключевые принципы:
- Единое окно — все каналы сходятся в одну очередь; ответ уходит в тот же канал, откуда пришло обращение.
- Биллинг-контекст с первой секунды — сопоставленный клиент (баланс/тариф/статус/аватар/соцсети) виден в сайдбаре тикета и в выезжающей панели.
- Мульти-организация — ящики и тикеты изолируются по организациям маршрутизация — по ящику-получателю и маркерам в тексте.
- Лиды ≠ тикеты — обращения «хочу подключиться» уходят лидами в CRM-воронку, а не в очередь поддержки.
2. Каналы приёма обращений
| Канал | Как работает | Куда попадает |
|---|---|---|
| IMAP-приём с ящиков поддержки (каждый ящик — свои 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-карточки (Не назначены / Мои / Активные / Ожидают / Закрыты), статусные папки в левом сайдбаре, таблица тикетов с превью, тегами и бейджами.

Todo-секции «Разобрать» и отложенные
Полоса секций по принципу «что делать», а не «какой статус»: Нужен первый ответ (нет ни одного ответа оператора — риск SLA) · Ждёт нашего ответа (клиент написал после нас) · Ждёт клиента · Отложенные. Секции со срочной работой подсвечиваются янтарным, счётчики точные.
Отложить (snooze) — в карточке тикета: 1 ч / 3 ч / завтра 9:00 / понедельник / своя дата. Отложенный тикет скрыт из «Входящих» до срока, затем «просыпается» автоматически: уведомление ответственному в ленту и личный Telegram.
SLA-чипы
При настроенных SLA-политиках строка тикета получает чип: 🔴 просрочен · 🟠 под угрозой (прошло >80% цели) · ⏱ выполнен с опозданием · ⏸ пауза (статус «Ожидает»). Подробный статус целей — блоком в карточке тикета.
Умный поиск
Одно поле ищет по: теме · тексту переписки · ФИО и договору клиента · адресу · телефону в любом формате (нормализуется до цифр) · номеру тикета. Если совпадение не в теме, строка тикета показывает сниппет — выдержку из сообщения с жёлтой подсветкой найденного.
Фильтры и массовые действия
- Фильтры: приоритет (мультивыбор), категория, период (быстрые кнопки), ящик, «Перезвонить».
- Селект «Оператор» (обновлён в 2026-07): в списке — все операторы, которым назначены тикеты, с количеством напротив каждого. Клик по фамилии в колонке «Назначено» подставляет этого сотрудника в фильтр — быстрый разбор очереди конкретного оператора.
- Кнопка «Наблюдаю» — единый компонент SmitWatchButton: только иконка глаза и счётчик, зелёный фон в активном состоянии. Фильтрует тикеты, за которыми следит оператор.
- Сортировка по колонкам: № / Назначено / Приоритет / Ожидает.
- Массовые действия по чекбоксам: назначить, теги, статус, спам, удалить.
- Строка тикета: иконки 📎 (есть вложения) и 📞 (требуется перезвон), превью телефон+адрес, техтеги, клик по клиенту открывает drawer клиента.
- Клик по строке — выезжающая панель (или полная карточка, по настройке «Открытие тикета»).
Обновления инбокса (2026-08):
- Пик-панель всегда по клику — тикет открывается в выезжающей справа панели (тема, клиент, запись звонка, приоритет, переписка, поле ответа), список слева остаётся.
- Аватар ответственного + инлайн-переназначение в колонке «Назначено»: кнопка ▾ открывает меню операторов (с аватарами) → назначение без открытия тикета.
- Тумблер «Компактно/Просторно» — плотность строк (скрывает превью и теги), запоминается в браузере; доступен на всех разделах.
- Акцент «нужен ответ» — левая жёлтая полоса + жирная тема у тикетов, где последнее слово за клиентом.
- Массовые действия (колонка чекбоксов + панель) — только для
su и группы «Старший менеджер»; endpoint
/support/bulk/защищён на сервере. - Таблица тикетов не даёт горизонтального скролла на всех разделах
(
table-layout:fixed+ фикс-ширины колонок); тулбар фильтров в один ряд с авто-сжатием поиска и icon-only при нехватке места.
3А. Дашборд Поддержки
URL: /admin/support/dashboard/. Сводка очереди в стиле CRM-дашборда.
Мультиорг-осведомлён: режим «Все» показывает сводные показатели + разбивку по
организациям; при выбранной организации — строго её тикеты.

Период и дельты
- Единый компонент диапазона дат (SmitDateRange — пресеты + календарь), по умолчанию последние 30 дней; выбранный диапазон запоминается в сессии.
- Дельты потока ▲/▼ к предыдущему равному периоду на карточках «Всего» (создано), «Закрыто», «Спам». Цвет по смыслу: закрыто↑ — хорошо, спам↑ — плохо.
- Медианное время первого ответа (по первому ответу оператора) и время решения (создание→закрытие) за период, с дельтой к прошлому периоду (меньше — лучше).
- SLA-карточка «Первый ответ в срок (≤N ч)» — % в срок / из скольких /
просрочено. Порог — настройка
SUPPORT_SLA_HOURS(по умолчанию 4).
Как считаются метрики за выбранный период:
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["Последние
открытые тикеты"]
Тепловая карта и топ операторов
- Тепловая карта «часы × дни недели» (7×24, 5 уровней интенсивности) по созданным тикетам — помогает планировать смены. Размещена под графиком динамики в левой колонке.
- Топ операторов — к «Открытых / Закрыто / Всего» добавлены «1-й ответ» и «Решение»: медианное время по тикетам, где оператор ответственный, за период.

Последние тикеты и каналы
- «Последние тикеты» оформлены как карточка настроек (серая шапка + table-hover). Только открытые (актив+ожид). В строке: статус-точка, тема (клик → тикет), под ней бейджи канала (цветной, иконка+имя), статуса, приоритета, категории, а также № тикета · клиент; справа — аватар ответственного и время.
- «Каналы обращений»: каналы импорта свёрнуты в один бакет «Импорт (архив)», добавлен канал «AI-ассистент».

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 не вызывается.
Правка отправленного
Автор может отредактировать свой ответ или заметку — рядом появляется отметка «изменено». Суперадмин может править любые сообщения операторов.
5. Правый сайдбар тикета
flowchart TD
A["👤 Ответственный (профиль-селектор
с аватарами) + 🎯 Приоритет"]
B["🗂 Категория обращения · 📞 «Перезвонить»"]
C["💳 Биллинг: аватар · баланс · тариф ·
статус · телефон · соцсети VK/TG/MAX"]
D["⏱ SLA «Клиент ждёт ответа: N ч»
🕘 Прошлые обращения (5)"]
E["🏷 Теги · 📋 Доп. поля · ⏲ Логи времени"]
A --> B --> C --> D --> E
- Ответственный — селектор с аватарами и ролями; «Взять в работу» одним кликом; назначение — у ст. менеджера/директора.
- Биллинг — сопоставленный клиент: аватар, ФИО (клик — drawer), договор, баланс (цвет), тариф, статус, блоки, телефон, email, соц-иконки. Если не сопоставлен — кнопка «Связать с клиентом» (поиск по ФИО/договору/адресу/ телефону/email).
- SLA-таймер — время с последнего сообщения клиента без ответа оператора; зелёный <1 ч · оранжевый <4 ч · красный ≥4 ч.
- Прошлые обращения — последние 5 тикетов клиента (№ · тема · статус · дата), клик открывает.
- Доп. поля — кастомные поля тикета
(текст/число/дата/список/Да-Нет/многострочный), глобальные или на ящик
(
/admin/support/userfields/). Поля «Номер договора» и «Адрес подключения» при связанном клиенте — только для чтения (берутся из карточки). - Логи времени — таймер (авто-старт на своих тикетах, по настройке) + ручное добавление; последние записи с итогами.
6. Выезжающая панель и мобильная версия
Клик по тикету из Входящих открывает выезжающую панель справа — быстрый просмотр и ответ без ухода со списка: шапка (№, организация, давность), чипы статуса и канала, тема, компактная строка биллинга, SLA-таймер, смена приоритета одним кликом, прошлые обращения, тред и форма ответа с шаблонами.
Строка биллинга — клиент (ссылка открывает карточку), баланс, тариф, статус и телефон в одну линию — тред виден сразу, а контекст не потерян.

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

Канбан-доска подключений находится в разделе CRM → Воронка сделок.
7. Тикеты, требующие внимания
Под формой ответа — до трёх карточек тикетов, требующих реакции оператора: «Перезвонить» (отмеченные) и «Клиент ждёт N мин» (входящее без ответа). В шапке карточки — кнопка перехода к следующему такому тикету: оператор обрабатывает очередь не возвращаясь в список. Включается настройкой «Показывать тикеты внимания».
8. AI-бот
AI-бот (единый AI-модуль AI-агент) работает на
всех внешних каналах: отвечает на типовые вопросы (баланс, тариф, «нет интернета» —
с данными из биллинга), проводит SMS-идентификацию и эскалирует оператору по
ключевым словам или запросу клиента (ESCALATE_TO_HUMAN).
- Нейроответ — кнопка в редакторе: AI формирует черновик ответа по треду и биллинг-контексту, оператор правит и отправляет.
- Авто-триаж — команда массовой AI-классификации и закрытия устаревших тикетов (разгрузка очереди после миграций).
- База знаний — статьи с аудиторией «Бот» подмешиваются в контекст AI-ответов.
- Журнал AI-сессий —
/admin/reports/ai_chat_dashboard/: все диалоги клиентов с AI (текст и голос), KPI, привязки к тикетам и лидам, расход токенов. Настройки провайдеров (ключи, промпты) — в разделе/admin/ai/.
База знаний в промпте + авто-обогащение
Статьи базы знаний с аудиторией «Только бот» или
«Бот + оператор» автоматически подмешиваются в 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"]
- Опознание по номеру (АОН) — CallerID сопоставляется с клиентом; баланс/тариф выдаются сразу. Приветствие собирается автоматически: компания + Имя Отчество + статус («баланс положительный», «подключение активно» — если это так).
- Движок с фолбэком — основной голосовой провайдер; при недоступности ключа автоматически переключается на резервный, с Telegram-алертом.
- Журнал звонков — все звонки попадают в
/admin/reports/ai_chat_dashboard/(чип «Телефон»): транскрипт, токены, стоимость, «Кто» = номер, форма оценки «для обучения». - Настройки — карточка «Телефонный AI» в
/admin/ai/: движок, голос, приветствие, номер линии, кнопка «Проверить ключ», per-org. Промпт — на/admin/settings/ai/phone/.
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["Уведомление провайдера —
отбрасывается, тикета нет"]
- Телефонные линии — по номеру, на который звонил клиент, выбирается сегмент (физлица / юрлица / партнёрская компания / поддержка), организация, воронка CRM и ящик тикета.
- Авто-SMS «Мы перезвоним» — клиенту сразу после звонка (шаблон на линию).
- Геокодирование — адрес прописью («ленина дом пять») нормализуется AI и геокодируется через DaData — лид сразу виден на карте CRM.
- Тест и журнал — на странице настроек: dry-run разбор письма без создания сущностей + журнал событий с фильтрами.
Расшифровка записи и суть звонка (AI)
Если у тикета есть запись разговора (мп3 от АТС), биллинг умеет расшифровать её и выделить суть — оператору не нужно слушать звонок целиком. Блок «Запись звонка» показывается и в карточке тикета (раздел 4), и в выезжающей панели (раздел 6) — в панели это сворачиваемый аккордеон.
В блоке: плеер записи, кнопка «Скачать», ссылка «Расшифровка» (полный текст) и кнопка «Транскрибировать / Обновить суть». По нажатию запись расшифровывается и прогоняется через AI-движок, который возвращает структурную выжимку:
- Суть звонка — 1–2 предложения: что случилось и что просит клиент (числительные прописью приводятся к цифрам: «двадцать шестая линия» → «линия 26»);
- Категория — определяется автоматически и проставляется тикету (например «Не работает интернет» → категория ящика «Нет интернета»);
- Теги — навешиваются по содержанию разговора;
- Требуется оператор — бейдж, если ситуация требует живого участия (авария, конфликт, срочно);
- Связь с клиентом — если клиент не был сопоставлен, тикет привязывается к нему по телефону звонящего или по номеру договора, названному в разговоре; если у клиента не заполнен телефон — в карточку добавляется номер, с которого звонили.
Результат дописывается в тикет внутренней заметкой «🎧 Суть звонка», а суть, категория и связь клиента обновляются в карточке без перезагрузки.
Автоматический режим. В Настройки → Общие
(/admin/support/settings/) есть тумблер
«Авто-транскрибация звонков». Когда включён — расшифровка и
выделение сути запускаются сами при поступлении тикета со звонком,
и оператор сразу видит готовую выжимку. Требуется ключ сервиса распознавания речи и настроенный
AI-движок канала «voice».
10. База знаний
Поддержка → База знаний (/admin/support/kb/).
Статьи с категориями и поиском. У каждой статьи — аудитория:
- Оператор — регламенты и инструкции для сотрудников, открываются из карточки тикета;
- Бот — сценарии и фактура для AI-ответов: статья попадает в контекст AI-бота и «Нейроответа».

11. Аналитика и учёт времени
Аналитика (/admin/support/reports/) — отчёты по
потоку обращений: динамика по каналам и ящикам, скорость первого ответа, нагрузка
на операторов, топ категорий и тегов.
Отслеживание времени
Настройки → Отслеживание времени
(/admin/support/timetracking/). KPI-отчёт по затраченному времени с
разбивкой по менеджерам: часы, доля, тикетов, среднее мин/тикет. Период — единый
календарный виджет, менеджер — профиль-селектор с аватарами. Экспорт CSV.
Источник данных — таймер и ручные записи в карточке тикета.
![]()
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). Статистика — в
отчётах, вкладка «Удовлетворённость».
- Общие: размер страницы списка, открытие тикета (панель / полная карточка), показ тикетов внимания, SLA-порог, политика вложений (мультивыбор типов + макс. объём, сжатие картинок при загрузке, хранение вложений в облаке).
- Авто-назначение: правила ответственного и наблюдателя по ящику/каналу/категории.
- Категории: справочник категорий обращений на каждый ящик (имя + иконка).
- Рейтинги: оценка ответа оператора клиентом.
- Учёт времени: вкл/выкл, авто-таймер на своих тикетах, ручные записи, видимость логов.
Вложения: хранение только в облаке (GCS)
Файлы из переписки не копятся на диске сервера. При включённом тумблере «Только облако (GCS)» вложение сразу после загрузки уезжает в облако, а локальная копия удаляется — на сервере остаётся только ссылка. Скачивание и превью работают прозрачно: биллинг перенаправляет на облачный файл.
flowchart LR
UP["Оператор или клиент
прикрепил файл"] --> CHK{"Тип и размер
разрешены?"}
CHK -- "нет" --> REJ["Отклонено"]
CHK -- "да" --> OPT["Сжатие картинки
(если включено)"]
OPT --> GCS["Заливка в GCS
+ ссылка в тикете"]
GCS --> DEL["Локальный файл удалён"]
GCS --> VIEW["Скачивание и превью —
редирект на облако"]
Плитки «Занято места» показывают фактическую картину: На диске — файлы, физически лежащие на сервере; В облаке (GCS) — выгруженные; Без файла — записи, оставшиеся от импорта старой системы (сам файл в биллинг не переносился, поэтому объём не занимает).

Перенос накопленного.
Файлы, загруженные до включения режима, переносятся в облако разово — командой
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 — клиентский бот приёма обращений; токен и параметры, приём через long-polling демон (устойчив к блокировкам вебхуков из РФ).
- VK — сообщество: токен, Group ID, secret; сообщения в личку сообщества становятся тикетами, ответы оператора уходят обратно в VK.
- MAX — приём через пользовательскую сессию мессенджера.
- SMS-идентификация — тумблер: бот внешних каналов подтверждает личность клиента кодом из SMS перед выдачей данных договора (6 цифр, 10 минут, 5 попыток).
14. Связь с биллингом и CRM
Модуль живёт в базе биллинга, поэтому «интеграция» — это прямые связи, а не API:
- Тикет ↔ Клиент — прямая привязка; виджет «Биллинг» в сайдбаре читает баланс/тариф/статус из тех же таблиц, что и карточка клиента.
- Вкладка «Поддержка» в карточке клиента — все тикеты клиента с созданием нового.
- Лиды → CRM — «подключение» из любого канала (голос, connect@, виджет) создаёт сделку в воронке CRM с UTM-атрибуцией и геокодом.
- Уведомления — колокольчик в навбаре (вкладка «Уведомления» внутреннего чата), Telegram-алерты сотрудникам, push клиенту в мобильное приложение при ответе оператора.
- Карта сети — геопривязанные тикеты отображаются слоем «Заявки» на карте клиентов; клик — та же выезжающая панель тикета.
- REST API — для внешних систем доступны эндпоинты
/rest_api/v2/(раздел API).