Go to App
← Back to Documentation

Smart Notifications

Multi-channel notification system with routing based on event types and severity. Supports Email, Telegram, WhatsApp, and Webhooks with acknowledgment tracking.

Notification Channels

Email SMTP

Send notifications via any SMTP provider (Gmail, Outlook, AWS SES, etc.)

  • HTML & text support
  • Attachment support
  • Custom templates

Telegram Bot

Send messages via Telegram Bot API to users or groups

  • Bot token authentication
  • Group/channel support
  • Markdown formatting

WhatsApp Business

WhatsApp Business API integration for official business messaging

  • Template messages
  • Session-based messaging
  • Rich media support

Webhook

Send events to external systems with HMAC-signed payloads

  • HMAC SHA-256 signing
  • Custom headers
  • Retry logic

Event Types

Event TypeDescriptionDefault Severity
obligation_dueObligation approaching due datemedium
obligation_overdueObligation past due datehigh
ssl_expirySSL certificate expiring soonhigh
ssl_failureSSL check failedcritical
digestDaily/weekly summary digestlow

Notification Flow

1. Event Generation
System event triggers (obligation due, SSL expiring, etc.)
2. Route Resolution
Matching notification routes based on event type, severity, and branch
3. Queue & Deduplicate
Events queued with fingerprint deduplication
4. Send via Connectors
Process queued events through configured connectors
5. Track & Retry
Track delivery status with automatic retry on failure

Notification Statuses

Queued

Waiting to be processed

Processing

Currently being sent

Sent

Successfully delivered

Failed

Delivery failed, will retry

Dead Letter

Max retries exceeded

Acknowledged

User acknowledged receipt

Retry & Dead Letter

Failed notifications are automatically retried with exponential backoff. After max retries, they move to dead letter for manual review.

• Retry schedule: 1min, 5min, 15min, 30min, 1hour

• Max retries: 5 attempts

• Dead letter: Manual review and replay

• Cron job: /api/cron/retries every 5 minutes

Acknowledgment Tracking

Users can acknowledge notifications to confirm receipt. This creates an audit trail and prevents repeated alerts for the same issue.

// Acknowledge notification
POST /api/notifications/:id/acknowledge
{
  "note": "Received, will renew certificate this week"
}

// Response includes:
// - ackByUserId
// - ackAt timestamp
// - ackNote