# 3. Third-Party Integrations

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

---

## 3. Third-Party Integrations

### 3.1 Integration Directory
**What it does:** Shows the Training Institute the integration directory: the available third-party integrations (LMS, CRM, payment, communication tools) with their descriptions and the data they sync. The Institute browses the directory and sees which are available for its plan. This helps the Institute extend the platform.

**Sub-features:**
- Integration directory
- Available integrations list
- Integration descriptions
- Data synced per integration
- Plan availability shown
- Search the directory
- Directory available on web and mobile
- Directory event logging (viewed)
- Audit logging of the integration directory

**Training Institute User Journey:**
1. Training Institute opens the integration directory.
2. The available integrations list is shown.
3. The integration descriptions are shown.
4. The data synced per integration is shown.
5. The plan availability is shown.
6. Training Institute searches the directory.
7. Training Institute opens Profile → "Activity" and confirms the directory events are recorded.

**Rules & Edge Cases:**
- The plan availability is shown per integration.
- The directory is searchable.
- Directory events (viewed) are logged with the account and the timestamp.
- The integration directory is audit-logged with the account and the timestamp.

### 3.2 Integration Setup & Connection
**What it does:** Lets the Training Institute set up and connect an integration: the Institute selects an integration, provides the required credentials, and completes the connection. The Institute sees the connection status and can disconnect. This links the Institute's existing tools to the platform.

**Sub-features:**
- Integration setup flow
- Select an integration
- Provide the required credentials
- Connection completed
- Connection status shown
- Disconnect an integration
- Setup available on web and mobile
- Setup event logging (connected, disconnected)
- Audit logging of the integration setup and connection

**Training Institute User Journey:**
1. Training Institute opens the integration setup.
2. Training Institute selects an integration.
3. Training Institute provides the required credentials.
4. The connection is completed.
5. The connection status is shown.
6. Training Institute disconnects an integration.
7. Training Institute opens Profile → "Activity" and confirms the setup events are recorded.

**Rules & Edge Cases:**
- The credentials are validated on connection.
- A disconnected integration stops syncing.
- Setup events (connected, disconnected) are logged with the account and the timestamp.
- The integration setup and connection is audit-logged with the account and the timestamp.

### 3.3 Integration Sync Monitoring
**What it does:** Shows the Training Institute the integration sync status: the last sync time, the records synced, the sync errors, and the sync frequency. The Institute can trigger a manual sync and view the sync log. This ensures the Institute's data stays in sync.

**Sub-features:**
- Integration sync status
- Last sync time shown
- Records synced count
- Sync errors shown
- Sync frequency shown
- Trigger a manual sync
- Sync log viewable
- Monitoring available on web and mobile
- Monitoring event logging (synced, manual sync)
- Audit logging of the integration sync monitoring

**Training Institute User Journey:**
1. Training Institute opens the integration sync monitoring.
2. The integration sync status is shown.
3. The last sync time is shown.
4. The records synced count is shown.
5. The sync errors are shown.
6. Training Institute triggers a manual sync.
7. Training Institute opens Profile → "Activity" and confirms the monitoring events are recorded.

**Rules & Edge Cases:**
- A sync error is shown with the reason.
- A manual sync runs immediately.
- Monitoring events (synced, manual sync) are logged with the account and the timestamp.
- The integration sync monitoring is audit-logged with the account and the timestamp.
