Skip to content

Users

Manage users within your organization. Users are assigned roles that control their access to features through granular permissions.

Users can be either native (created in the organization) or members (added from another organization). The is_member field in responses indicates cross-org members, who have limited update/delete behavior.

All users (regardless of role) can access their profile to view account information and change their password. The Profile page is accessible from the user menu in the top navigation.

Terminal window
GET /api/me
{
"status": "success",
"data": {
"id": "uuid",
"email": "user@example.com",
"full_name": "John Doe",
"role": {
"id": "uuid",
"name": "admin",
"description": "Full access to all features"
},
"permissions": ["users:read", "users:create", "contacts:read", "..."],
"is_super_admin": false,
"created_at": "2024-01-01T00:00:00Z"
}
}
Terminal window
PUT /api/me/password
{
"current_password": "oldpassword",
"new_password": "newsecurepassword"
}
FieldTypeRequiredDescription
current_passwordstringYesCurrent password for verification
new_passwordstringYesNew password (minimum 8 characters)
{
"status": "success",
"data": {
"message": "Password changed successfully"
}
}

Retrieve all users in your organization.

Terminal window
GET /api/users
ParameterTypeDescription
searchstringFilter by name or email (case-insensitive)
role_idstringFilter by role UUID
online_onlybooleanFilter to return only online users (true/false)
pageintegerPage number (default: 1)
limitintegerItems per page (default: 50)
{
"status": "success",
"data": {
"users": [
{
"id": "uuid",
"email": "user@example.com",
"full_name": "John Doe",
"role_id": "uuid",
"role": {
"id": "uuid",
"name": "agent",
"is_system": true,
"permissions": [
{
"id": "uuid",
"resource": "messages",
"action": "create",
"description": "Send messages"
}
]
},
"is_active": true,
"is_available": true,
"is_super_admin": false,
"is_member": false,
"organization_id": "uuid",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
],
"total": 1,
"page": 1,
"limit": 50,
"online_count": 1
}
}

Retrieve a single user.

Terminal window
GET /api/users/{id}
{
"status": "success",
"data": {
"id": "uuid",
"email": "user@example.com",
"full_name": "John Doe",
"role_id": "uuid",
"role": {
"id": "uuid",
"name": "agent",
"is_system": true
},
"is_active": true,
"is_available": true,
"is_super_admin": false,
"is_member": false,
"organization_id": "uuid",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
}

Create a new user in your organization.

Terminal window
POST /api/users
{
"email": "newuser@example.com",
"password": "securepassword",
"full_name": "Jane Smith",
"role_id": "uuid"
}
FieldTypeRequiredDescription
emailstringYesUnique email address
passwordstringYesMinimum 12 characters
full_namestringYesDisplay name
role_idstringNoUUID of the role to assign. If not provided, uses the organization’s default role
{
"status": "success",
"data": {
"id": "uuid",
"email": "newuser@example.com",
"full_name": "Jane Smith",
"role_id": "uuid",
"role": {
"id": "uuid",
"name": "agent",
"is_system": true
},
"is_active": true,
"is_available": true,
"is_super_admin": false,
"is_member": false,
"organization_id": "uuid",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
}

Update user details or role.

Terminal window
PUT /api/users/{id}
{
"full_name": "Jane Doe",
"role_id": "uuid",
"is_active": true
}
FieldTypeDescription
emailstringNew email address
passwordstringNew password (min 12 chars)
full_namestringDisplay name
role_idstringUUID of the role to assign
is_activebooleanEnable/disable user

Remove a user from the organization.

Terminal window
DELETE /api/users/{id}
{
"status": "success",
"data": {
"message": "User deleted successfully"
}
}

Users can set their availability status for chat routing.

Terminal window
PUT /api/me/availability
{
"is_available": true
}
{
"status": "success",
"data": {
"message": "Availability updated successfully",
"is_available": true,
"status": "available",
"break_started_at": null,
"transfers_to_queue": 0
}
}

Retrieve all organizations the current user belongs to. Used by the organization switcher.

Terminal window
GET /api/me/organizations
{
"status": "success",
"data": {
"organizations": [
{
"organization_id": "uuid",
"name": "Acme Corp",
"slug": "acme-corp-a1b2c3d4",
"role_name": "admin",
"role_id": "uuid",
"is_default": true
},
{
"organization_id": "uuid",
"name": "Partner Org",
"slug": "partner-org-e5f6g7h8",
"role_name": "agent",
"role_id": "uuid",
"is_default": false
}
]
}
}