Messaging
Central Multi-Channel Notification System
The Messaging component is the central notification system of ELONIQ. It manages all communication channels and ensures reliable delivery of notifications.
Overview
The Messaging component provides a unified notification system for all ELONIQ modules. Messages can be sent to predefined system channels (team channels, webhooks) or directly to individual users.
Two Delivery Modes
- System Channels — Messages to predefined targets (e.g. Discord channel for alerts, Teams channel for status). Configured via webhooks.
- User Providers — Direct messages to individual users via their preferred channel (Discord DM, Teams chat, email, etc.).
Dead Letter Queue
Failed deliveries are placed in the Dead Letter Queue and automatically retried — with exponential backoff (5 min base, max 5 retries). After exhausting all retries, entries can be manually retried.
Features
- Multi-channel support — Email, Discord, Microsoft Teams, Slack, Telegram, browser push and generic webhooks.
- System channels — Predefined channels for automatic notifications to teams, channels or groups.
- User direct messages — Personal notifications to individual users via their preferred channel.
- Dead Letter Queue (DLQ) — Failed webhook deliveries are automatically retried with exponential backoff (max 5 retries).
- Message formats — Support for plain text, HTML, Discord embeds, Teams cards and Slack rich formatting.
- Severity levels — Mark messages as info, warning, error or success.
- Fallback mechanism — Automatically fall back to email when delivery via preferred channel fails.
- Connection testing — Test each provider and channel before production use.
- DLQ statistics — Overview of pending, failed and delivered messages.
Usage
- Open component — Navigate to Components > Messaging in AdminUI.
- Set up system channels — Create channels for the desired targets (Discord webhook, Teams webhook, email group, etc.).
- Test channels — Use the test function to verify delivery for each channel.
- Configure user providers — Set up at least email as a provider. Optionally: Discord bot, Teams app, Slack bot or Telegram bot.
- Connect modules — The modules (ELO Base, Exporter, etc.) use messaging automatically once channels are configured.
- Monitor DLQ — Regularly check the Dead Letter Queue for failed deliveries and fix configuration issues.
Best Practices
- Validate webhook URLs — Test each webhook URL before production use via the test function.
- Monitor DLQ — Regularly check the Dead Letter Queue for failed deliveries.
- Fallback channel — Configure email as a fallback channel, as it is the most reliable.
- One channel per purpose — Create separate system channels for alerts, status messages and user notifications.
- Protect bot tokens — Discord, Slack and Telegram bot tokens are stored encrypted. Never share these in plain text.
- User preferences — Let users choose their preferred channel to increase engagement.
Examples
1. Set Up Discord Alert Channel
System Channel: Name: alerts-discord Type: Discord Webhook URL: https://discord.com/api/webhooks/xxx/yyy Active: true
2. Email as User Provider
User Provider Email: SMTP Host: smtp.company.com SMTP Port: 587 Username: notifications@company.com From: notifications@company.com
3. Teams + Email Combined
System Channels: - teams-status (for status messages) - email-alerts (for critical errors) User Providers: - Teams (for workflow tasks) - Email (as fallback)
4. Generic Webhook for Third-Party Systems
System Channel: Name: erp-webhook Type: Webhook URL: https://erp.company.com/api/notifications Active: true