figma guide
Designing data accuracy and rectification rights UI in Figma: correction flows, source of truth, and dispute resolution
Design data accuracy and rectification rights UI in Figma with self-service correction flows, source-of-truth badges, verification gates, and admin dispute queues that satisfy GDPR Article 16.
- Published
- Updated
- Aug 13, 2026
- Read time
- 8 min
- Level
- Intermediate
Quick answer
Data accuracy and rectification UI lets users fix wrong profile, billing, and preference data—and gives admins a traceable queue when corrections conflict with verified sources. Design a self-service correction hub with field-level source-of-truth badges, verification gates for high-risk changes, and a dispute resolution queue for cases where the user and system disagree. Start from the Figma guides hub and pair with privacy settings, DSAR portal, account dashboard, data portability export, and Dev Mode handoff.
Who this is for
- Product designers building profile settings, billing address forms, and account data pages where users expect to fix mistakes.
- Support and trust teams resolving disputes when CRM, payment processor, or SSO directory data disagrees with what the user sees.
- Privacy and legal teams operationalizing GDPR Article 16 (rectification) and accuracy obligations under Article 5(1)(d).
Accuracy and rectification hub (admin overview)
AccuracyHub — Acme App · 1,842 active users · 47 open disputes · Avg resolution 2.1d
├── Header: Pending verifications 12 · Blocked downstream sync 3 · SLA breach 2
├── Actions: [ Review disputes ] [ Bulk sync audit ] [ Export rectification log ]
├── Tabs: Disputes · Field registry · Verification · Sync jobs · Audit · Policies
├── Alert: Field "legal_name" · 8 disputes this week · Source: KYC vendor · Review template
├── Filters: Field type · Source system · Status · Region · High-risk only
└── Link: [Privacy settings](/designing-privacy-settings-and-data-management-ui-in-figma/) · [DSAR](/designing-data-subject-access-request-and-gdpr-portal-ui-in-figma/) · [Account dashboard](/designing-account-dashboard-and-my-account-ui-in-figma/)
| Section | Purpose |
|---|---|
| Disputes | User-reported inaccuracies awaiting review |
| Field registry | Which fields are user-editable vs system-authoritative |
| Verification | ID checks before accepting legal name or DOB changes |
| Sync jobs | Downstream propagation to billing, email, analytics |
| Audit | Immutable log of who changed what and when |
| Policies | Rules per field: self-service, verify-first, admin-only |
Verdict: Rectification fails when users edit a field in settings but billing still charges the old address—design visible sync status and source-of-truth labels.
Field registry (source of truth matrix)
FieldRegistry — Profile & billing fields · Policy v3.1
├── legal_name
│ ├── Source of truth: User (after KYC verify) · Overrides: KYC vendor on first verify only
│ ├── Self-service: Yes · Requires: [ID verification](/designing-email-verification-and-otp-ui-in-figma/) for change
│ ├── Downstream: Invoices, tax forms, [compliance exports](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
│ └── Dispute rule: If KYC rejects, offer support queue · Do not silently revert
├── billing_address
│ ├── Source of truth: User · Sync: Stripe · Latency target: <5m
│ ├── Self-service: Yes · Validation: postal format per country
│ └── Show: "Last synced to payment provider · 2m ago ✓"
├── email
│ ├── Source of truth: User · Verify new email before swap · Old email notified
│ ├── Self-service: Yes · Re-auth required · Link [session timeout](/designing-session-timeout-and-re-authentication-ui-in-figma/)
│ └── Downstream: Auth, marketing prefs, [notification settings](/designing-notification-preferences-and-communication-settings-ui-in-figma/)
├── sso_job_title
│ ├── Source of truth: [SSO directory](/designing-sso-and-enterprise-login-ui-in-figma/) · User: read-only
│ ├── Self-service: No · Request change via IT admin · Explain why locked
│ └── Copy: "Managed by your organization · Contact admin@company.com"
├── marketing_segment
│ ├── Source of truth: Derived · User cannot edit directly
│ └── Surface: Explain derivation · Link [preference center](/designing-consent-records-and-preference-management-admin-ui-in-figma/)
└── [ Add field ] · Changes require privacy + eng sign-off
Every editable field needs a badge: User-editable, Verified, Directory-managed, or Derived.
Self-service correction flow (customer-facing)
ProfileSettings — Personal information · Last updated 2026-08-10
├── Legal name · Jane Doe · Badge: Verified 2026-03-12 · [ Request change ]
│ └── Modal: Upload ID · Reason optional · Submit for review · Est. 1–2 business days
├── Display name · jane_d · Badge: User-editable · [ Edit ] · Saves immediately
├── Email · j***@example.com · Badge: Verified · [ Change email ]
│ └── Flow: Enter new → Verify OTP → Confirm on old inbox → Update auth
├── Phone · +1 ***-**-4421 · Optional · [ Edit ] · SMS verify on change
├── Billing address · 123 Main St · Badge: Synced to Stripe ✓ · [ Edit ]
│ └── After save: "Updating payment methods…" progress · Error state if sync fails
├── Date of birth · Not collected · Link [minimization policy](/designing-data-minimization-and-purpose-limitation-ui-in-figma/)
├── Data sources footer: Some fields come from your employer SSO · [Learn more]
└── [ Download my data ] · [Report inaccurate data] · Links [DSAR portal](/designing-data-subject-access-request-and-gdpr-portal-ui-in-figma/)
Show what will update downstream before the user confirms—especially billing and tax fields.
Dispute resolution queue (admin)
DisputeQueue — Rectification requests · 47 open · Sort: SLA risk
├── DIS-8821 · User: u_441 · Field: legal_name · Submitted 2026-08-11
│ ├── User claims: "Legal name is Jon Smith not Jane Doe" · ID doc attached
│ ├── Current value: Jane Doe · Source: KYC vendor · Confidence: 94%
│ ├── History: Name unchanged since signup · No prior disputes
│ ├── Actions: [ Accept user doc ] [ Reject with reason ] [ Request more info ]
│ ├── On accept: Propagate to billing · Log in [audit trail](/designing-audit-log-and-security-activity-ui-in-figma/) · Notify user
│ └── SLA: Respond within 30 days · GDPR Art. 16
├── DIS-8819 · Field: billing_address · User says charged wrong state
│ ├── System shows TX · Stripe shows CA · Sync job failed 2026-08-09
│ └── Fix: Retry sync · Root cause link · No user blame in copy
├── Bulk: 3 disputes same KYC batch · Flag vendor incident
└── [ Export for compliance ] · [ Assign to agent ] · Templates for reject reasons
Reject reasons must be specific and actionable—not “verification failed” without next steps.
Downstream sync status UI
SyncStatus — Profile change job · job_id: sync_9912 · User: u_441
├── Trigger: billing_address updated · 2026-08-13 14:02 UTC
├── Targets:
│ ├── Stripe customer · ✓ Updated · cus_abc · 14:02:18
│ ├── Tax engine · ✓ Updated · 14:02:45
│ ├── Warehouse profile · ⏳ Pending · Est. 15m · Pseudonymized row
│ ├── Marketing ESP · ✓ Updated · 14:03:01
│ └── Active invoice draft · ⚠ Manual review · Amount may change
├── User-visible: "Payment details updated" toast · Link to [order history](/designing-order-history-and-order-tracking-ui-in-figma/) if open orders
├── Failure mode: Retry 3x · Then banner "Some systems still show old address · [Contact support]"
└── Admin: [ Force retry ] [ Pause sync ] [ View [ROPA](/designing-records-of-processing-activities-and-data-mapping-ui-in-figma/) processors ]
Users should never wonder whether their correction actually took effect.
Comparison: self-service vs admin-only correction
| Field type | User can edit? | Verification | Typical downstream |
|---|---|---|---|
| Display name | Yes, instant | None | Profile, comments |
| Yes, verify both | OTP + re-auth | Auth, comms, billing contact | |
| Legal name | Request + ID | KYC vendor | Tax, invoices, contracts |
| SSO directory fields | No | IT ticket | Org admin only |
| Derived segments | No | N/A | Explain + link prefs |
| Incorrect invoice line | No | Support | Order correction flow |
| Analytics traits | No | Auto from profile | Pseudonymized sync |
Handoff checklist (Dev Mode)
- ProfileField — field_id, label, source_of_truth enum, editable bool, verification_required.
- RectificationRequest — request_id, user_id, field_id, proposed_value, evidence_refs[], status.
- VerificationGate — gate_type, provider, expiry, attempt_count, fallback_support_link.
- SyncJob — job_id, field_id, targets[], status per target, retry_policy, user_visible_message.
- DisputeCase — case_id, sla_due_at, resolution, reject_reason_code, audit_ref.
- FieldRegistryPolicy — version, field_rules[], last_reviewed_at.
- Accessibility — source badges have text; sync progress announced; locked fields explain why.
Common mistakes
| Mistake | Why it hurts | Fix |
|---|---|---|
| User edits field but CRM keeps old value | Art. 16 not honored | Sync status + retry UI |
| No verification on legal name change | Fraud and tax errors | ID gate before accept |
| Silent revert after failed KYC | User trust destroyed | Notify with appeal path |
| Same form for user and directory fields | Confusing errors | Read-only with explanation |
| Rectification buried in support only | Barrier to rights | Self-service hub + dispute link |
| No audit log of corrections | Compliance gap | Immutable admin + user history |
| Updating email without old inbox confirm | Account takeover | Dual verification flow |
| Derived fields look editable | False expectations | Badge + link to real control |
Recommended workflow
- Inventory fields in ROPA—mark source of truth and processors per field (ROPA UI).
- Design field registry with editable vs locked rules before profile UI.
- Build self-service flows with verification gates for high-risk fields.
- Add sync job UI visible to users and admins when downstream updates lag.
- Create dispute queue with SLA timers and export for DSAR alignment.
- Link privacy settings—accuracy rights sit next to access and deletion (privacy settings).
- Review quarterly—new integrations often add fields without registry entries.
FAQ
Rectification vs data portability?
Portability is export; rectification is fix in place and propagate corrections to processors.
Same as DSAR portal?
DSAR handles formal requests; self-service correction should resolve most cases without opening a ticket.
Enterprise SSO users?
Directory-managed fields need clear lock UI and a path to org admin—not a broken edit button.
Inaccurate inferred data?
Derived segments belong in transparency UI (automated decisions)—offer correction via source fields or opt-out.
Legal hold on user data?
Compliance exports may block deletion but not rectification—queue updates until hold lifts.
Next steps
- Design privacy settings and data management UI in Figma — group accuracy with access and erasure
- Design data subject access request and GDPR portal UI in Figma — escalate unresolved disputes
- Design account dashboard and my account UI in Figma — entry point to profile correction
- Design records of processing activities and data mapping UI in Figma — document processors receiving updates
- Design data minimization and purpose limitation UI in Figma — avoid collecting fields users cannot fix
§ Keep reading