Skip to content

Assign Team Role

PUT
/sales-coach/team/users/{user_id}/role

Grant a Team HQ role. THIS REPLACES THE PERSON’S PERMISSIONS.

cb_user_roles has a composite primary key on (user_id, org_id), so the new row replaces whatever they had - this is a privilege grant, not a label on a dashboard.

The app’s three rules apply unchanged and each is a 403:

  • the caller must be able to manage the team floor;
  • no self-assignment, or a manager could re-role themselves;
  • the caller must already hold every permission of the role they are granting, unless they are an org Owner or Admin - Settings’ non-escalation rule.

Only the five Team HQ slugs are assignable. admin is not one of them and is refused at the request layer.

Authorizations

Parameters

Path Parameters

user_id
required

The member to re-role.

string

The member to re-role.

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Grant one Team HQ role to an existing member of the caller’s org.

A role REPLACES the person’s whole permission set - cb_user_roles has a composite primary key on (user_id, org_id), so there is exactly one row per person per org. This is a privilege grant, not a label.

object
slug
required

The role to grant. admin is not assignable here - it belongs to Settings -> Roles, behind the full RBAC admin gate.

string
Allowed values: ae sdr csm campaign_manager sales_manager

Responses

200

Successful Response

object
data
required

An open envelope for a config, a bootstrap or a data response.

Open because the leaderboard and set DATA responses carry one key per KPI and the KPI catalogue is org-configurable: a closed model would drop a customer’s own metric, and a leaderboard missing a column reads as a rep having scored nothing.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string