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.
/settings/profile directly. The page renders inside the dashboard shell so the system switcher and topbar account chrome stay in place.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. |
Name fields
| Field | Notes |
|---|---|
| First Name | Plain text, capped at 50 characters. |
| Last Name | Same rules as First Name. |
Contact
| Field | Notes |
|---|---|
| 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. |
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. |
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. |
Validation summary
| Field | Max length | Validation message |
|---|---|---|
| First name | 50 chars | (none, length-capped) |
| Last name | 50 chars | (none, length-capped) |
| 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
Why is my email read-only?
Why is my email read-only?
The Save Changes button does nothing.
The Save Changes button does nothing.
My avatar uploaded but the topbar circle did not change.
My avatar uploaded but the topbar circle did not change.
I uploaded a SVG and got nothing.
I uploaded a SVG and got nothing.
My phone number disappeared after I saved.
My phone number disappeared after I saved.
Why does the website URL field reject http:// links?
Why does the website URL field reject http:// links?
https:// is accepted; http://, javascript:, and data: URIs are blocked. Type the full https URL or leave the field empty.The Detect button under Time Zone set the wrong zone.
The Detect button under Time Zone set the wrong zone.
The Reset Password dialog rejects my new password but the rule is not obvious.
The Reset Password dialog rejects my new password but the rule is not obvious.
Disable two-factor asks for a confirmation but does nothing.
Disable two-factor asks for a confirmation but does nothing.
Delete Account is the wrong button to undo something. How do I revert a single change?
Delete Account is the wrong button to undo something. How do I revert a single change?
The page is stuck on the placeholder bars and never loads.
The page is stuck on the placeholder bars and never loads.

