Skip to content

Collab | Un-Subscription & UIN Data Deletion via email #815

Description

@Pragya279

1. Ticket Contents: Description

This feature introduces an unsubscribe mechanism for MOSIP Collab emails, allowing community users to opt out of receiving further communications.

Currently, users do not have a simple way to stop receiving emails, which can lead to frustration, reduced trust, and potential non-compliance with privacy regulations. This feature will provide a clear and user-friendly unsubscribe flow via an email link and form submission, ensuring users have full control over their communication preferences.

Additionally, upon successful unsubscription, the system will delete the associated UIN and related personal data, ensuring compliance with data privacy requirements and reinforcing user trust.

2. Goals & Mid-Point Milestone

Overall Goals

  • Add unsubscribe link in all Collab emails
  • Enable a form-based unsubscribe flow for users
  • Capture user intent and feedback (reason for unsubscribing)
  • Ensure secure identification and processing of unsubscribe requests
  • Implement data deletion workflow (UIN + associated data)
  • Prevent further emails to unsubscribed users
  • Handle edge cases (already unsubscribed users, multiple UINs)
  • Maintain audit logs and reporting for unsubscribe actions
  • Ensure compliance with data privacy and consent regulations

Mid-Point Milestone (1.5 Months)

  • Add unsubscribe link in outgoing emails
  • Build and deploy unsubscribe form (Google Form or equivalent UI)
  • Capture email ID and reason for unsubscribing
  • Backend API to process unsubscribe request
  • Basic validation (check if email already unsubscribed)
  • Display success and “already unsubscribed” messages
  • Store unsubscribe records for tracking

3. Expected Outcome

The final implementation will provide a simple, transparent, and compliant unsubscribe experience:

  • Every email sent from the Collab platform will include an unsubscribe link

  • Clicking the link will redirect users to an unsubscribe form where they can:

    • Enter their email ID
    • Select a reason for unsubscribing
    • Provide optional feedback
    • Confirm consent to unsubscribe
  • Upon submission:

    • The system validates whether the email is already unsubscribed

    • If not:

      • The system deletes the associated UIN and all linked personal data
      • The email is marked as unsubscribed
      • A success message is displayed
    • If already unsubscribed:

      • The user is informed that no further action is required
  • The system ensures that no further emails are sent to unsubscribed users unless they re-register

  • All actions are logged and available for reporting and analytics

This feature will enhance user control, regulatory compliance, and overall trust in the platform.

4. Acceptance Criteria

Email Integration

  • AC1: Every Collab email contains a visible unsubscribe link

Unsubscribe Flow

  • AC2: Clicking the unsubscribe link redirects the user to the unsubscribe form

  • AC3: The form captures:

    • Email ID (mandatory)
    • Reason for unsubscribing (mandatory dropdown)
    • Additional comments (optional)
    • Consent checkbox (mandatory)

Submission & Validation

  • AC4: On submission, the system validates whether the email is already unsubscribed

  • AC5: If already unsubscribed, user sees:

    • “You are already unsubscribed from MOSIP emails. No further action is required.”

Data Deletion

  • AC6: If not already unsubscribed:

    • The system deletes the associated UIN and all related personal data
  • AC7: System handles cases where one email is linked to multiple UINs (all associated records are processed as per policy)

User Feedback

  • AC8: User sees confirmation message:

    • “You have successfully unsubscribed. Your associated UIN and related data have been deleted.”

Post-Unsubscribe Behavior

  • AC9: No further emails are sent to unsubscribed email IDs
  • AC10: Users can only receive emails again if they re-register and obtain a new UIN

Tracking & Analytics

  • AC11: All unsubscribe actions are logged in the backend
  • AC12: Unsubscribe data (reason, timestamp, email) is available for reporting

5. Implementation Details

Frontend

  • Email template update:

    • Add unsubscribe link (unique/tokenized URL preferred)
  • Unsubscribe form:

    • Google Form (initial approach) or custom web page

    • Fields:

      • Email ID
      • Reason dropdown
      • Free-text comments
      • Consent checkbox

Backend

  • Unsubscribe service/API:

    • Validate email status (active/unsubscribed)
    • Process unsubscribe request
    • Trigger data deletion workflow
  • Database updates:

    • Maintain unsubscribe registry (email, timestamp, reason)
    • Flag email as unsubscribed

Data Deletion Workflow

  • Identify all UINs associated with the email

  • Delete:

    • UIN records
    • Linked demographic/personal data
  • Ensure deletion across all relevant systems/services

Email System Integration

  • Suppression list:

    • Maintain list of unsubscribed emails
    • Prevent sending emails to these addresses

Security & Privacy

  • Use secure, tokenized unsubscribe links to prevent misuse
  • Validate email ownership where required
  • Ensure compliance with privacy regulations (e.g., consent, right to be forgotten)

Alternate Flow Handling

  • Approach 1 (Preferred):

    • Always show form → validate on submission
  • Approach 2 (Optional):

    • Pre-check unsubscribe status via token → skip form if already unsubscribed

Analytics & Reporting

  • Store:

    • Email ID
    • Reason for unsubscribing
    • Timestamp
  • Build dashboards for:

    • Unsubscribe trends
    • Common reasons

Performance & Reliability

  • Ensure unsubscribe flow is lightweight and fast
  • Asynchronous processing for data deletion
  • Retry mechanisms for cleanup failures

Product Name

MOSIP - Resident Portal

Organisation Name

C4GT

Tech Skills Needed

Java, Angular

Organizational Mentor

Feature Support : @Pragya279
Tech Support: @MadhuMosip

Complexity

Medium

Category

Frontend + Backend

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions