Understanding the core concepts of Dialect’s notification system: how topics organize notifications, channels deliver them, and subscribers receive them.
Understanding the core concepts of Dialect’s notification system: how topics organize notifications, channels deliver them, and subscribers receive them.
Dialect’s notification system is built around three fundamental concepts that work together to create flexible, scalable notification experiences.
Topics define what notifications are about. They categorize and organize different types of alerts your application sends.
Think of topics as notification categories or event types:
1. Granular but not overwhelming
Choose topics that are specific enough to be actionable but not so granular that they become overwhelming.
Good examples:
Avoid:
2. Clear naming
Use clear, descriptive names that users can easily understand.
Good examples:
Avoid technical jargon like:
3. User-focused descriptions
Write descriptions that focus on user benefits rather than technical details.
Good example: “Get alerted before your DeFi positions are at risk of liquidation”
Instead of: “Automated liquidation risk calculation notifications”
Channels define how notifications are delivered to users. Each channel represents a different communication method.
Channel | Description | Content Support | Best For |
---|---|---|---|
Email notifications | HTML formatting, rich content | Detailed updates, newsletters, reports | |
TELEGRAM | Telegram bot messages | Text only, no images | Real-time alerts, simple notifications |
IN_APP | In-application notifications | Text + single image (1:1 ratio) | User engagement, visual notifications |
PUSH | Mobile push notifications | Text only | Critical mobile alerts (app owners only) |
<img>
tags (not file uploads)TELEGRAM
IN_APP
PUSH (App Owners Only)
Subscribers represent who receives notifications. Each subscriber is a user who has opted in to receive alerts from your application.
There are three ways to subscribe users to notifications:
React Widget: Users can subscribe by clicking the notification bell and signing a message to verify their wallet ownership. This is the simplest way to get started and works well for most dapps. For more information checkout our quickstart section.
API Integration: For wallet applications that can sign messages on behalf of users, we recommend using our API to programmatically subscribe users. This provides more control over the subscription flow and a smoother user experience.
SDK Integration: Use our TypeScript/JavaScript SDK to programmatically manage subscriptions from your backend or frontend applications. This approach offers the most flexibility and is ideal for custom subscription flows and backend integrations. Learn more in our SDK documentation.
Now that you understand the core concepts: