Документация LMS версия 2026.09.180

Документация/Начало/Чем отличается технически

Чем отличается технически

Страница описывает различия в устройстве и список того, чего в продукте нет. Выводов о том, что лучше, здесь нет: выбор зависит от того, что вы делаете, и делаете его вы.

Сравнение — с GetCourse: это платформа, с которой чаще всего переходят. Сведения о ней взяты из их справочного центра, ответов их поддержки и практики интеграторов.

API: два независимых против одного #

У GetCourse два API, независимых друг от друга: разные базовые адреса, разная аутентификация, разный формат тела запроса, разные конверты ответа и разные названия одних и тех же сущностей.

Классическое API умеет три действия: создать пользователя, создать заказ, запустить асинхронный экспорт. Формат — JSON, закодированный в base64, внутри application/x-www-form-urlencoded. Чтения одного объекта нет: только массовая выгрузка. Лимит экспорта — 100 запросов за 2 часа на весь аккаунт, экспорт однопоточный, каждый опрос готовности расходует квоту.

Tech API — около 50 методов, включая уроки, диалоги, вебинары. Ключ выдаётся по анкете, документация закрыта в robots.txt. Офферы доступны только на чтение, учебную структуру создавать нельзя.

Здесь одно API: один базовый адрес, одна аутентификация, один формат тела, один конверт ошибок, один справочник событий. Ключ школа заводит в своих настройках.

Практическое различие для интегратора: чтобы узнать состояние одного заказа в GetCourse, нужно заказать выгрузку всех и дождаться файла; здесь это запрос по идентификатору.

Оговорка о состоянии: работающего API здесь пока нет. Первый срез — в разработке (состав и граница), остальное — замысел (Проект API).

Вебхуки #

GetCourse Здесь
Подпись нет; защита — неугадываемый адрес HMAC-SHA256 по сырому телу
Повторы при неудаче нет 6 попыток примерно за сутки
Переигрывание пропущенного нет по диапазону дат или списку событий
Формат события три несовместимые схемы у разных семейств один конверт на все события

Три несовместимые схемы означают, что единый обработчик написать нельзя: у заказов одно имя поля события и время в ISO, у диалогов числовой идентификатор и время в другом формате, у звонков третья схема.

Устройство здесь описано на странице Вебхуки; реализации ещё нет.

Права: галочки против ролей #

У GetCourse ролей как сущности нет. Есть поле «тип» в карточке человека и около семидесяти отдельных галочек прав, которые расставляются каждому сотруднику по одной, руками. Шаблонов, групп и копирования прав с человека на человека нет.

Три технических следствия:

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

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

Различие в умолчании: у GetCourse куратор по умолчанию видит всех учеников тренинга, включая чужие ответы, а «только своих» включается галочкой в каждом тренинге отдельно. Здесь куратор по умолчанию видит только своих.

Кастомизация: классы вёрстки против объявленного контракта #

Распространённый механизм — задокументировать классы элементов, чтобы школа писала по ним свой CSS. Здесь он не используется, и причина техническая.

Разметка собрана из утилитарных классов. Если объявить их публичными, то, во-первых, правило .text-body { font-size: 20px } меняет размер везде, где этот класс встречается: в карточке курса, в подписи к платежу, в письме, в кнопке. Во-вторых, при перевёрстке класс на элементе меняется, и оформление перестаёт применяться молча — CSS не падает при неверном селекторе, ошибки в логах нет.

Механизм здесь — два объявленных слоя:

  • переменные оформления — имена, которые не переименовываются; переопределение меняет вид везде, где переменная используется (справочник);
  • якоря — стабильные атрибуты на ключевых элементах для точечных правил (Якоря).

Внутренняя разметка при этом остаётся изменяемой. Якорей в продукте пока нет ни одного.

Выгрузка данных #

GetCourse: выгрузка по частям через асинхронный экспорт, в пределах квоты 100 запросов за 2 часа на аккаунт; курсы, уроки, ответы учеников, промокоды и сегменты API не отдаёт.

Здесь: база PostgreSQL на вашем сервере, доступ к ней у вас; плюс спроектирована выгрузка школы одним архивом, включая содержимое курсов и файлы. Реализации выгрузки пока нет.

Что это означает при переходе — Перенос данных с GetCourse.

Чего в продукте нет #

Список фактический.

Работающего API. Первый срез в разработке (состав).

MCP-сервера. Внешний агент подключается по машинным выходам документации, готовых инструментов пока нет (подробнее). Встроенный помощник школы при этом работает — ИИ-агент школы.

Якорей оформления — ни одного. Переменные работают.

Автоматического переноса с GetCourse. Модуль спроектирован, не написан.

Что из этого списка ушло за сентябрь 2026. Здесь значились продажи, рассылки, сценарии и вебинары, а следом — приём платежей и возврат денег. Всё это теперь есть и описано: Продажи, Рассылки, Сценарии, Вебинары. Плюс появилась почта школы с подтверждением адреса, встроенный ИИ-агент, касса ЮKassa и возврат денег.

Приложений в App Store и Google Play — не будет. Не «пока нет»: одна установка — одна школа, значит каждой школе понадобилось бы своё приложение со своим названием, то есть сотни публикаций, сотни ревью, аккаунт разработчика и ежегодные платежи на стороне школы. Вместо этого кабинет ученика ставится на домашний экран как PWA, а для Telegram есть отдельная оболочка; обе показывают один и тот же кабинет.

Зрелости. GetCourse работает десять лет; первая установка этого продукта на живой сервер прошла в августе 2026 года и дала девять находок.

Что дальше #

Эта страница в Markdown