Users & structure
Teams
A team is a named group of users in the account. Teams label users rather than extensions: they decide which call tags a user may see, where a conversation can be assigned, who receives the AI call recap email and which extensions the availability report shows. This group holds the v3 team list and the create, read, update and delete endpoints, plus, under Teams / Users, the membership endpoints. The v2 Departments endpoints work on the same records under their older name, so a team id here is a department id there.
Workflow (what the portal does)
- List:
GET /v3/teamswithpage(15 teams per page;per_pageis not read),sort(idor-id;idby default) andinclude:usersCountfillsusers_count,usersembeds the full member list,teamembeds a preview of at most three members. The response is{"data": [...], "links": {...}, "meta": {...}}; each team isid,nameandusers_count(nullunless you include it). An unknownincludeorsortanswers400. - Create:
POST /v3/teamswithname(required, at most 20 characters) and optionalmembers, an array of user ids. Every id must be a user of your account whose membership has not been deleted; otherwise422withOne or some of the provided users does not belong to this account.. Answers201with the team'sidandname. Pick the ids fromGET /v3/users(see Users). - Read:
GET /v3/teams/{teamId}answersid,name,users_countandusers, the members as user rows (user_id,user_name,user_email,mobile,extension,user_active,last_login). An unknown id, or a team of another account, answers404. - Rename or replace the members:
PUT /v3/teams/{teamId}takes the same body as create.membersreplaces the whole membership, and a request withoutmembersempties the team. Answers200withidandname. - One member at a time:
GET /v3/teams/{teamId}/userslists the members, 15 perpage, as the user rows above;PUT /v3/teams/{teamId}/users/{user}adds the user (no body) and answers200with the team and its newusers_count;DELETE /v3/teams/{teamId}/users/{user}removes them and answers204. A{user}who is not a member of your account answers404. The same membership is edited from the user's side withuser.departmentsonPUT /v3/users/{user}. - Delete:
DELETE /v3/teams/{teamId}answers204.
What a team does
Teams are used by reference, through their id, in these places:
- Users: every row of
GET /v3/usersand the profile inGET /v3/users/{user}carrydepartments, the user's teams asidandname. - Call tags: a tag with the visibility rule
{"type": 2, "allowed_id": <team id>}is shown only to the members of that team — see Call Tags. - Conversations: an SMS or WhatsApp conversation can be assigned to a team (
department_idon the assign endpoint,assigned_department_idon the conversation), and the auto-assignment rules can target a team — see Conversations. - Extension activity: the availability report in Extensions takes
departmentIdand keeps only the extensions of that team's members. - AI call recaps: the recipients of the recap email are user ids and team ids written as
d<id>— see Account.
A team owns no extension, number or queue. Whatever applies to a team applies to the extensions of its members: a user has at most one extension per account, so a team's extensions are its members' extensions.
Roles and access
- Every endpoint in this group, writes included, is open to any authenticated user of the account; none requires an account admin. The v2 Departments endpoints, by contrast, allow writes to admins only.
- Teams belong to the account of the token: another account's team id answers
404, andmembersmay name only users of your account. - The ISO dates option (per account) changes the
last_loginformat in member rows — see Dates and timezones.
Pitfalls
PUT /v3/teams/{teamId}is a full replacement: a body with onlynameremoves every member. Send the completememberslist, or use the per-member endpoints.- Team names are not unique: two teams can share a name, so key your data on
id. users_countisnullon the list unless you addinclude=usersCount, andnullon the create and update answers;usersis present only onGET /v3/teams/{teamId}and withinclude=users.include=teamis a preview capped at three members per team; useinclude=usersor the members endpoint for the full list.- The page size is fixed at 15;
per_pageis ignored. - Adding a user who is already a member answers
200and changes nothing; removing a user who is not a member answers204. - Validation errors answer
422as{"errors": {...}}. - The same number identifies a team everywhere:
idhere,{department}in the v2 endpoints,allowed_idin call tag visibility andd<id>in the AI recap recipients.