The Self-Serve User Rights Portal
Don’t let your support team get buried in emails. Here is the UI/UX architecture for a compliant, automated DPDP Request System.
The Legal “Must-Haves”
The Identifiers
Rule: You must define exactly what ID is needed.
EdTech Specifics: Accept Enrolment ID, Application Number, or Registered Mobile/Email.
The Means
Rule: You must “prominently publish” the means to request rights.
UI Requirement: It must be digital and accessible (no physical letters).
The SLA
Rule: Grievance response timeline must not exceed 90 days.
Requirement: Technical measures must be in place to track this deadline.
Information Architecture
- Title:
Privacy & DPDP Requests - Micro-copy: “Submit and track your DPDP requests using your registered email/mobile or enrollment ID.”
- UI Cards:
- Manage Consent & Notices (Link to Settings)
- Submit a DPDP Request
- Track Existing Requests
- Raise a Grievance
- Contact Helpdesk
- Design Note: Use large clickable tiles, not a dropdown.
- Tiles:
- ℹ️ Access / Information (What data do you hold?)
- ✏️ Correction / Update (Fix profile/parent details)
- 🗑️ Deletion / Erasure (Remove account/history)
- 🚫 Withdraw Consent (Stop processing)
- 👥 Nomination (Assign a nominee)
- Common Fields (All Requests):
- Identifier (Email / Mobile / Enrollment ID)
- Role Selector (Student / Parent / Teacher / Admin)
- Description (Max 500 chars)
- Attachment Upload (Optional)
- Specific Fields:
- If Correction: “Field to correct” + “Correct Value”
- If Deletion: “What to delete?” (Account vs. Specific Chat/Content)
- If Access: “Preferred Format” (PDF / In-App)
- Visual Timeline:
Submitted→Under Verification→In Progress→Action Taken→Closed - Ticket Details: Ticket ID, Submission Date, Response History.
- Note: This must be separate from standard rights requests.
- Fields:
- Category (Delay, Denial, Incorrect Response)
- Related Ticket ID (Link to previous request)
- Preferred Contact Mode
The Fulfillment Workflow
Developer Specs: Data Model & Schema
/* DPDP Request Tables */
TABLE dpdp_requests (
ticket_id VARCHAR(50) PRIMARY KEY,
user_identifier VARCHAR(100), -- Enrolment ID or Mobile
request_type ENUM('ACCESS', 'CORRECT', 'DELETE', 'WITHDRAW', 'NOMINEE'),
status ENUM('VERIFYING', 'OPEN', 'ACTION_TAKEN', 'CLOSED'),
created_at TIMESTAMP,
sla_due_date TIMESTAMP
); [cite: 1274]
TABLE dpdp_request_messages (
ticket_id VARCHAR(50),
sender VARCHAR(50), -- User or System
message TEXT,
created_at TIMESTAMP
); [cite: 1275]
TABLE dpdp_verification_events (
ticket_id VARCHAR(50),
method VARCHAR(20), -- OTP_MOBILE, MAGIC_LINK
verified_at TIMESTAMP
); [cite: 1276]
TABLE dpdp_grievances (
grievance_id VARCHAR(50) PRIMARY KEY,
ticket_id VARCHAR(50), -- Linked original request
category VARCHAR(50),
sla_due_date TIMESTAMP -- Must be <= 90 days
); [cite: 1277]
“Copy-Paste” Text Blocks
Portal Footer (Mandatory Contact Info)
DPDP Helpdesk: privacy@yourdomain.com Contact Person: DPDP Support Officer (or DPO) Note: This must be visible on every screen.
The “Means” Text
“You can submit DPDP requests through this portal. Please keep your registered email/mobile or enrollment ID handy.”
The Grievance Promise
“We respond to grievances within 90 days.”
Need this portal built in 2 weeks?
We have the UI wireframes, SLA logic, and email templates ready to deploy.
