At a glance
Sends SMS, email and push messages for every system, with templates and preferences.
Key data
Receives from
- Billing
- Orders
- Collection
- Campaigns
Sends to
- Customers
- Reporting
How it works
The main steps, end to end.
- 1Receive a notification request or event
- 2Check customer preferences and consent
- 3Render the template
- 4Send through the right channel
- 5Track delivery and retry
Core Capabilities
What the Notification Gateway provides
Email Notifications
- Sends transactional emails to subscribers: activation, invoice, cancellation
- Resolves template from Template Management for the triggered event
- Injects subscriber-specific variables into template at render time
- Supports HTML and plain-text email variants
- Tracks delivery status: sent, delivered, bounced, opened
SMS Notifications
- Sends SMS to subscriber MSISDN for time-sensitive alerts
- Service activation SMS, payment confirmation, SIM exchange notification
- Short message content resolved from SMS template
- Supports domestic and international SMS delivery
- High-priority queue for service activation and OTP messages
Push Notifications
- Sends push notifications to subscribed mobile app instances
- Triggered by order events, billing milestones and promotional offers
- Supports rich push with deep-link to relevant app section
- Subscriber opt-in and opt-out managed per notification category
Event Routing
- Subscribes to async event bus topics for notification triggers
- Maps event type to notification channel (email/SMS/push) per subscriber preference
- Evaluates subscriber notification preferences before dispatch
- Suppresses duplicate notifications within configurable deduplication window
Delivery Management
- Tracks delivery status per notification per subscriber
- Retries failed deliveries with exponential backoff
- Dead-letter queue for persistently undeliverable notifications
- Delivery receipt stored for audit and regulatory compliance
Notification Analytics
- Tracks delivery rates, open rates and bounce rates per template
- Identifies undeliverable subscriber addresses for care team action
- Reports notification volume per event type and channel
- Feeds into subscriber engagement analytics
Storage & Persistence
How and where NotificationGateway stores its data
Document Data Store
- Notification delivery log: event type, channel, timestamp, status
- Retry attempt records per failed notification
- Dead-letter records for persistently undeliverable messages
- Subscriber preference records: opted-in channels per category
Async Event Bus
- Platform event subscriptions: order complete, invoice generated, payment failed
- Delivery confirmation events from email/SMS/push services
- Deduplication window tracking per subscriber per event type
Channel Providers
- Email delivery service: SMTP/API-based sending
- SMS gateway: carrier-grade SMS delivery
- Push notification service: mobile app push infrastructure
Design Principles
Key architectural decisions behind the Notification Gateway
One Gateway, All Channels
Every service that needs to reach a subscriber — billing, order management, marketing — sends a single event. The Notification Gateway decides the channel (email/SMS/push) based on subscriber preferences, event priority and template availability. No service has direct channel dependencies.
Event-driven Dispatch
Notifications are triggered by platform events on the async event bus, not by direct API calls from source services. This decouples the timing of the business event (order completed) from the subscriber communication, allowing retry, batching and deduplication.
Delivery Guarantee over Speed
The gateway prioritises delivery reliability over raw speed. Every notification is tracked, retried on failure and dead-lettered when undeliverable. This ensures regulatory-required communications (invoice, disconnection notice) are always recorded as sent or explicitly failed.
Deliver messages when each customer is most likely to read them.
Limit messages per customer across all systems and channels.
More in 30 AI & ML use cases and AIOps for BSS.