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/)
SectionPurpose
DisputesUser-reported inaccuracies awaiting review
Field registryWhich fields are user-editable vs system-authoritative
VerificationID checks before accepting legal name or DOB changes
Sync jobsDownstream propagation to billing, email, analytics
AuditImmutable log of who changed what and when
PoliciesRules 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 typeUser can edit?VerificationTypical downstream
Display nameYes, instantNoneProfile, comments
EmailYes, verify bothOTP + re-authAuth, comms, billing contact
Legal nameRequest + IDKYC vendorTax, invoices, contracts
SSO directory fieldsNoIT ticketOrg admin only
Derived segmentsNoN/AExplain + link prefs
Incorrect invoice lineNoSupportOrder correction flow
Analytics traitsNoAuto from profilePseudonymized 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

MistakeWhy it hurtsFix
User edits field but CRM keeps old valueArt. 16 not honoredSync status + retry UI
No verification on legal name changeFraud and tax errorsID gate before accept
Silent revert after failed KYCUser trust destroyedNotify with appeal path
Same form for user and directory fieldsConfusing errorsRead-only with explanation
Rectification buried in support onlyBarrier to rightsSelf-service hub + dispute link
No audit log of correctionsCompliance gapImmutable admin + user history
Updating email without old inbox confirmAccount takeoverDual verification flow
Derived fields look editableFalse expectationsBadge + link to real control

  1. Inventory fields in ROPA—mark source of truth and processors per field (ROPA UI).
  2. Design field registry with editable vs locked rules before profile UI.
  3. Build self-service flows with verification gates for high-risk fields.
  4. Add sync job UI visible to users and admins when downstream updates lag.
  5. Create dispute queue with SLA timers and export for DSAR alignment.
  6. Link privacy settings—accuracy rights sit next to access and deletion (privacy settings).
  7. 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.

Compliance exports may block deletion but not rectification—queue updates until hold lifts.


Next steps

Share on X

§ Keep reading

Related guides.