Skip to main content
PUT
/
api
/
user
/
profile
Update current user profile
curl --request PUT \
  --url https://your-instance.example.com/api/user/profile \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "fullName": "Alex Rep",
  "email": "alex@acme.example",
  "phoneNumber": "+14155550199",
  "designation": "Senior Account Executive",
  "callForwardingEnabled": true
}
'
{
  "user": {
    "_id": "5f7b1c2e8a1d4e0012c3b4a5",
    "email": "admin@acme.example",
    "fullName": "Acme Admin",
    "phoneNumber": "+14165550100",
    "organizationId": "64a1b2c3d4e5f60012345678",
    "accessRole": "ADMIN"
  },
  "persona": {
    "position": "Leasing Manager",
    "region": "Toronto",
    "timezone": "America/Toronto"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
fullName
string

Display name shown across the UI and on outbound messages signed by this user.

email
string<email>

Primary login email; must be unique across all users — endpoint returns 409 if already taken.

phoneNumber
string

Personal mobile number (E.164 preferred); rejected if it collides with a provisioned organization SMS number.

designation
string

Free-form job title (e.g., "Senior Account Executive"); used for display only.

sinchPhoneNumber
string

Assigned Sinch outbound number; used as the from-number on user-attributed SMS.

departmentId
string

ObjectId of the Department the user belongs to; controls team visibility and routing.

accessRole
string

Role granted to the user: SUPERADMIN, ADMIN, DEPARTMENT_HEAD, SALES_REP.

automations
object

Per-user automation toggles and configuration (free-form map persisted as Mixed on the User document).

callForwardingEnabled
boolean

Whether inbound calls should be forwarded to the user personal phone when they are offline or busy.

notificationPreferences
object

Per-category notification toggles (aiResponses, automationTriggers, escalations, calls, etc.). See UserNotificationPreferences.

persona
object

Persona fields written to the user linked Persona document; created on first set, otherwise merged. businessHours/timezone require the org-level override flag.

Response

Profile updated

Returned after PUT /api/user/profile. Returns the refreshed user plus the updated persona side-by-side.

user
object
required

Refreshed User document (with sensitive fields stripped).

persona
object
required

Persona document linked to a user (may be null when unset).

Example:
{
"_id": "64eea1110000000000000040",
"user": "Alex Rep",
"position": "Senior Account Executive",
"userEmail": "alex@acme.example",
"organization": "Acme Corp",
"organizationAddress": "500 Bay St, Toronto, ON",
"leadProvider": "Facebook Lead Ads",
"organizationWebsite": "https://acme.example",
"organizationCity": "Toronto",
"region": "Ontario",
"timezone": "America/Toronto",
"businessHours": "9am-6pm Mon-Fri"
}