How Enbbox Works
Complete architecture overview of Enbbox notification infrastructure — how workflows, triggers, subscribers, projects, and channels work together to deliver multi-channel notifications at scale.
How Enbbox Works
TL;DR — Your app triggers a workflow via the API → Enbbox executes each step (email, SMS, push, in-app, chat) in order, respecting delays, digests, and conditions → Notifications are delivered through 21+ integrated providers → You track everything in real-time on the dashboard.
Enbbox is a notification infrastructure built around the concept of workflows, projects, and subscriber-based delivery. It centralizes multi-channel messaging and supports real-time in-app experiences through a customizable Inbox component.
Architecture Overview
At its core, Enbbox uses workflows to orchestrate how notifications are sent, step by step, to different channels like email, SMS, in-app, push, and chat. Each workflow is triggered by your application and executed in the context of a specific project.
Your Application → Trigger Event → Enbbox Workflow → Channel Steps → SubscriberArchitecture Highlights
| Component | Technology | Purpose |
|---|---|---|
| Backend | Rust | High-performance notification processing |
| Analytics | ClickHouse | Real-time activity tracking and delivery monitoring |
| Dashboard | Next.js 16 | Workflow builder, activity feed, and management UI |
| Authentication | Ory Hydra (OIDC) | Secure identity management with PKCE |
| SDKs | TypeScript, Flutter | Cross-platform client libraries |
Core Concepts
Projects
A Project is an isolated workspace in Enbbox. Each project contains its own workflows, subscribers, integrations, and API keys. You can create multiple projects to separate different applications or teams.
- Isolated data — Each project has its own subscribers, workflows, and activity history
- Separate credentials — Each project has its own API key for triggering notifications
Workflows
A Workflow defines the sequence of steps a notification goes through. Workflows support channel steps (email, SMS, in-app, push, chat), action steps (delay, digest, custom), and conditional logic. For example:
- Send an in-app notification
- Wait 1 hour
- If unread, send an email
- Wait 24 hours
- If still unread, send an SMS
Triggers
A Trigger is an API call from your application that starts a workflow execution. Each trigger includes:
- Workflow identifier — Which workflow to execute
- Subscriber(s) — Who to notify
- Payload — Dynamic data to populate notification content
await enbbox.trigger("order-shipped", {
to: { subscriberId: "user-123" },
payload: {
orderNumber: "ORD-456",
trackingUrl: "https://...",
},
});Subscribers
A Subscriber is a user who receives notifications. Each subscriber has a unique subscriberId and can have:
- Contact details — Email, phone number, device tokens
- Preferences — Channel and workflow notification preferences
- Custom data — Arbitrary metadata for personalization
- Credentials — Device tokens for push, chat IDs for messaging channels
Topics
Topics are named groups of subscribers. Instead of triggering a workflow for each subscriber individually, you can trigger it for a topic, and all subscribed members receive the notification. This is ideal for broadcast scenarios like product announcements or system alerts.
Channels and Integrations
Enbbox supports 5 notification channels, each backed by configurable Integrations (provider connections):
| Channel | Example Providers | Use Case |
|---|---|---|
| In-App | Built-in Inbox component | Real-time alerts and updates |
| SendGrid, Resend, Amazon SES, Postmark | Transactional and marketing | |
| SMS | Twilio, Plivo, Vonage | Critical alerts and OTPs |
| Push | Firebase Cloud Messaging, APNs | Mobile engagement |
| Chat | Slack, Discord, Microsoft Teams | Team collaboration alerts |
How It All Connects
- Configure — Set up integrations, create workflows, define notification content
- Trigger — Your application fires a trigger event with subscriber and payload data
- Execute — Enbbox processes the workflow steps in order, respecting delays, digests, and conditions
- Deliver — Notifications are sent through the configured channel providers
- Track — Monitor delivery status, engagement, and subscriber preferences in the dashboard
Next Steps
- Quickstart — Set up your first workflow in under 5 minutes
- Workflows — Deep dive into workflow design
- Subscribers — Learn about subscriber management
- API Reference — Full REST API documentation