What Are User Preferences?
Preferences are settings that control:- Which channels you can use (email yes, SMS no)
- What types of messages they want (product updates yes, promotions no)
- How frequently they hear from you
- When you can reach them (quiet hours)
Why Preferences Matter
For users: Control fatigue, choose channels, set frequency limits. For you: Higher engagement, legal compliance (GDPR, CAN-SPAM, CCPA), better deliverability.Types of Preferences
1. Channel Preferences (What to Reach Them On)
Definition: Which communication channels the user accepts messages through. Each channel has its own opt-out field and timestamp stored on the user profile. Channel opt-out fields:| Channel | Field | Default state |
|---|---|---|
email_opt_out | UNKNOWN (pending confirmation) | |
| SMS | sms_opt_out | NOT_OPTED_OUT |
whatsapp_opt_out | NOT_OPTED_OUT | |
| RCS | rcs_opt_out | NOT_OPTED_OUT |
| Push | push_opt_out | NOT_OPTED_OUT |
1—NOT_OPTED_OUT: user is reachable (default for SMS/WhatsApp/RCS/Push)2—OPTED_OUT: user explicitly opted out — all sends suppressed3—UNKNOWN: intent not yet established (default for Email)
_opt_out_at timestamp:
UNKNOWN rather than NOT_OPTED_OUT because email requires explicit confirmation before you can assume consent (GDPR). All other channels default to NOT_OPTED_OUT since they require an explicit action (push permission grant, phone number submission) to receive messages at all.
2. Category Preferences (What Type of Messages)
Definition: What topics or types of content the user wants to receive. Category preferences are custom attributes — you define the categories that make sense for your product and store them as profile attributes. Example:- User might want product updates but not promotional emails
- Transactional messages (order confirmations, password resets) typically can’t be opted out
- GDPR requires granular control (not just “all or nothing”)
3. Frequency Preferences (How Often to Message)
Definition: Controls how often users receive non-critical messages. Like categories, frequency preferences are custom attributes you define and check when building campaigns. Example:4. User Suppression (Block All Channels)
Suppression is a server-side lifecycle event that blocks all outbound messages for a user across every channel, regardless of their individual opt-out settings.| Lifecycle Event | Effect |
|---|---|
User Suppressed | Sets is_suppressed = true on profile — no messages sent on any channel |
User Unsuppressed | Clears the flag — message delivery resumes |
- User requests complete silence (GDPR “right to be forgotten” equivalent)
- Account fraud/abuse detected
- Account is past-due / in bad standing
Capturing Preferences
Method 1: In-App Preference Center
Best for: Letting users manage their own preferences (GDPR requirement) Example UI:Method 2: Email Unsubscribe Links
Best for: One-click opt-out from email campaigns (CAN-SPAM requirement) Example flow:- User receives promotional email
- Clicks “Unsubscribe” link at bottom
- Lands on preference page: “You’ve unsubscribed from promotional emails”
- Option to manage granular preferences or unsubscribe from all
Method 3: Onboarding Preference Collection
Best for: Setting preferences early (before first campaign) Example onboarding screen:- Sets expectations early (“we’ll email you weekly”)
- Reduces future unsubscribes (they opted in knowingly)
- Better engagement (only contact people who agreed)
Respecting Preferences in Campaigns
Transactional vs. Marketing Messages
Transactional messages (can’t be opted out):- Order confirmations
- Password resets
- Account security alerts
- Billing notifications
- Newsletters
- Promotional emails
- Feature announcements
- Re-engagement campaigns
Default Preferences (What If User Hasn’t Set Any?)
Recommended Defaults
Conservative approach (better for compliance):- Conservative: EU users (GDPR), healthcare, financial services
- Aggressive: Existing customers, B2B, low-regulation industries
Preference Syncing Across Devices
Challenge: User opts out of push notifications on phone, but still gets them on tablet. Solution: Preferences are stored at the user profile level, not device level. How it works:Compliance & Legal Requirements
GDPR (Europe)
Requirements: ✅ Clear consent before marketing communications✅ Easy way to withdraw consent (unsubscribe link)
✅ Granular control (not just “all or nothing”)
✅ Explicit opt-in for sensitive categories (health, finance) Implementation:
- Default users to opted OUT
- Require checkbox during signup: “I agree to receive marketing emails”
- Provide preference center with granular controls
CAN-SPAM (United States)
Requirements: ✅ Unsubscribe link in every marketing email✅ Honor opt-out within 10 business days
✅ Clear “From” name (not deceptive)
✅ Accurate subject line Implementation:
- Include unsubscribe link in email footer
- Immediately set
subscribed_to_promotions = falseon click - Exclude opted-out users from all marketing campaigns
CCPA (California)
Requirements: ✅ Allow users to opt out of data “sale” (sharing for advertising)✅ Provide “Do Not Sell My Personal Information” link
✅ Honor opt-out immediately Implementation:
Next: Server-side tracking and lifecycle APIs → Event API Reference