> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wittify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Profile Settings

> Personal information, preferences, company, security, and account deletion. The same settings appear regardless of which Wittify product you are in.

<Note>
  **Profile Settings** is the cross-system page that holds your personal details, time zone, company info, security toggles, and account deletion. It is the same page no matter which Wittify product you opened it from. Open it from the topbar profile dropdown's **Settings** entry, from the sidebar **System → Settings** submenu, or by visiting `/settings/profile` directly. The page renders inside the dashboard shell so the system switcher and topbar account chrome stay in place.
</Note>

## Reaching this page

The page header reads:

| Element         | What you see                                                                   |
| --------------- | ------------------------------------------------------------------------------ |
| Title           | **Profile Setting**                                                            |
| Subtitle        | *Edit your profile*                                                            |
| End-edge button | **Reset Password** (outline). Opens the reset password dialog described below. |

## Initial loading

While the page fetches your profile from the server, the body shows a sequence of pulsing placeholder bars in the same shape as the form. Save and Discard are disabled until the load finishes. This avoids two flashes (briefly empty inputs, then a default Saudi flag in the country dropdown) before the real values land.

If the load fails, you can still edit and save; the next save tries to recover.

## Personal Information

A card with the heading **Personal Information**. Avatar at the top, then name, then email and phone.

### Avatar

| Element                 | Notes                                                                                                                                                                                      |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Display                 | A 64-pixel circle that shows your uploaded image. If none is uploaded, it shows your initials (first letter of first name + first letter of last name) on a brand-gradient background.     |
| **Upload Image** button | Opens the system file picker. Accepts PNG, JPEG, and WebP only (SVG is rejected). The chosen image is read locally; the file is rejected if it exceeds about 1 megabyte after preparation. |
| **Remove Image** button | Outline-style. Disabled when no image is set. Clears the avatar back to the initials-only fallback.                                                                                        |

The topbar avatar in the dashboard updates the moment the change saves so every open tab stays in sync.

### Name fields

| Field          | Notes                                |
| -------------- | ------------------------------------ |
| **First Name** | Plain text, capped at 50 characters. |
| **Last Name**  | Same rules as First Name.            |

### Contact

| Field              | Notes                                                                                                                                                                                                                                                                                                 |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Email**          | Read-only — to change your email, contact support; the change is a separate flow that requires reverification. Validation message on bad value: *Please enter a valid email address.*                                                                                                                 |
| **Contact Number** | Two parts. The leading dropdown lists 50 countries with flag and dial code; the trailing input takes the local number. The dial code and number are joined into one phone string when saved. If the saved number is invalid, the field highlights red and shows: *Please enter a valid phone number.* |

## Preferences

A card with the heading **Preferences**.

| Field         | Notes                                                                                                                                                    |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Time Zone** | A dropdown of standard time zone codes (e.g. *Asia/Riyadh*). A small **Detect** button next to it sets it to the time zone your browser is currently in. |

## Company

A card with the heading **Company**.

| Field            | Notes                                                                                                                                                                                                   |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Company Name** | Plain text, capped at 100 characters. Optional.                                                                                                                                                         |
| **Website URL**  | Must start with `https://`. Optional. Validation message on bad value: *Please enter a valid https\:// URL.* The save payload converts an empty string to "no value" so the field clears on the server. |

## Security

A card with the heading **Security**.

### Two-factor authentication

A row with a label and a switch.

| Element              | What you see                                                                                                                                                                                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Label                | **Two-factor authentication** with the descriptor **Enabled** or **Disabled** below.                                                                                                                                                                         |
| Switch               | Click to flip. Enabling 2FA is one click (security-positive).                                                                                                                                                                                                |
| Disable confirmation | Disabling opens a confirmation dialog. Title: *Disable two-factor authentication?* Body: *Turning off two-factor authentication will reduce the security of your account. You can re-enable it at any time.* The destructive button is labelled **Disable**. |

### Reset Password

The **Reset Password** button in the page header opens a dialog.

| Element                    | What it shows                                                                                                                                                                               |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Title                      | **Reset Password**                                                                                                                                                                          |
| **Current Password** field | Required. Placeholder *Current Password*. An eye toggle on the end edge flips between hidden and visible characters; the icon's accessible label is **Show password** or **Hide password**. |
| **New Password** field     | Required. Same eye toggle. Validation: *Password must be at least 8 characters with an uppercase letter and a number.*                                                                      |
| **Confirm Password** field | Required. Validation when the two new-password values disagree: *Passwords do not match.*                                                                                                   |
| **Submit** button          | Disabled until every field is filled and the new password meets the strength rule. Submitting an unchanged password is rejected as a no-op.                                                 |
| **Cancel** button          | Closes the dialog.                                                                                                                                                                          |
| Toast on success           | *Password updated.*                                                                                                                                                                         |

The dialog unmounts when closed so password fields are cleared from memory.

## Footer action bar

A sticky bar at the bottom of the page.

| Button              | Behavior                                                                                                                                                                                                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Discard Changes** | Outline-style. Opens a confirmation dialog. Title: *Discard changes?* Body: *Your unsaved changes will be lost.* The destructive **Discard** button resets the form to the last saved state. Toast on success: *Changes discarded.*                                            |
| **Save Changes**    | Solid primary. Disabled while a save is in flight. While saving, the label flips to **Saving** with a spinner. Sends each changed field to the server. Toast on success: *Profile updated.* Toast on validation failure: the inline error appears next to the offending field. |
| **Delete Account**  | Destructive (red text on red border). Opens the typed-keyword confirmation dialog.                                                                                                                                                                                             |

The action bar's end-edge padding clears the floating chat widget launcher in the bottom-end corner so **Save Changes** is never covered.

## Delete Account

The **Delete Account** button opens the most destructive dialog on the page.

| Element                   | What it says                                                                                                                 |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Title                     | **Delete your account?**                                                                                                     |
| Body                      | *This action cannot be undone. All your data, agents, and settings will be permanently deleted.*                             |
| Hint                      | *Type DELETE to confirm.*                                                                                                    |
| Confirmation input        | Type the keyword **DELETE** to confirm.                                                                                      |
| **Cancel** button         | Closes the dialog. Disabled while a delete is in flight.                                                                     |
| **Delete Account** button | Red destructive button. Disabled until the input matches **DELETE** exactly (case-sensitive). Shows a spinner while running. |

On success you are signed out and redirected. Toast: *Account deleted.*

## Validation summary

| Field                    | Max length                 | Validation message                                                             |
| ------------------------ | -------------------------- | ------------------------------------------------------------------------------ |
| First name               | 50 chars                   | (none, length-capped)                                                          |
| Last name                | 50 chars                   | (none, length-capped)                                                          |
| Email                    | 254 chars                  | *Please enter a valid email address*                                           |
| Phone                    | 20 chars in the local part | *Please enter a valid phone number*                                            |
| Company name             | 100 chars                  | (none, length-capped)                                                          |
| Website URL              | 200 chars                  | *Please enter a valid https\:// URL*                                           |
| Reset password (new)     | 128 chars                  | *Password must be at least 8 characters with an uppercase letter and a number* |
| Reset password (confirm) | 128 chars                  | *Passwords do not match*                                                       |
| Delete confirmation      | 10 chars                   | (button stays disabled until the input is exactly **DELETE**)                  |

## Common questions

<AccordionGroup>
  <Accordion title="Why is my email read-only?">
    Email is the primary identifier on your account. Changing it requires reverifying ownership of the new address, which is a separate flow handled by support today; it is not exposed on this page.
  </Accordion>

  <Accordion title="The Save Changes button does nothing.">
    Either no field has been edited, the page is still loading, or a previous save is in flight. Save quietly closes when the saved values match the form's current values. If the button is greyed out, look for a red field highlight; one of the validation rules is not satisfied.
  </Accordion>

  <Accordion title="My avatar uploaded but the topbar circle did not change.">
    The topbar avatar reads from the same in-memory profile store and updates as soon as the save resolves. If the change does not appear, check the toast: a save failure leaves the old avatar visible. Refresh the page to pull fresh state from the server.
  </Accordion>

  <Accordion title="I uploaded a SVG and got nothing.">
    SVGs are rejected during the upload step because they can carry executable content. Convert your image to PNG, JPEG, or WebP and upload again.
  </Accordion>

  <Accordion title="My phone number disappeared after I saved.">
    The number is joined with the dial code from the country dropdown into a single international phone string. If the dropdown was reset to a country that does not match your number, the join can produce an invalid value that the server returns as null. Pick the right country code first, then enter the local number, then save.
  </Accordion>

  <Accordion title="Why does the website URL field reject http:// links?">
    Only `https://` is accepted; `http://`, `javascript:`, and `data:` URIs are blocked. Type the full https URL or leave the field empty.
  </Accordion>

  <Accordion title="The Detect button under Time Zone set the wrong zone.">
    The button reads the time zone your browser reports. Pick the correct one from the dropdown manually if your browser is misconfigured (a VPN, for example, can spoof the reported zone).
  </Accordion>

  <Accordion title="The Reset Password dialog rejects my new password but the rule is not obvious.">
    The new password must be at least 8 characters and contain at least one uppercase letter and one digit. Common slips: pasting a password with leading or trailing whitespace, or a no-op (current and new are the same value) which the server rejects.
  </Accordion>

  <Accordion title="Disable two-factor asks for a confirmation but does nothing.">
    The destructive button is labelled **Disable**. Clicking **Cancel** closes the dialog without disabling. The intent is to make accidental disabling impossible; one click cannot turn 2FA off.
  </Accordion>

  <Accordion title="Delete Account is the wrong button to undo something. How do I revert a single change?">
    Click **Discard Changes** in the bottom bar, not **Delete Account**. **Delete Account** is permanent and removes every project, agent, conversation, and setting tied to your account.
  </Accordion>

  <Accordion title="The page is stuck on the placeholder bars and never loads.">
    The initial fetch failed or is taking very long. Refresh the tab; if it persists, check the topbar account dropdown is signed in. The page falls back to default values only after a successful fetch, so a permanent loading state is a sign of a network or auth problem, not a save issue.
  </Accordion>
</AccordionGroup>

## Where to go next

<CardGroup cols={2}>
  <Card title="Notification Settings" icon="bell" href="/en/Account/Notification-Settings">Per-event email + in-app preferences.</Card>
  <Card title="User Activities" icon="list-ul" href="/en/Account/User-Activities">Audit log of every account action.</Card>
  <Card title="Plans and Subscriptions" icon="credit-card" href="/en/Account/Plans-and-Subscriptions">Billing tab, active add-ons, plans grid, payment method, history.</Card>
  <Card title="Dashboard" icon="grid" href="/en/Systems/AI-Agents/Dashboard">Back to the AI Agents dashboard.</Card>
</CardGroup>
