Skip to main content
Novu provides a way to store subscriber preferences. This allows subscribers, your users, to specify and manage their preferences and customize their notifications experience. Levels of preferences:
  • Workflow channel preferences
  • Subscriber channel preferences per workflow
  • Subscriber global preferences

Workflow channel preferences

Each workflow has its own channel preferences. By default, all channel preferences are enabled. If disabled, the subscriber will not receive notifications for that channel step. Steps to manage workflow channel preferences:
1

Go to the Workflows page

Open the Workflows page in the Novu dashboard.
2

Select a workflow

Click the workflow you want to manage channel preferences for
3

Open channel preferences

A node-based editor will appear. On the right side of the editor, click the Configure channel preferences option
4

Enable or disable all channels

5

Configure step preferences

You will be able to change the preferences for only those steps which are present in the workflow. Non existing channel steps will be disabled.
6

Mark as critical (optional)

The Mark as critical toggle will make this workflow critical. Read more about critical workflows
If a workflow has only in-app and email steps, then it will have only in-app and email preferences.
Workflow channel preferences

Critical workflows

In some cases, you don’t want the subscriber to be able to unsubscribe from mandatory notifications such as Account Verification, Password Reset, etc… In those cases, you can mark a workflow as critical in the workflow channel preferences. Critical workflows are not displayed in subscriber preferences, so subscribers cannot change preferences for that workflow.

Subscriber global preferences

Subscribers can set global channel preferences, which apply across every workflow. For instance, if there are 10 workflows and a subscriber wants to disable SMS notifications for all of them, they can do so with global preferences instead of changing each workflow. Global preferences act as the subscriber’s baseline. If the same subscriber later sets a preference for one specific workflow, that more specific choice wins for that workflow. See Priority of preferences. Preferences

Subscriber channel preferences per workflow

For each workflow, each subscriber has their own channel preferences. Subscribers can manage these preferences from the <Inbox /> Preferences view. Subscriber channel preferences
Inbox displays only channels present in the current workflow.

Priority of preferences

Novu resolves preferences per channel. It layers each type of preference on top of the previous one, from the most general to the most specific, and the most specific layer that defines a channel wins:
  1. Workflow channel preferences defined in code with the Framework
  2. Workflow channel preferences set in the dashboard
  3. Subscriber global preferences
  4. Subscriber channel preferences per workflow
So a subscriber’s per-workflow choice takes precedence over their global choice, and both take precedence over the workflow defaults. The one exception is critical workflows. When a workflow is marked as critical, both subscriber layers are discarded and the workflow channel preferences decide on their own. Examples:
  1. If the email channel is enabled in workflow channel preferences but the subscriber disabled email globally, they will not receive email notifications for this workflow.
  2. If the subscriber disabled email globally but enabled email for this specific workflow, they will receive email notifications for this workflow. The per-workflow preference is more specific than the global one.
  3. If the in-app channel is enabled in workflow channel preferences and the workflow is marked as critical, subscribers cannot change their preferences and will always receive in-app notifications.
Only channels that exist as active steps in the workflow are considered. A channel that the workflow does not use is never resolved, whatever the subscriber set for it globally.

Subscriber preferences APIs

Subscriber preferences can be retrieved and updated using following APIs:

Retrieve subscriber preferences

Update subscriber preferences