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

Личный кабинет клиента

Личный кабинет (ЛК) — веб-портал самообслуживания клиента по адресу /lk/. Здесь клиент видит баланс и тариф, пополняет счёт, меняет тариф, подключает услуги и ТВ, общается с поддержкой и AI-ассистентом, управляет профилем и безопасностью входа. Доступен с компьютера и телефона (адаптивная вёрстка) и продублирован мобильными приложениями Android / iOS.

Модуль «ЛК и мобильные приложения» — на сайте продукта
Содержание раздела
Содержание

Обзор

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

Кабинет глазами клиента: вход, баланс и расчётный период, пополнение, «за что списали», смена тарифа, заказ услуг и ТВ, AI-ассистент, мобильное приложение.

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

ЛК закрывает весь цикл самообслуживания, разгружая поддержку:

Брендинг, набор включённых функций и тексты настраиваются администратором в разделе «ЛК и мобильные»; при мультиоператорной конфигурации — отдельно для каждой организации.

Вход и способы авторизации

Страница входа в ЛК
Страница входа в ЛК

Страница входа /lk/login/. Основной вход — по логину и паролю (договор / логин клиента). Дополнительно доступны способы входа, которые включает оператор:

Восстановление пароля (/lk/forgot-password/) — по SMS или Email (выбирается оператором). Фон страницы входа и страницы заполнения контактов настраивается в брендинге.

Дашборд

Дашборд ЛК
Дашборд ЛК

Главная страница /lk/ — сводка по клиенту:

Слева — навигация по разделам, сгруппированная: Финансы, Услуги, Поддержка. Справа в шапке — баланс, договор, переключатель темы и меню профиля. AI-чат доступен плавающей кнопкой в правом нижнем углу.

Финансы

Пополнение баланса
Пополнение баланса

Тарифы

Тарифные планы в ЛК
Тарифные планы в ЛК

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

Услуги и ТВ

Услуги в ЛК
Услуги в ЛК

Что попадает в каталог

Услуга видна клиенту, если у неё стоит галка «Показывать в ЛК» (вкладка «ЛК клиента» в карточке услуги) и она проходит правила каталога:

Те же правила действуют в мобильном приложении — каталог общий (billing/services/lk_service_catalog.py).

Два способа заказа: сразу и по заявке

Что за услугаКнопка у клиентаЧто происходит
Периодическая (абонплата) дешевле порога «Подключить» Услуга подключается сразу. Списание идёт обычным биллингом, а не в момент нажатия. Если у услуги включена проверка баланса — при нехватке средств кнопка недоступна.
Разовая работа или услуга дороже порога «Оставить заявку» Услуга не подключается. В Поддержке создаётся обращение с ценой по прайсу и контактами клиента; оператор согласует сроки и подключает сам.

Порог задаётся в Настройки → Личный кабинет → Функции → «Заказ услуги без заявки до» (по умолчанию 3000 ₽; 0 — любая услуга только заявкой). Отдельная услуга может обойти правило галкой «Подключать сразу, без заявки» в своей карточке — для работ с выездом и договором её не ставят.

Отключение клиентом

Клиент отключает услугу сам, только если в карточке услуги стоит «Разрешить отключение в ЛК». Поле «Разрешить отключение через N месяцев» задаёт минимальный срок: до этой даты кнопка заменяется датой, с которой отключение станет доступно. Правило одинаково работает в ЛК и в мобильном приложении.

Поддержка и заявки

Поддержка в ЛК
Поддержка в ЛК

Раздел /lk/support/ — заявки в техподдержку (нативная Поддержка СмИТ Биллинг): список обращений со статусами, создание новой заявки, переписка с оператором и вложения. Отдельно — Сообщения (/lk/messages/): уведомления и рассылки от оператора.

AI-ассистент

AI-чат в ЛК
AI-чат в ЛК

AI-ассистент (/lk/chat/ + плавающий виджет) отвечает на вопросы 24/7 на базе AI-агента биллинга, использует базу знаний поддержки и видит контекст клиента (баланс, тариф). При сложном вопросе автоматически создаёт заявку и передаёт диалог живому оператору. Клиент может оценить ответы 👍/👎. Срок хранения истории чата настраивается оператором.

Профиль и безопасность

Профиль клиента в ЛК
Профиль клиента в ЛК

Страница /lk/profile/: контактные данные (email/телефон с подтверждением), смена пароля (/lk/password/), привязка соцсетей (VK / Telegram / Google / Apple / Яндекс) и passkey, переключатель темы. При первом входе, если оператор требует контакты, клиент проходит экран /lk/profile/contacts-required/.

Дополнительные возможности

История операций в ЛК
История операций в ЛК

Тест скорости

Страница /lk/speedtest/ меряет скачивание, отдачу, задержку и jitter и сравнивает скачивание с тарифом: от 80% — «соответствует», 50–80% — «ниже ожидаемой», меньше 50% — «значительно ниже» и кнопка «Создать обращение» с готовым текстом (скорости, пинг, дата и способ замера). Способ выбирается переключателем над шкалой и запоминается в браузере; в истории тестов у каждого замера подписан способ.

СпособКуда меряетЗачем
Наш серверДо сервера биллинга: один поток, 10 МБ скачивания и 5 МБ отдачи, 5 замеров задержкиВидно, выдаёт ли оператор скорость тарифа на всём пути до клиента
Серверы ЯндексаДо ближайших серверов Яндекса — тех же, что использует yandex.ru/internet. Узел с наименьшей задержкой, 10 секунд скачивания в 4 потока и 8 секунд отдачи в 3 потока; первые 2 секунды в результат не идут Сравнить скорость «до нас» и «до внешних сайтов»: если до нас быстро, а до Яндекса медленно, проблема за пределами сети оператора

Список узлов Яндекса запрашивает биллинг (/lk/speedtest/probes/, кэш 2 минуты; если Яндекс не ответил — запасной список узлов), сам замер идёт из браузера клиента напрямую к узлам.

Тест скорости: замер до серверов Яндекса завершён
Замер до серверов Яндекса: результат, сравнение с тарифом и история тестов

С включённым VPN замер не проводится. Сеть проверяется при открытии страницы и перед каждым замером (/lk/speedtest/check/), пока проверка идёт — кнопка неактивна:

В обоих случаях кнопка «Отключите VPN» неактивна; после отключения клиент нажимает «Проверить снова» — страницу перезагружать не нужно. Сервер биллинга, кроме того, сам отказывает в замере «до нашего сервера» (403), если запрос пришёл не из сети. Не удалось проверить (сбой запроса или нет данных о сети) — тест доступен.

В «Доп. подсети оператора» (настройки ЛК → безопасность) указывают не только внутренние адреса, с которых клиенты приходят на биллинг, но и внешние сети оператора, через которые клиенты выходят в интернет: иначе адрес браузера не узнаётся как свой, и проверка принимает клиента за VPN.

flowchart TB
  A["Нажал «Начать тест»"] --> B{"Адрес запроса из сети оператора?"}
  B -->|нет| X["Соединение не через нашу сеть"]
  B -->|да| C{"Адрес браузера из сети оператора?"}
  C -->|нет| Y["Обнаружен VPN или прокси"]
  C -->|да или неизвестен| D["Замер выбранным способом"]
  X --> R["Отключить VPN и Проверить снова"]
  Y --> R
  
Тест скорости: обнаружен VPN, замер не запускается
Обнаружен VPN: замер не запускается, кнопка «Проверить снова»

Тёмная тема и мобильный вид

ЛК поддерживает тёмную тему (переключатель в шапке; выбор сохраняется в браузере) и полностью адаптивен — на телефоне навигация сворачивается, карточки перестраиваются в одну колонку.

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

flowchart TB
    LOGIN["Вход /lk/login/
пароль · VK · TG · Google
Apple · Яндекс · passkey"] --> DASH["Дашборд /lk/
баланс · тариф · статус"] DASH --> FIN["Финансы"] DASH --> SRV["Услуги"] DASH --> SUP["Поддержка"] DASH --> PROF["Профиль"] FIN --> PAY["Пополнить
ЮKassa · W1"] FIN --> HIST["История платежей
/операций · ОП"] SRV --> TAR["Тарифы"] SRV --> SVC["Услуги · IPTV"] SUP --> TICK["Заявки · Сообщения"] SUP --> AI["AI-ассистент
24/7"] PROF --> SEC["Пароль · соцсети
passkey · контакты"] AI -.->|"сложный вопрос"| TICK style LOGIN fill:#1e3a5f,stroke:#5BA89D,color:#fff style DASH fill:#134e4a,stroke:#43b77a,color:#fff style PAY fill:#43b77a,stroke:#2d9a5f,color:#fff style AI fill:#1e3a5f,stroke:#5BA89D,color:#fff style TICK fill:#78350f,stroke:#d97706,color:#fff

Настройка ЛК в админке

Раздел Настройки → ЛК и мобильные (/admin/settings/lk/) — 7 вкладок. вкладки загружаются по одной: открытая приходит с сервера, остальные — при переходе.

Раздел «ЛК и мобильные», вкладка «Обзор»: показатели, текущая конфигурация, версии приложений
Вкладка «Обзор»: показатели, текущая конфигурация и версии приложений

Из чего состоит раздел и куда уходят настройки:

flowchart LR
    subgraph ADM["Настройки → ЛК и мобильные"]
      OV["Обзор"]
      BR["Брендинг"]
      FE["Функции"]
      AU["Способы входа"]
      AI["AI-чат"]
      SE["Безопасность"]
      MO["Мобильное"]
    end
    ADM --> STORE["Настройки биллинга
общие + переопределения
по организациям"] STORE --> WEB["Личный кабинет
в браузере"] STORE --> APP["Приложения
Android и iOS"] STORE --> API["Мобильный API"] OV -. "читает" .- STORE

Обзор: что показывает

Первый экран отвечает на вопрос «как этим пользуются и что сейчас включено» — без открывания остальных вкладок.

Брендинг

Вкладка «Брендинг»: баннер уведомлений, цвет кабинета, визуальные эффекты, фоны
Вкладка «Брендинг»: баннер, цвет кабинета, эффекты и фоны

Функции

Вкладка «Функции»: что клиент видит и может сделать сам
Вкладка «Функции»: что клиент видит и что может сделать сам

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

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

Способы входа

Вкладка «Способы входа»: пароль, соцсети, код из SMS, звонок
Вкладка «Способы входа»: пароль, соцсети, код из SMS, звонок

Здесь собрано всё, чем клиент подтверждает, что он это он: логин и пароль, вход по договору или телефону, соцсети (VK, Telegram, Apple, Google, Яндекс), код из SMS, звонок с кодом, passkey. У каждого способа — свой переключатель и ключи приложения.

flowchart TD
    C["Клиент открывает кабинет"] --> WAY{"Чем входит?"}
    WAY -->|"логин и пароль"| PW["Проверка пары
логин / договор + пароль"] WAY -->|"соцсеть"| SOC["VK · Telegram · Apple
Google · Яндекс"] WAY -->|"код"| CODE["SMS или звонок
с кодом"] PW --> CHK{"Условия входа
(вкладка «Безопасность»)"} SOC --> LINK["Привязка к клиенту
по телефону или e-mail"] LINK --> CHK CODE --> CHK CHK -->|"ок"| IN["Кабинет открыт"] CHK -->|"нет контактов
или не подтверждены"| FILL["Онбординг:
заполнить и подтвердить"] FILL --> IN

Способы входа вынесены из «Функций» отдельной вкладкой: у них своя область действия (организация может переопределить их под себя) и правят их обычно другие люди.

AI-чат

Вкладка «AI-чат»: каналы, оценки ответов, автоэскалация, срок хранения истории
Вкладка «AI-чат»: каналы, оценки ответов, эскалация, срок хранения

В разделе не называются поставщики и модели нейросетей — везде просто «AI»: оператору настроек кабинета это не нужно, а имена моделей меняются. Сам ассистент настраивается в разделе AI-ассистент.

Безопасность

Вкладка «Безопасность»: ограничения входа и управление паролем
Вкладка «Безопасность»: ограничения входа и управление паролем

Все настройки этой вкладки ответственные: любая из них может закрыть вход клиентам. Панель сохранения показывает последствия и пишет правку в аудит.

Мобильное

Вкладка «Мобильное»: версии Android и iOS, ссылки в сторы, тексты обновления
Вкладка «Мобильное»: версии, ссылки в сторы, тексты обновления
flowchart LR
    A["Приложение при запуске
сообщает свою версию"] --> B{"Меньше
минимальной?"} B -->|"да"| F["Обязательное обновление:
работать нельзя,
только перейти в магазин"] B -->|"нет"| C{"Старше текущей
дольше порога?"} C -->|"да"| S["Мягкое предложение:
«доступна новая версия»,
можно отложить"] C -->|"нет"| OK["Работает как есть"]

Область действия настроек и организации

На одной инсталляции живут несколько организаций, у каждой свой домен личного кабинета. Настройка может быть общей — действует на все организации, или своей — принадлежит одной.

Карточки настроек с бейджами области действия и галереей фонов
Карточки настроек с бейджами области действия и галереей фонов

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

Поля с пометками «унаследовано» и «своя» при выбранной организации
Поля с пометками «унаследовано» и «своя» при выбранной организации

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

Какие настройки переопределяются

ГруппаЧто входитМеханизм
Брендингфон входа, баннер, цвет, PWA, ссылка на сайт LK_SETTING_ORG + резолвер
Мобильноетексты обновления, push, особенности
Функциивидимость разделов, обещанный платёж
Безопасностьпароли, блокировки, привязка по IP
Способы входаVK / Telegram / Apple / Google / Яндекс / passkey LKAuthOrg
AI-чатканалы, автоэскалация, оценки LKAiChatOrg

Состав групп задаётся настройкой LK_ORG_OVERRIDABLE_GROUPS, весь механизм выключается одним LK_ORG_OVERRIDES_ENABLED. Резолвер работает «fail-open»: если переопределения недоступны, ЛК берёт общее значение — настройки не повод не пустить клиента в кабинет.

Обзор: у кого что включено

Матрица возможностей по организациям и история изменений настроек
Матрица возможностей по организациям и история изменений настроек

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

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

Поиск, сохранение и проверки

Поиск по настройкам ЛК по сочетанию Ctrl+K
Поиск по настройкам ЛК по сочетанию Ctrl+K
Журнал последних изменений настроек: названия настроек и «вкл/выкл» вместо имён ключей
Журнал правок: названия настроек и «вкл/выкл» вместо имён ключей

В разделе не называются поставщики и модели нейросетей — везде просто «AI»: оператору настроек кабинета это не нужно, а имена моделей меняются.

Фон страницы входа

Фон настраивается в Брендинг → Фон страницы логина.

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

Мобильные приложения и Public API

ЛК продублирован приложениями Android (Google Play) и iOS (App Store / TestFlight) на Flutter. Приложения используют Public Mobile API (/mobile-api/v1/, JWT-авторизация): баланс/тариф/блокировки, платежи, тарифы, услуги, заявки поддержки, AI-чат, регистрация push-токена.

Force-update

В админке (вкладка «Мобильное») задаются текущая и минимальная версии Android/iOS. Если у клиента версия старее минимальной — приложение показывает диалог обязательного обновления со ссылкой в стор; для версий между минимальной и текущей — мягкое предложение обновиться.

Push-уведомления (Firebase)

Push работают при загруженном файле сервисного аккаунта firebase-key.json и включаются на странице Сообщения → Push. Низкий баланс, истечение обещанного платежа и рассылки оператора уходят пушами в приложение. Расписание отправки — глобальное (Настройки системы → Сообщения).

Скриншоты и обложка: gs://uspeshnyy-projects/smit/billing/lk_v1206/. Production: /lk/.