Skip to main content

Channels

A channel is a delivery method for a notification. A campaign picks one or more channels; the SDK call site never references them. Each channel has its own configuration and its own template — but the same orchestrator output drives all channels of a single campaign.

TL;DR

  • Notification Center — in-app widget, real-time via real-time stream. Available today.
  • Email — transactional + marketing email, written into the codebase, scheduled to ship next.
  • Channel choice is per campaign, not per call. Adding email to an existing campaign is a dashboard change.

Notification Center (in-app)

The Notification Center is the in-app widget channel — a bell icon with an unread badge and a dropdown list of notifications. It’s available through three SDKs that wrap the same widget:

React

NotifizzInbox component.

Angular

<notifizz-bell> standalone component.

Vanilla JS

createNotifizz() API.

What it provides

  • Default UI — bell + dropdown out of the box, zero styling required.
  • Custom bell — replace the default with your own component while Notifizz manages data and state.
  • Headless mode — skip the bell entirely, build a fully bespoke notification UI from the SDK’s state stream.
  • Real-time delivery — new messages appear the moment they’re written.
Real-time delivery for the widget uses the real-time stream listener — the widget subscribes to the user’s notification document, the backend delivers new messages to the inbox. The dashboard activity log uses SSE for a different concern — don’t confuse the two.

State model

All NC SDKs expose the same NotifizzState object:
PropertyTypeDescription
isReadybooleanWidget loaded and authenticated.
isOpenbooleanDropdown is open.
unreadCountnumberCurrent unread count.
lastUpdatednumberTimestamp (ms) of the last state change.
hasErrorboolean?true if an auth or network error occurred.
errorCodestring?Error identifier when hasError is true.
Subscribe to changes (e.g. update the page title with the unread count) — see Notification Center overview.

Email

Email is the next channel. Notifizz models it the same way as the Notification Center: a campaign step picks an email notificationConfig (a stored email template), the orchestrator builds the recipient list, the email channel processor renders the template and dispatches.

Customer-facing setup

  • Sender identity — verify a sending domain (DKIM / SPF / DMARC); configure the From address in the dashboard.
  • Template editor — the same dashboard editor that powers NC templates, with email-specific blocks (subject, preheader, …).
  • Tracking — open / click events report back via Postmark inbound webhooks and feed the campaign’s stats funnel.
Email is wired in the codebase but the queue dispatch path is not flipped on yet. The docs describe the customer-facing surface as it will ship. Track the docs gap audit for status.

One campaign, multiple channels

A single campaign can pick more than one notificationConfig step — for example, an in-app NC message and an email. The orchestrator resolves recipients once; each channel processor renders its own template against the same recipient list. There is no duplicate orchestration, no double counting in stats.

Future channels

Push notifications and SMS are on the roadmap. The shape stays the same: a campaign step picks a notificationConfig whose channelType determines the dispatcher. Adding a new channel to an existing campaign will be a dashboard change.

FAQ

Yes — once email ships. Add an email step to the campaign alongside the NC step. The orchestrator resolves recipients once; both channels deliver to that list with their own templates.
Most likely the email queue dispatch hasn’t shipped yet (see the Note above). Until then, treat email-channel campaigns as Editing. Once dispatch flips on, deliverability problems usually trace to the sending domain not having DKIM/SPF set up — verify in the dashboard.
Not at launch. The built-in dispatcher uses Notifizz’s provider so deliverability is handled for you. BYO-provider is on the longer-term roadmap.
On each delivery’s stats funnel and on the campaign’s aggregated metrics. The widget reports NC read / opened / clicked directly via POST /v1/notification/event/register; email reports the same shape via inbound webhooks. See delivery history & stats.
client.send() and the direct NC track route were removed — they let the call site bypass the orchestrator entirely, which contradicts the event-driven model. Channels are a campaign decision now, not a call-site one.
Acceptance is millisecond-fast. End-to-end depends on orchestrator complexity. Simple campaigns (no enricher) deliver in under a second; campaigns with cold enrichers can take a few seconds. The widget receives the inbox write the moment it commits.

See also

Notification Center overview

Lifecycle, state model, custom bell, headless mode.

How Notifizz works

The event-driven pipeline, end to end.

Frontend quickstart

Render the NC widget in five minutes.

Authentication

How users authenticate to the widget.