# 4. Alert Preferences & History

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

---

## 4. Alert Preferences & History

### 4.1 Alert Type Preferences
**What it does:** Lets the Parent choose which types of alerts they want to receive: performance alerts, missed session alerts, engagement alerts, account alerts, and billing alerts. The Parent can enable or disable each alert type independently. This gives the Parent control over the volume and kind of alerts.

**Sub-features:**
- Enable or disable alert types
- Performance, missed session, engagement, account, billing alerts
- Per-alert-type toggle
- Default alert type set
- Preference change confirmation
- Preferences available on web and mobile
- Preference event logging (set, changed)
- Audit logging of the alert type preferences

**Parent User Journey:**
1. Parent opens the alert preferences.
2. Parent enables the performance alerts.
3. Parent disables the engagement alerts.
4. Each alert type has a toggle.
5. The default alert type set is shown.
6. A preference change confirmation is shown.
7. Parent opens Profile → "Activity" and confirms the preference events are recorded.

**Rules & Edge Cases:**
- The alert types are independently toggleable.
- A default alert type set is applied.
- A preference change confirmation is shown.
- Preference events (set, changed) are logged with the account and the timestamp.
- The alert type preferences is audit-logged with the account and the timestamp.

### 4.2 Alert Channel and Timing Preferences
**What it does:** Lets the Parent set the channels and timing for alerts: which channels (in-app, email, push, SMS) to use and the quiet hours when non-critical alerts are suppressed. Critical alerts are always delivered regardless of quiet hours. This gives the Parent control over when and how they are alerted.

**Sub-features:**
- Alert channels (in-app, email, push, SMS)
- Quiet hours for non-critical alerts
- Critical alerts always delivered
- Per-channel toggle
- Timing preference confirmation
- Preferences available on web and mobile
- Preference event logging (set, changed)
- Audit logging of the alert channel and timing preferences

**Parent User Journey:**
1. Parent opens the alert channel preferences.
2. Parent enables the email and push channels.
3. Parent sets quiet hours (10 PM to 7 AM).
4. Non-critical alerts are suppressed during quiet hours.
5. A critical alert is delivered regardless of quiet hours.
6. A timing preference confirmation is shown.
7. Parent opens Profile → "Activity" and confirms the preference events are recorded.

**Rules & Edge Cases:**
- The alert channels are in-app, email, push, and SMS.
- Quiet hours suppress non-critical alerts.
- Critical alerts are always delivered.
- Preference events (set, changed) are logged with the account and the timestamp.
- The alert channel and timing preferences is audit-logged with the account and the timestamp.

### 4.3 Alert History
**What it does:** Keeps a history of the alerts sent to the Parent: the alert type, the time, and the status (viewed, acted on). The Parent can review past alerts, filter by type, and see which alerts they have addressed. The history is retained for a platform-defined period. This gives the Parent a record of the alerts they have received.

**Sub-features:**
- History of sent alerts
- Alert type, time, and status
- Filter the history by alert type
- Viewed and acted-on status
- History retained for a platform-defined period
- History available on web and mobile
- History event logging (viewed, filtered)
- Audit logging of the alert history

**Parent User Journey:**
1. Parent opens the alert history.
2. The sent alerts are listed with type, time, and status.
3. Parent filters the history by alert type.
4. The viewed and acted-on status is shown.
5. Parent views a past alert detail.
6. The history is retained for the platform-defined period.
7. Parent opens Profile → "Activity" and confirms the history events are recorded.

**Rules & Edge Cases:**
- The history lists sent alerts with type, time, and status.
- The history can be filtered by alert type.
- The history is retained for the platform-defined period.
- History events (viewed, filtered) are logged with the account and the timestamp.
- The alert history is audit-logged with the account and the timestamp.
