# 4. Link Requests & Notifications

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

---

## 4. Link Requests & Notifications

### 4.1 Pending Link Requests
**What it does:** Shows the Parent their pending link requests: invitations sent to children that have not yet been accepted or declined. The Parent sees each request's status, the child's name, and the time sent. The Parent can resend or cancel a pending request. This keeps the linking process transparent.

**Sub-features:**
- List of pending link requests
- Request status (pending, accepted, declined, expired)
- Child name and time sent shown
- Resend a pending request
- Cancel a pending request
- Request expiry indicator
- Request event logging (resent, cancelled)
- Audit logging of the pending link requests

**Parent User Journey:**
1. Parent opens "Children" → "Requests" and sees the pending requests.
2. Each request shows the child's name, status, and time sent.
3. Parent resends a pending request.
4. Parent cancels a pending request.
5. The request expiry indicator is shown.
6. The request events are recorded.
7. Parent opens Profile → "Activity" and confirms the request events are recorded.

**Rules & Edge Cases:**
- The list shows pending link requests.
- A pending request can be resent or cancelled.
- The request expiry is indicated.
- Request events (resent, cancelled) are logged with the account and the timestamp.
- The pending link requests is audit-logged with the account and the timestamp.

### 4.2 Link Event Notifications
**What it does:** Notifies the Parent of link events: a request accepted, a request declined, a request expired, or a child unlinked. The Parent is informed in-app and, where enabled, by email. This keeps the Parent aware of the state of their children's links.

**Sub-features:**
- Notification on a request accepted
- Notification on a request declined
- Notification on a request expired
- Notification on a child unlinked
- In-app and email notification channels
- Notification event logging (sent, opened)
- Audit logging of the link event notifications

**Parent User Journey:**
1. A link request is accepted; the Parent is notified.
2. A link request is declined; the Parent is notified.
3. A link request expires; the Parent is notified.
4. A child is unlinked; the Parent is notified.
5. The notifications are in-app and email.
6. Parent opens a notification; the relevant screen opens.
7. Parent opens Profile → "Activity" and confirms the notification events are recorded.

**Rules & Edge Cases:**
- The Parent is notified of link events.
- The notification channels are in-app and email.
- A notification is tappable to the relevant screen.
- Notification events (sent, opened) are logged with the account and the timestamp.
- The link event notifications is audit-logged with the account and the timestamp.

### 4.3 Invitation Management
**What it does:** Lets the Parent manage their link invitations: view the invitation history, see which invitations are active or used, and create a reusable invitation for a child. The Parent controls the invitations they send, and used or expired invitations are clearly marked. This gives the Parent full control over the linking process.

**Sub-features:**
- View the invitation history
- Active and used invitations shown
- Create a reusable invitation for a child
- Mark used/expired invitations
- Invitation history available on web and mobile
- Invitation event logging (created, used, expired)
- Audit logging of the invitation management

**Parent User Journey:**
1. Parent opens "Children" → "Invitations" and sees the history.
2. Active and used invitations are shown.
3. Parent creates a reusable invitation for a child.
4. A used invitation is marked.
5. An expired invitation is marked.
6. Parent views the history on the mobile app.
7. Parent opens Profile → "Activity" and confirms the invitation events are recorded.

**Rules & Edge Cases:**
- The invitation history is retained.
- A reusable invitation can be created.
- Used and expired invitations are marked.
- Invitation events (created, used, expired) are logged with the account and the timestamp.
- The invitation management is audit-logged with the account and the timestamp.
