Teams API
Teams¶
A team object contains the following attributes.
| Attribute | Type | Description |
|---|---|---|
id |
UUID | The unique identifier of this team. |
organization_id |
UUID | ID of the organization who owns this team. |
organization |
object | The organization who owns this team. |
name |
string | Name of the team. Must be a non-empty string. |
display_name |
string | Display name of the team. When a team is shared, this name is shown for the receiving organization. |
member_count |
integer | Number of members (team membership(s)) in this team. Available only to your own organization. |
present_member_count |
integer | Number of present both members (team membership(s)) in this team. Available only to your own organization. |
is_online |
boolean | Whether the team is currently online, i.e. any user member from the team is online. See user(s) for more information. |
is_humans_online |
boolean | Whether there is at least one non bot user online in the team. Useful for developing chatbots and AI agents, that need to know if they can transfer chats to people. |
is_present |
boolean | Whether the team is currently present, i.e. any user member from the team is present. See user(s) for more information. |
created_by_user_id |
UUID | The ID of the user who created the team. |
created_by_user |
object | The user who created the team. |
updated_by_user_id |
UUID | The ID of the user who updated the team. |
updated_by_user |
object | The user who updated the team. |
created_at |
datetime | When the team resource was created. |
updated_at |
datetime | When the team resource was updated last time. |
group_chat_id |
UUID | Chat session id of the team's fixed group chat. |
is_connected_to_room |
boolean | Whether the team is connected to room. |
is_deleted |
boolean | Whether the team has been deleted. |
deleted_at |
datetime | When the team has been deleted. null if not deleted. |
Get a collection of organization's teams¶
Return a paginated collection of all the Team resources of an organization (<organization_id>).
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teams
| Parameter | Type | Default | Description |
|---|---|---|---|
ordering |
ordering | created_at |
Ordering of results with options created_at or -created_at |
is_deleted |
boolean | (none) | By default returns all teams. If true, returns only deleted teams. If false, returns only active teams. |
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
Retrieve organization's team details¶
Get a single team object (<team_id>) of an organization (<organization_id>). This may be a team shared to the organization.
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
Get a collection of user's teams¶
Return a paginated collection of all the Team resources of a user (<user_id>).
GET https://service.giosg.com/api/v6/users/<user_id>/teams
| Parameter | Type | Default | Description |
|---|---|---|---|
ordering |
ordering | created_at |
Ordering of results with options created_at or -created_at. |
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the user
Get a collection of organization's user teams¶
Return a paginated collection of all the Team resources of an organization's (<organization_id>) user (<user_id). This means teams to which the user belongs to.
GET https://service.giosg.com/api/v6/orgs/<organization_id>/users/<user_id>/teams
| Parameter | Type | Default | Description |
|---|---|---|---|
ordering |
ordering | created_at |
Ordering of results with options created_at or -created_at. |
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 404 if user was not found
Retrieve user's team details¶
Get a single team object (<team_id>) of a user (<user_id>).
GET https://service.giosg.com/api/v6/users/<user_id>/teams/<team_id>
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the user
- 404 if team was not found
Create a team¶
Create a team for an organization (<organization_id>)
Example request payload
1 2 3 | |
POST https://service.giosg.com/api/v6/orgs/<organization_id>/teams
| Attribute | Required | Value |
|---|---|---|
name |
required | Must be a non-empty string |
This endpoint returns:
- 201 if the request was successful
- 400 if required attributes are missing from the request
- 400 if the request payload is in wrong format
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if user was not found
Update a team¶
You may update the name of a team (<team_id>) that belongs to an organization (<organization_id>). You may also restore a deleted team.
PUT https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>
PATCH https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>
| Attribute | Required | Value |
|---|---|---|
name |
optional | Must be a non-empty string |
is_deleted |
optional | Set as false to restore a deleted team. true is not a valid value - use DELETE request to delete a team instead. |
This endpoint returns:
- 200 if the request was successful
- 400 if required attributes are missing from the request
- 400 if the request payload is in wrong format
- 400 if trying to update
is_deletedtotrue - 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if team was not found
Delete a team¶
Warning
Deleting a team will set the team and all its memberships as deleted. It will unshare the team from your partners!
You may delete one of your own teams by making a DELETE request.
DELETE https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>
This endpoint returns:
- 204 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if team was not found
Team memberships¶
A team membership represents a user belonging to a specific team. Team memberships are only visible for teams of your own organization. A team membership resource has the following attributes.
| Attribute | Type | Description |
|---|---|---|
team_id |
UUID | ID of the team to which this member belongs. |
team |
object | The Team to which this member belongs, with attributes id, name, display_name, and organization_id. |
user_id |
UUID | ID of the member user. |
user |
object | The member user resource, with attributes id, first_name, last_name, full_name and organization_id. |
created_by_user_id |
UUID | The ID of the user who created the membership. |
created_by_user |
object | The user who created the membership. |
created_at |
datetime | When the membership resource was created. |
is_deleted |
boolean | Whether the membership has been deleted. |
deleted_at |
datetime | When the membership has been deleted. null if not deleted. |
Team memberships are readable by any member of the same organization. However, they can be created or deleted only by organization users with users permission. Otherwise, the endpoints will return a 403 Forbidden response.
Get a collection of team memberships¶
Return a paginated collection of all the team membership resources for a specific Team.
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships
| Parameter | Type | Default | Description |
|---|---|---|---|
ordering |
ordering | created_at |
Ordering of results with options created_at or -created_at |
is_deleted |
boolean | (none) | By default returns all memberships. If true, returns only deleted memberships. If false, returns only active memberships. |
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 404 if team was not found
Add a member to a team¶
You may add a user of your own organization to one of your teams by creating a team membership object.
Example request payload
1 2 3 | |
POST https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships
| Attribute | Required | Value |
|---|---|---|
user_id |
required | UUID of the member user |
This endpoint returns:
- 200 if the user was already member of team
- 201 if user was added to the team
- 400 if required attributes are missing from the request
- 400 if the request payload is in wrong format
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if team was not found
Restore deleted member¶
You may restore a deleted membership to a team.
PUT https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships/<user_id>
PATCH https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships/<user_id>
| Attribute | Required | Value |
|---|---|---|
is_deleted |
required | Set as false to restore a deleted membership. true is not a valid value - use DELETE request to delete a membership instead. |
This endpoint returns:
- 200 if the membership was successfully restored
- 400 if required attributes are missing from the request
- 400 if the request payload is in wrong format
- 400 if trying to update
is_deletedtotrue - 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if team was not found
Remove a member from a team¶
You may remove a user from a team by deleting her membership.
DELETE https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships/<user_id>
This endpoint returns:
- 204 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 403 if you do not have
userspermission - 404 if team was not found
- 404 if user was not found
Retrieve team membership details¶
You may get the a user membership resource in a team:
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/memberships/<user_id>
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 404 if team was not found
- 404 if user was not found
Team users¶
A team user represents a user belonging to a specific team. Team users are only visible for teams of your own organization. Team users are readable by any member of the same organization.
Get a collection of team users¶
Return a paginated collection of all the team user resources of an organization.
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teams/<team_id>/users
| Parameter | Type | Default | Description |
|---|---|---|---|
ordering |
ordering | created_at |
Ordering of results with options created_at or -created_at |
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization
- 404 if team was not found
Teamless users¶
A teamless user represents a user that is not a member of any team.
Get a collection of teamless users¶
Return a paginated collection of all the teamless user resources of an organization.
GET https://service.giosg.com/api/v6/orgs/<organization_id>/teamless_users
This endpoint returns:
- 200 if the request was successful
- 401 if you are not authenticated
- 403 if you do not have active subscription
- 403 if you do not have access to the organization