# 3. Notification Channels & Preferences

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*

---

## 3. Notification Channels & Preferences

### 3.1 Notification Channel Preferences
**What it does:** Lets the Affiliate choose the channels for their notifications: in-app, email, and push. The Affiliate toggles each channel on or off, and the platform delivers notifications only on the enabled channels. This gives the Affiliate control over where they are notified.

**Sub-features:**
- Choose notification channels (in-app, email, push)
- Toggle a channel on or off
- Notifications delivered on enabled channels only
- Default channel settings
- Channel preferences saved
- Preferences available on web and mobile
- Preferences event logging (changed)
- Audit logging of the notification channel preferences

**Affiliate User Journey:**
1. Affiliate opens the notification preferences.
2. The notification channels are shown (in-app, email, push).
3. Affiliate toggles a channel on or off.
4. The notifications are delivered on enabled channels only.
5. The default channel settings are shown.
6. The channel preferences are saved.
7. Affiliate opens Profile → "Activity" and confirms the preferences events are recorded.

**Rules & Edge Cases:**
- The channels are in-app, email, and push.
- The notifications are delivered on enabled channels only.
- Preferences events (changed) are logged with the account and the timestamp.
- The notification channel preferences is audit-logged with the account and the timestamp.

### 3.2 Notification Category Preferences
**What it does:** Lets the Affiliate choose which categories of notifications to receive: commission, payout, referral, campaign, and milestone. The Affiliate toggles each category on or off, and the platform sends only the enabled categories. This lets the Affiliate filter the noise.

**Sub-features:**
- Choose notification categories
- Toggle a category on or off
- Only enabled categories are sent
- Critical categories always on
- Category preferences saved
- Preferences available on web and mobile
- Preferences event logging (changed)
- Audit logging of the notification category preferences

**Affiliate User Journey:**
1. Affiliate opens the notification preferences.
2. The notification categories are shown.
3. Affiliate toggles a category on or off.
4. Only the enabled categories are sent.
5. The critical categories are always on.
6. The category preferences are saved.
7. Affiliate opens Profile → "Activity" and confirms the preferences events are recorded.

**Rules & Edge Cases:**
- The categories are commission, payout, referral, campaign, and milestone.
- The critical categories are always on.
- Preferences events (changed) are logged with the account and the timestamp.
- The notification category preferences is audit-logged with the account and the timestamp.

### 3.3 Notification Timing & Digest
**What it does:** Lets the Affiliate control the timing of their notifications: real-time or a daily digest, and a quiet hours window. The Affiliate sets the digest frequency and the quiet hours, and the platform batches non-critical notifications accordingly. This prevents notification overload.

**Sub-features:**
- Choose real-time or daily digest
- Set the digest frequency
- Set a quiet hours window
- Non-critical notifications batched in the digest
- Critical notifications always real-time
- Timing available on web and mobile
- Timing event logging (changed)
- Audit logging of the notification timing and digest

**Affiliate User Journey:**
1. Affiliate opens the notification timing.
2. Affiliate chooses real-time or daily digest.
3. Affiliate sets the digest frequency.
4. Affiliate sets a quiet hours window.
5. The non-critical notifications are batched in the digest.
6. The critical notifications are always real-time.
7. Affiliate opens Profile → "Activity" and confirms the timing events are recorded.

**Rules & Edge Cases:**
- The non-critical notifications are batched in the digest.
- The critical notifications are always real-time.
- Timing events (changed) are logged with the account and the timestamp.
- The notification timing and digest is audit-logged with the account and the timestamp.
