figma guide

Designing breach notification and regulatory reporting UI in Figma: timelines, templates, and disclosure workflows

Design breach notification and regulatory reporting UI in Figma with jurisdiction timelines, affected-user counts, disclosure templates, and legal approval gates for enterprise GRC.

Published
Updated
Jul 26, 2026
Read time
9 min
Level
Intermediate

Quick answer

Breach notification UI turns an incident into compliant, auditable disclosures—on deadline, with legal sign-off, and without leaking draft language externally. Design a regulatory timeline tracker with jurisdiction clocks and escalation; an affected-parties calculator tied to evidence and PII scope; disclosure templates per regulator and channel; and approval gates before any send or filing. Start from the Figma guides hub and pair with forensic evidence, compliance exports, war room, privacy settings, and Dev Mode handoff.


Who this is for

  • Product designers building breach response consoles, GRC disclosure modules, and customer notification flows for enterprise Security, Legal, and Privacy teams.
  • Design system teams aligning deadline badges, jurisdiction chips, and approval ribbons with badges, progress steppers, and modals.
  • Engineering teams implementing countdown timers, immutable draft history, regulator API submissions, and audit trails for every disclosure action.

Regulatory timeline tracker (jurisdiction clocks)

BreachCase — INC-2026-0891 · Notification status: In progress
├── Header: 3 jurisdictions · Earliest deadline: 68 hours · Legal owner: Priya Shah
├── Actions: [ Add jurisdiction ] [ Start disclosure draft ] [ Request legal review ] [ Export filing pack ]
├── Timeline row: GDPR (EU) · 72h from awareness · Due 2026-07-29 2:00 PM · Status: Draft in review
├── Timeline row: PIPEDA (Canada) · As soon as feasible · Due — · Status: Not started
└── Timeline row: State AG (California) · Without unreasonable delay · Due — · Status: Blocked (awaiting scope)
ColumnContent
JurisdictionGDPR, HIPAA, state breach laws, sector regulators
Trigger eventAwareness date/time (immutable once set)
DeadlineComputed clock with timezone and business-day rules
StatusNot started / Drafting / Legal review / Filed / Not required
OwnerLegal, Privacy, or external counsel contact
Evidence linkScope memo from forensic locker

Verdict: clocks are legal-critical—show countdown in hours, not vague “soon,” and block “Filed” without uploaded proof of submission.

Awareness timestamp should sync from war room when Legal marks incident as reportable.


Affected parties scope calculator

AffectedPartiesPanel
├── Data categories: Email · Name · Payment token · Health record · IP address
├── Records estimate: 12,400 users (range 11,800–13,100) · Confidence: Medium
├── Geography breakdown: EU 4,200 · US-CA 1,800 · Other 6,400
├── Source: SIEM query + DB export · Linked artifacts: 3 in evidence locker
├── Actions: [ Recalculate ] [ Attach scope memo ] [ Mark scope finalized ]
└── Warning: Scope change after filing may require supplemental notice
FieldUI detail
CategoriesMulti-select with sensitivity labels
Count rangeShow min/max when exact count unknown; explain methodology tooltip
Geo mapSimple bar or table—not decorative map without data
ConfidenceHigh / Medium / Low with required note when Low
Finalize gateLegal must lock scope before regulator draft unlocks
Change logAppend-only revisions when new evidence shifts numbers

Pull artifact hashes from evidence locker so scope memo references immutable exports.


Disclosure template library

TemplateLibrary — Breach notifications
├── Filter: Jurisdiction · Channel · Language · Version
├── Card: GDPR supervisory authority initial report · v2026.1 · Last legal review: 2026-03-01
├── Card: Customer email — credential exposure · v2026.2 · EN + FR variants
├── Card: State AG notification letter · California · v2025.4
└── Card: Internal executive briefing · Not for external send
Template typeRequired merge fields
Regulator filingIncident ID, awareness date, categories, approximate count, measures taken
Customer emailWhat happened, data involved, what user should do, contact channel
Website noticePlain language summary, effective date, support link
Press / status pageOptional; separate approval path from legal-only drafts
Internal memoTimeline, open questions, do-not-disclose list

Templates use forms patterns for merge-field placeholders—{{awareness_date}} styled as tokens, not free text.

Version badge: “Legal approved through 2026-06-30”—expired templates show blocking banner.


Disclosure draft editor

DraftEditor — GDPR initial report · Draft v4
├── Left: Section outline — Nature of breach · Categories · Approximate numbers · Consequences · Measures · DPO contact
├── Center: Rich text with merge fields · Redaction mode for screenshots in appendix
├── Right: Approval panel — Legal: Pending · CISO: Approved · External counsel: Not requested
├── Footer: [ Save draft ] [ Compare versions ] [ Preview regulator PDF ] [ Submit for legal ]
└── Banner: External send disabled until Legal approval recorded
FeatureWhy it matters
Section lockingLegal locks “numbers” section after scope finalized
Version diffSide-by-side v3 vs v4 for counsel review
Merge previewRender with live case data before export
Redaction toggleStrip PII from appendix previews
Comment threadsPer-section legal notes—link multiplayer etiquette patterns
Export formatsPDF, secure portal upload, structured JSON for API filing

Never allow “Send test email” to real customer domains—sandbox only with visual watermark.


Approval and filing workflow

ApprovalWorkflow
├── Step 1: Scope finalized (Legal) ✓
├── Step 2: Draft complete (Privacy analyst) ✓
├── Step 3: Legal review (General Counsel) — In progress
├── Step 4: Executive notification (optional threshold) — Blocked
├── Step 5: Regulator filing / customer send — Blocked
└── Audit: Every approval logged with actor, timestamp, IP
GateRule
Legal reviewRequired for all external disclosures
Dual controlTwo approvers for >10k affected or health/financial data
Executive briefAuto-trigger when Sev 1 + media risk flag
Filing proofUpload confirmation ID or portal screenshot to case
Customer sendStaged rollout: internal test → segment → full
RollbackCannot unsend—only supplemental notice workflow

Integrate with audit log event types: disclosure.draft_saved, disclosure.approved, disclosure.filed.


Customer notification send console

SendConsole — Customer email · Credential exposure template
├── Audience: 12,400 users · Excluded: 340 (already notified, invalid email)
├── Channels: Email ✓ · In-app banner · SMS (opt-in only: 2,100)
├── Schedule: Send after filing confirmed · Staged: 5% test cohort first
├── Preview: [ Desktop ] [ Mobile ] [ Plain text ]
└── [ Run test cohort ] [ Schedule full send ] — disabled until filing step complete
ControlHandoff note
Suppression listUsers who opted out of marketing ≠ breach notice—legal copy explains mandatory notice
LocalizationPer-locale template variant with fallback chain
Rate limitingShow ESP throttle estimate
Delivery dashboardBounce, open (if allowed), support ticket spike link
Support macroLink canned responses for support team in notification prefs

Pair with email verification flows if account recovery is part of remediation.


Regulator filing portal (structured submit)

RegulatorFilingForm — GDPR Article 33 initial notification
├── Section accordion: Controller details · DPO contact · Breach description · Data categories · Approximate subjects · Likely consequences · Measures taken
├── Validation: Required fields highlighted · Character limits per authority schema
├── Attachments: Scope memo PDF · Optional: sanitized timeline (max 5 MB)
├── Submit: [ Save draft to portal ] [ Submit final ] · 2FA re-auth required
└── Confirmation: Reference number field (manual or API) · Upload receipt to case

Use accordions for long forms; progress stepper for multi-page filings.

API filing success should write to compliance export job for retention.


Status page and public disclosure

PublicDisclosurePanel
├── Status page entry: "Investigating unauthorized access" · Yellow · Linked incident (internal ID hidden)
├── Publish: Requires Legal + Comms approval · Scheduled publish optional
├── Public URL preview · Auto-expire when incident closed
└── History: v1 published 2026-07-26 · v2 updated scope language 2026-07-28
StateVisible content
InvestigatingMinimal facts; no speculative counts
IdentifiedCategories at high level; remediation steps
ResolvedFinal summary; support contact
ArchivedRead-only; redirect to trust center

Link inline alerts patterns for in-app banners matching status page copy.


Handoff checklist (Dev Mode)

Document for engineering:

  • Awareness timestamp — single source; who can edit (Legal only, with audit).
  • Deadline calculation — per-jurisdiction rules engine inputs and timezone.
  • Scope lock — API to freeze affected count and categories.
  • Template merge — field schema and null handling.
  • Approval state machine — transitions, dual-control thresholds, rollback limitations.
  • Filing receipt — required attachment types and retention period.
  • Send orchestration — cohort rules, suppression, localization fallback.
  • Audit events — full list for SIEM ingestion.

Common mistakes

MistakeWhy it hurtsFix
Draft email sendable before legal reviewAccidental disclosure, liabilityHard block external channels until approval
Single global deadlineMiss state-specific windowsPer-jurisdiction clocks with earliest-deadline banner
Exact count when unknownMisleading regulatorsShow range + confidence + methodology
Reusing marketing email UIMissing mandatory legal elementsSeparate breach template family
No filing proof uploadedAudit gapRequire receipt before “Filed” status
Customer send before regulatorJurisdiction-dependent violationConfigurable ordering rules per case type
Editable awareness dateTimeline fraud riskImmutable after Legal confirmation
Public status page without approvalReputation and legal exposureComms + Legal dual gate
Template version driftOutdated legal languageExpiry dates and blocking banners
No supplemental notice pathScope changes leave users uninformed”Amend disclosure” workflow with new version

  1. Design jurisdiction timeline tracker with awareness trigger, deadlines, and status per regulator.
  2. Build affected parties calculator linked to evidence artifacts and scope finalization.
  3. Create template library with merge fields, versions, and locale variants.
  4. Implement draft editor with section locks, version diff, and approval panel.
  5. Add filing and send consoles with dual control, staging, and proof upload.
  6. Document state machine and audit events in Dev Mode.

FAQ

Breach notification vs compliance export?

Compliance export is bulk data for audits or legal hold; breach notification is time-bound external disclosure of a specific incident to regulators and affected individuals.

Always for scope memos, hash-verified exports attached to filings, and custody proof if evidence is cited in regulator submissions.

Awareness date vs incident detection?

Awareness is when the organization knew (or should have known) reportability—Legal sets it; may differ from first SIEM alert. Show both in war room, use awareness for clocks.

Customer notice vs notification preferences?

Marketing opt-out does not block legally required breach notice—UI must explain why notice was sent and offer security-specific preference where allowed.

Post-filing updates?

Use supplemental disclosure workflow—new draft version, legal re-approval, linked to original filing reference number.


Next steps

Share on X

§ Keep reading

Related guides.