Magnum: уведомления и LMS

Два потока уведомлений на одном бэкенде. Первый — про обучение: интеграция с LMS Moko и Magnum Space, чтобы сотрудники реально проходили назначенные курсы. Второй — рассылочный инструмент, через который HR говорит с конкретным магазином, отделом или офисом, а не со всей компанией сразу. Интересная часть проекта — LMS. Платформы не отдают события, поэтому всю логику «у тебя новый курс / срок через три дня / срок прошёл» собирает сама система уведомлений.

Magnum Клиент
Telegram · WhatsApp Каналы
Moko · Magnum Space Источники
Проблема

Обучение назначали. Обучение не заканчивали.

LMS умела назначить курс, но не умела никого подгонять. Сотрудник забывал. Руководитель не видел, кто отстаёт. Дедлайны срывались — обычно тихо.

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

  • У LMS нет push-событий — всё было либо polling, либо незаметно.
  • Сотрудники срывали сроки, потому что их никто не напоминал в нужный момент.
  • У руководителя не было видимости, кто из его команды не закрыл курс.
  • Массовые внутренние коммуникации жили в личных чатах руководителей.
Решение

Движок уведомлений, который сам строит себе события.

Мы синхронизируем LMS по расписанию, дифаем состояние и генерируем события, которых платформа не отдаёт. Дальше работает движок правил: уведомление при назначении курса, повторы каждые 7 дней пока курс открыт, уведомление о завершении и эскалация руководителю, если дедлайн прошёл.

На стороне рассылок — админка, в которой HR выбирает аудиторию: магазин, отдел, офис, список номеров — и отправляет сообщение в Telegram и WhatsApp одновременно.

  1. 01

    Синхронизировать LMS

    Регулярный джоб тянет назначения и статусы из Moko и Magnum Space, собирает события, которых платформы не отдают, и кормит ими нотификатор.

  2. 02

    Напоминать без перегруза

    Сообщение при назначении. Повтор каждые 7 дней пока курс открыт. Сообщение о завершении. Уведомление о просроченном сроке с пингом руководителю.

  3. 03

    Эскалировать в нужный момент

    Просроченные дедлайны уходят и сотруднику, и его руководителю — разговор уходит из инбокса HR.

  4. 04

    Рассылать с таргетингом

    HR собирает сообщение в админке и выбирает аудиторию по магазину, отделу, офису или списку номеров. Один шаг, два канала.

  5. 05

    Работать в Telegram и WhatsApp

    Один и тот же payload, оба канала — берётся тот, которым сотрудник уже пользуется.

Техническая часть

Хороший полинг — и всё остальное становится простым.

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

На рассылочной стороне переиспользуется тот же слой доставки. Админка превращает «этот отдел, этот офис» в список номеров, который уходит в тот же пайплайн Telegram + WhatsApp.

01

Периодическая синхронизация с Moko и Magnum Space, диф статусов и генерация событий.

02

Движок правил напоминаний: назначение, повторы каждые 7 дней, завершение, просрочка.

03

Эскалация руководителю, если сотрудник пропускает дедлайн.

04

Сегментированные рассылки с таргетингом по магазинам, отделам, офисам и спискам номеров.

05

Общий слой доставки для Telegram и WhatsApp.

Стек
Python бэкенд платформы
Telegram канал уведомлений
WhatsApp второй канал доставки
Moko · Magnum Space источники LMS
Эскалации напоминания и руководитель
Кастомная админка рассылки без кода
Итог

Что изменилось

01

Обучение перестаёт тихо проседать

Сотрудники получают напоминания в нужный момент, а руководитель видит, кто отстаёт — разговор о сроке случается до того, как он сорван.

02

HR говорит с нужной комнатой

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

03

Один пайплайн, два канала

Telegram и WhatsApp работают на одном бэкенде — новый шаблон, новая аудитория или новое правило настраиваются один раз.

Внутренние коммуникации держатся на пересылке сообщений между руководителями?

Помогаем операционным командам и HR поставить за ежедневной работой нормальную платформу уведомлений: синхронизацию с LMS там, где LMS не пушит, сегментированные рассылки и аккуратную доставку в канал, которым сотрудник уже пользуется.

Техническое задание (необязательно)