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, 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