1In one sentence#
The Notifications module is LumosCRM's outbound messaging pipeline — when something important happens (an event reminder is due, a document signature is requested, a vendor brief goes out), it turns that event into a templated, queued email, tracks whether delivery succeeded, and records every message sent.
It's the plumbing that makes the CRM reach out — reliably, on template, and auditably.
2Who it's for#
Mostly invisible to end users — they experience it as the emails that just arrive at the right time. It matters to:
| Role | What they get |
|---|---|
| Operations | Confidence that reminders and notifications actually go out. |
| Compliance | A record of every message sent, to whom, and whether it landed. |
| Engineering | A clean, event-driven delivery layer other modules hook into. |
3The core idea: events in, tracked messages out#
Other modules don't send emails themselves — they raise an event, and the Notifications module handles delivery:
A module fires an event
(reminder due · signature requested · brief sent · …)
│
Notification listener
│
Templated email, queued for delivery
│
Sent ──▶ delivery status tracked ──▶ message recorded (audit)
This keeps every other module simple ("just announce what happened") while delivery, templating, tracking, and logging live in one place.
4Capabilities at a glance#
| Capability | What it means |
|---|---|
| Event-driven | Modules raise events; notifications are sent in response — no module sends mail directly. |
| Templated email | Messages are rendered from templates for consistent, branded output. |
| Queued delivery | Emails are sent via the queue, so the app never blocks waiting on mail. |
| Delivery tracking | Each message's delivery status (sent/failed) is tracked. |
| Message record | Every notification is stored as a record, with an audit log. |
| Deduplication | A dedup key prevents the same notification being sent twice. |
| Classification-aware | Sensitive notifications are handled according to their classification. |
5What triggers notifications today#
The pipeline responds to key business events across the CRM, including:
- Event reminders becoming due (the pre-event brief, day-of reminder, feedback request, etc., from the Events module).
- Document signature requests and reminders.
- Vendor briefs being sent to shortlisted suppliers.
- Other module events wired to announce themselves after their data is safely committed.
Each is delivered as a templated email to the resolved recipient (client, staff, or vendor), and the outcome is tracked.
6Reliability & governance#
- After-commit dispatch: notifications fire only after the triggering change is safely saved, so a message is never sent for something that didn't actually happen.
- Status tracking: the pipeline records whether each message was sent or failed, using the mail framework's delivery signals.
- Deduplication: a dedup key stops duplicate sends.
- Audit: every message is logged for accountability and compliance.
For marketing: the live delivery channel today is email. Other channels (WhatsApp, SMS, push, in-app) are referenced by the modules that schedule reminders and are designed to activate as those delivery integrations come online — describe non-email channels as planned, not live.
7Use cases & scenarios#
Use case A — The reminder that just arrives#
An event manager schedules a "pre-event brief" reminder. The Events module fires it when due; the Notifications module renders the templated email and sends it to the assigned staff — tracked and logged.
Use case B — Chasing a signature#
A document needs signing. A signature reminder event triggers a templated nudge to the signer, and the message is recorded.
Use case C — Briefing vendors#
A sourcing team sends a brief to four shortlisted vendors; each receives a tailored, templated email, and the pipeline records the four sends.
8Glossary#
| Term | Meaning |
|---|---|
| Event-driven | Sending in response to a business event rather than a direct call. |
| Templated email | A message rendered from a reusable template. |
| Queued delivery | Sending via a background queue so the app stays responsive. |
| Delivery status | Whether a message was sent or failed. |
| Dedup key | A guard that prevents the same notification being sent twice. |
This document describes the Notifications module as currently built: an event-driven, queued, templated email delivery pipeline with delivery tracking, deduplication, and a full message audit log. Non-email channels are planned, not live.