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; new messages appear instantly, no polling on your side.
  • Web push — browser notifications that reach the device even when your product’s tab is closed.
  • Email — transactional and marketing email, with sender-domain authentication and deliverability monitoring.
  • 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.
The widget holds a real-time connection scoped to the signed-in user: new messages reach the dropdown as they are written, with no polling. 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: Subscribe to changes (e.g. update the page title with the unread count) — see Notification Center overview.

Web push

Web push delivers a system notification to the user’s device even when your product’s tab is closed. Notifizz sends it under your own identity — a per-environment VAPID key pair — straight to the browsers’ push services, with no third-party push provider in the loop.

Setup

  • Environment key — generate the key pair in Settings → Web push. The public half is served to your frontend automatically; the private half never leaves the Notifizz backend.
  • Service worker — serve notifizz-sw.js at the root of your application’s origin. It’s a static file, downloadable from the same settings page.
  • Opt-in — the Notification Center widget shows a dismissible soft prompt, or you drive the opt-in from your own button with the SDK. The native browser dialog only ever fires on the user’s explicit click.
Recipients are matched on the same user id the widget authenticates with — no separate audience to manage. Payloads are end-to-end encrypted (RFC 8291): the push services relay bytes they cannot read. See web push for the SDK surface and platforms & privacy for what each OS renders.

Email

Notifizz models email 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 renders the template and dispatches.

Customer-facing setup

  • Sender identity — authenticate a sending domain (DKIM / return-path / DMARC) in Settings → Email → Domains, then add the From addresses you send from.
  • Template editor — the same dashboard editor that powers NC templates, with email-specific blocks (subject, preheader, …).
  • Tracking — open / click events report back through the sending provider’s delivery webhooks and feed the campaign’s stats funnel. Nothing to configure on your side.
  • Deliverability — bounces and complaints are consumed continuously, one-click unsubscribe is injected on promotional sends, and the reputation of your domain is watched per mailbox provider. See tracking domain and Gmail Postmaster.

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 renders its own template against the same recipient list. There is no duplicate orchestration, no double counting in stats.

Future channels

SMS is 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. 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.
Check the campaign’s send scope first: a real send needs a Live campaign triggered from production. In Review, email only reaches your sandbox testers. If the scope is right, the cause is usually the sending domain — an unverified or degraded DKIM / return-path record fails at the provider, with the reason visible in delivery history.
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.

Web push

Setup, opt-in, and the browser subscription model.

Delivery history & stats

Per-channel funnel, open and click tracking.