Update Profile
Partially updates the authenticated customer’s profile. The same endpoint is used across all profile editing pages in the portal — personal information, billing details, notification preferences, account credentials, and the professional (public-facing) profile. Send only the fields you want to change; omitted fields are left unchanged.
Authentication
Requires a valid customer bearer token.
Request Body
Send a JSON object containing only the fields to update. All fields are optional; omitting a field leaves the current value unchanged.
The customer’s display name.
Optional informal name displayed in some community contexts.
Gender identifier. Used for salutation generation.
ISO 8601 date of birth (e.g. "1990-06-15").
Mobile phone number in any format.
Numeric country identifier. Obtain valid IDs from GET /api/public/countries.
Name to appear on invoices.
Email address for invoice delivery.
Numeric country identifier for the billing address.
VAT or tax identification number printed on invoices.
Professional Profile
Job title displayed on the public directory profile.
Company name displayed on the public directory profile.
Industry or area of work.
Free-text professional bio. Supports Markdown. Displayed on the public directory profile when ProfileIsPublic is true.
Personal or company website URL.
When true, the customer’s profile is listed in the member directory.
Comma-separated skill or interest tags shown on the directory profile.
Twitter profile URL or handle.
GitHub profile URL or username.
Instagram profile URL or handle.
Notification Preferences
When true, the customer receives email notifications for new help desk replies.
When true, the customer receives email notifications for new community board posts.
When true, the customer receives email notifications for new blog comments.
When true, the customer receives email notifications for new event comments.
When true, the customer receives a periodic community activity digest email.
When true, the customer is opted in to the space’s newsletter.
Credentials
The customer’s current password. Required when changing the password.
The new password to set. Must satisfy the location’s password policy.
Must match NewPassword exactly. Validated server-side.
Response
Returns an ActionConfirmation envelope.
true when the profile was updated successfully.
HTTP-style status code mirrored in the body. 200 on success.
Human-readable message. Usually null on success.
Validation error object. null on success. Check this when WasSuccessful is false.
Example Response
{
"WasSuccessful": true,
"Value": null,
"Status": 200,
"Message": null,
"Errors": null
}
TypeScript Integration
import endpoints from '@/api/endpoints'
import { ActionConfirmation } from '@/types/ActionConfirmation'
const result = await httpClient.patch<ActionConfirmation>(endpoints.profile.patch, {
FullName: 'Jane Doe',
Position: 'Product Designer',
ProfileIsPublic: true,
})
if (result.data.WasSuccessful) {
// Refresh profile data and show success toast
}
Usage in Portal
| Context | Source file |
|---|
Personal information form (/profile) | src/views/user/PersonalInformationPage.tsx |
Professional profile form (/profile) | src/views/user/ProfessionalProfilePage.tsx |
Billing information form (/profile) | src/views/user/BillingInformationPage.tsx |
Notification preferences (/profile) | src/views/user/NotificationsPage.tsx |
Change password (/profile) | src/views/user/CredentialsPage.tsx |
Error Responses
The bearer token is missing, expired, or invalid.
One or more fields failed validation (e.g. password mismatch, invalid CountryId). Check Errors in the response body.
| Method | Endpoint | Description |
|---|
GET | /login/me? | Retrieve the current user session and notification preferences |
GET | /en/profile?_resource=Coworker | Retrieve the full customer profile for editing |
GET | /api/public/coworkers/profiles | List all customer profiles for the session |
POST | /en/profile/GenerateOpenAiProfile | Generate an AI-written professional profile summary |