Skip to main content
All Docs
FeaturesPurple PepperUpdated April 8, 2026

Personal Settings & Notification Preferences

Personal Settings & Notification Preferences

The Personal Settings page gives every user a self-service hub to manage their own profile, security, and notification preferences without requiring admin intervention.

URL: /dashboard/personal-settings


Sections

1. Edit Profile

Update your display name and avatar photo directly from the dashboard.

  • Display name — editable free-text field.
  • Avatar — upload a new photo using the standard file upload component.
  • Email address — read-only. Email is managed by the OIDC identity provider and cannot be changed here.

Changes are saved immediately on form submission and are reflected across the application. Profile updates are recorded in the audit log.


2. Password & Security

Because the platform uses OIDC-based authentication (SaaS Factory Auth), passwords are managed externally by the identity provider.

This section explains that limitation clearly and provides a Manage Password button that opens the OIDC account management page in a new tab.

No password changes can be made from within the application itself.


3. Notification Preferences

Control which events trigger notifications and through which channels.

Channels

ChannelDescription
EmailSends a notification to your registered email address
In-AppDisplays a notification inside the dashboard

Notification Categories

CategoryTrigger
Task AssignmentsA task or todo is assigned to you
Offer Status ChangesAn offer you manage changes status
Renewal AlertsAn upcoming renewal deadline or decision is approaching
Compliance WarningsA compliance document is expiring or a certificate is overdue

Each category has an independent toggle for Email and In-App, giving you eight individual on/off controls in total.

Defaults

All eight preferences default to enabled when your account first accesses the settings page. A database record is created automatically on first access — no manual setup is needed.

Saving Changes

Preferences are not saved automatically. After making changes:

  1. An "You have unsaved changes" indicator appears next to the save button.
  2. Click Save Preferences to persist the changes.
  3. A success toast confirms the save. The indicator disappears.

Preference updates are recorded in the audit log.

These settings are personal — they only affect your account and do not change company-wide notification configuration.


Audit Logging

The following actions are logged to auditLog automatically:

  • Profile field updates (display name, avatar)
  • Notification preference saves

Technical Reference

tRPC Router: personalSettings

The personalSettings router is registered at the application root and exposes the following procedures:

ProcedureTypeDescription
getProfileQueryReturns the current user's profile data
updateProfileMutationUpdates display name and/or avatar URL
getPasswordManagementInfoQueryReturns the OIDC account URL and explanatory message
getNotificationPreferencesQueryReturns all 8 preference flags for the current user
updateNotificationPreferencesMutationPersists all 8 preference flags (upsert)

Database Table: user_notification_preferences

Defined in src/db/user-notification-preferences-schema.ts and re-exported from src/db/schema.ts.

Columns:

ColumnTypeDefault
userIdstring (FK)
taskAssignmentEmailbooleantrue
taskAssignmentInAppbooleantrue
offerStatusEmailbooleantrue
offerStatusInAppbooleantrue
renewalAlertEmailbooleantrue
renewalAlertInAppbooleantrue
complianceWarningEmailbooleantrue
complianceWarningInAppbooleantrue

Rows are created via upsert on first access — existing users are not affected until they visit the page.