Magnum Notifications & LMS

Two notification streams on one backend. The first one is tied to the LMS — Moko and Magnum Space — so employees actually finish the training they have been assigned. The second one is a broadcast tool HR uses to talk to a specific branch, department or office instead of the whole company. What makes the project interesting is the LMS side. The platforms do not emit events, so all of the "you have a new course" / "your deadline is in three days" logic has to be reconstructed by the notification system itself.

Magnum training reminder in Telegram
Magnum broadcast admin panel with branch and department targeting
Problem

Training was assigned. Training was not finished.

The LMS could assign courses but it could not chase anyone. Employees would forget. Managers had no easy view of who was behind. Deadlines slipped, often quietly.

On top of that, the company had no clean way to send a message to "everyone at this branch" or "everyone in this department". HR had to coordinate that by hand across managers and chats.

  • No native push events from the LMS — everything was poll-based or invisible.
  • Employees missed deadlines because nobody reminded them at the right moment.
  • Managers had no visibility into who in their team had not finished a course.
  • Mass internal communication had no place to live except for managers' personal chats.
Training assignment vs. completion gap
Solution

A notification engine that builds its own events.

We sync the LMS on a schedule, diff the state, and generate the events the platform never emitted. From there a reminder rules engine takes over: a message when a course is assigned, follow-ups every seven days while it is still open, a completion notice when it is done, and an escalation to the employee's manager when a deadline passes.

On the broadcast side, an admin panel lets HR pick the audience — a branch, a department, an office, a phone list — and ship a message to Telegram and WhatsApp at once.

Magnum notifications flow from LMS sync to messenger delivery

Sync the LMS

A scheduled job pulls course assignments and status changes from Moko and Magnum Space, builds the events the platforms do not emit, and feeds them into the notifier.

Remind without nagging

Assignment notice on day one. Seven-day reminders while the course is open. A completion notice. A deadline-miss notice that also pings the manager.

Escalate at the right time

Missed deadlines go to the employee and to the manager, so the conversation moves out of HR's inbox.

Broadcast with targeting

HR composes a message in the admin panel and picks the audience by branch, department, office or phone list. One step, two channels.

Run on Telegram and WhatsApp

Same payload, both channels — pick whichever the employee already uses.

Technical work

Polling done well, so the rest can be simple.

The LMS gave us status snapshots, not events. So the heavy lifting is on our side: pull frequently enough to be useful, diff cheaply, and treat the diff as the real source of truth for everything downstream. Once the events are clean, the reminder rules and the channel routing are straightforward.

The broadcast side reuses the same delivery layer. The admin panel turns "this department, this office" into a phone list that flows into the same Telegram + WhatsApp pipeline.

Periodic sync with Moko and Magnum Space, status diffing and event generation.
Reminder rules engine: assignment notice, 7-day reminders, completion, deadline miss.
Manager escalation when an employee misses a deadline.
Segmented broadcasts with targeting by branch, department, office and phone list.
Shared delivery layer for Telegram and WhatsApp.
Python backendTelegramWhatsAppMoko LMSMagnum Space LMSCustom admin panel

What changed

Training stops slipping silently

Employees get reminded at the right moments and managers see who is behind, so the deadline conversation happens before it is too late.

HR talks to the right room

Targeted broadcasts replace the "forward this to your branch" chain. The message reaches the people it was meant for and skips the rest.

One pipeline, two channels

Telegram and WhatsApp run off the same backend, so a new template, audience or rule is set up once.

Tell us what you're building.

Start with a few details

We reply within one business day. Then Azamat joins every first call personally, so you get an honest scope, budget, and fit from the person responsible for delivery.

Brief (optional)