notiflowsDocs
Concepts

Preferences

Learn about user preferences

Preferences

Preferences give users control over their notification experience. They allow individuals to customize which notifications they receive, through which channels, and when those notifications are delivered.

Understanding Preferences

A user's preference set is a collection of settings that determine their notification behavior. These settings can control:

  • Which notiflows they want to receive notifications from
  • Which channels they prefer for different types of notifications
  • When they want to receive notifications (quiet hours, time zones)
  • Overall notification frequency and volume

Preference Levels

Preferences in Notiflows operate at multiple levels, providing both granular control and sensible defaults.

Channel Type Preferences

Channel types are broad categories of communication methods, such as email, SMS, push notifications, or in-app messages. Users can set preferences at this level to control entire categories of notifications. For example, a user might disable all SMS notifications while keeping email enabled.

Channel Preferences

Channels are specific instances within channel types. For example, you might have multiple email channels for different purposes (transactional emails, marketing emails, system alerts). Channel preferences provide more granular control, allowing users to opt into or out of specific channels while keeping others active.

Channel preferences take precedence over channel type preferences. If a user disables a specific channel, that setting overrides any channel type preference.

Notiflow Preferences

Users can control preferences for individual notiflows. This allows them to receive some types of notifications while opting out of others. For example, a user might want order confirmations but not promotional emails.

Building a Preference Center

A preference center is a user interface where users can view and modify their notification preferences. Here's how to implement one:

1. Establish Default Preferences

Create a default preference set that new users inherit when they sign up. This ensures all users start with a sensible baseline configuration that you can customize.

2. Retrieve Current Preferences

Use the preferences API to fetch a user's current preference settings. This data will inform what options to display and which toggles should be enabled or disabled.

3. Design the Interface

Create a user-friendly interface that:

  • Groups related preferences logically
  • Uses clear labels and descriptions
  • Provides immediate feedback when preferences are updated
  • Explains the impact of each preference choice

4. Update Preferences

When users make changes, use the preferences API to save their selections. Notiflows will immediately apply these preferences to future notifications.

Preference Hierarchy

When determining whether to send a notification, Notiflows evaluates preferences in this order:

  1. Notiflow-level settings: If a notiflow is disabled for a user, no notifications are sent
  2. Channel preferences: If a specific channel is disabled, that channel is skipped
  3. Channel type preferences: If an entire channel type is disabled, all channels of that type are skipped
  4. Global preferences: Overall user settings that apply broadly

This hierarchy ensures that the most specific preference always takes precedence, giving users precise control while maintaining sensible defaults.

Best Practices

  • Respect User Choices: Always honor user preferences and make it easy for them to change their mind
  • Clear Communication: Explain what each preference controls and how it affects their experience
  • Sensible Defaults: Set default preferences that work for most users, but allow easy customization
  • Regular Review: Periodically remind users to review their preferences, as their needs may change over time

By implementing a robust preference system, you empower users to tailor their notification experience, leading to higher engagement, better user satisfaction, and reduced notification fatigue.

On this page