openapi: 3.1.0
info:
title: Helpcenter Team API
version: 1.0.0
tags:
- name: Team
paths:
/api/v1/departments/{departmentId}/teams:
get:
tags:
- Team
summary: List teams in department
description: This API fetches details of all the teams in a particular department.
operationId: getTeamsInDepartment
parameters:
- name: departmentId
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/teams:
get:
tags:
- Team
summary: List teams from all associated departments
description: This API fetches details of all teams created in all departments to which the current user belongs.
operationId: getTeams
parameters:
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
post:
tags:
- Team
summary: Create team
description: This API creates a team in your help desk portal.
operationId: createTeam
parameters:
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/teamRequestJson'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'200':
$ref: '#/components/responses/teamResponse'
security:
- iam-oauth2-schema:
- Desk.settings.CREATE
- Desk.basic.CREATE
x-audience:
- external-public
/api/v1/teams/{team_id}/deleteTeam:
post:
tags:
- Team
summary: Delete team
description: This API deletes an existing team from your help desk portal. To reassign the open and on hold tickets and tasks of the deleted team to a different team, pass the ticketNewTeam, taskNewTeam, ticketNewAgent, and taskNewAgent team parameters in the API request. If you do not want to assign the tickets to another team, pass the values of ticketNewTeam and ticketNewAgent as null. However, in the case of tasks, either taskNewTeam or taskNewAgent must have a valid value. Both parameters cannot be passed as null.
operationId: deleteTeam
parameters:
- $ref: '#/components/parameters/team_id'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/deleteTeamRequest'
responses:
'422':
$ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
'200':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.DELETE
- Desk.basic.DELETE
x-audience:
- external-public
/api/v1/teams/{teamId}/associables:
get:
tags:
- Team
summary: List associable teams
description: This API lists the other teams that can be added as sub-teams to the current team.
operationId: getSubTeamsIds
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/associableTeamListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/roles/{role_id}/teams:
get:
tags:
- Team
summary: List associated teams for a role
description: This API fetches details of all the teams associated with a particular role.
operationId: getAssociatedTeamsForRole
parameters:
- name: role_id
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/agents/{agentId}/teams:
get:
tags:
- Team
summary: List associated teams of agent
description: This API fetches details of all the teams to which an agent belongs.
operationId: listAssociatedTeamsForAgent
parameters:
- name: agentId
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/teams/{team_id}/members:
get:
tags:
- Team
summary: List details of team members
description: This API fetches details of all the members of a particular team.
operationId: getTeamMembersDetails
parameters:
- name: include
in: query
description: Secondary information related to the team. Values allowed are @profile@, @role@. You can include all two values by separating them with commas in the API request.
required: false
style: simple
explode: true
schema:
type:
- 'null'
- array
description: Secondary information related to the team. Values allowed are @profile@, @role@. You can include all two values by separating them with commas in the API request.
items:
type:
- string
- 'null'
enum:
- profile
- role
maxLength: 100
minLength: 0
maxItems: 2
uniqueItems: true
- $ref: '#/components/parameters/team_id'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamMembersListResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/teams/{teamId}:
get:
tags:
- Team
summary: Get team
description: This API fetches the details of a team.
operationId: getTeam
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/teamResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/teams/{team_id}:
patch:
tags:
- Team
summary: Update team
description: This API updates details of an existing team.
operationId: updateTeam
parameters:
- $ref: '#/components/parameters/team_id'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/teamUpdateJson'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'200':
$ref: '#/components/responses/teamResponse'
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
components:
responses:
associableTeamListResponse:
description: associableTeamListResponse template definitions
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
teams:
$ref: ./Team.json#/components/schemas/teamIds
required:
- teams
examples:
Valid responses Definitions:
value:
teams:
- 6000000011303
- 6000000017021
- 6000000017023
- 6000000016013
- 6000000017017
- 6000000016015
- 6000000017019
- 6000000017013
- 6000000017015
- 6000000017009
- 6000000012001
- 6000000017011
- 6000000017005
- 6000000016025
- 6000000017007
- 6000000017059
- 6000000016027
- 6000000017001
- 6000000016029
- 6000000017003
- 6000000016031
- 6000000016017
- 6000000015001
- 6000000016019
- 6000000016021
teamResponse:
description: teamResponse template definitions
content:
application/json:
schema:
additionalProperties: false
allOf:
- $ref: ./Team.json#/components/schemas/teamJson
- type:
- 'null'
- object
properties:
derivedAgents:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
id:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
logoUrl:
type:
- string
- 'null'
maxLength: 200
minLength: 0
pattern: (^(ht|f)tp(s?)\://[-.\w]*(/?)([a-zA-Z0-9\-\.\?\,\:\'/\\+=&%\$#_@]*)?$)
required:
- derivedAgents
- id
- logoUrl
examples:
Valid responses Definitions:
value:
rolesWithSubordinates:
- '6000000008684'
- '6000000008686'
departmentId: '6000000009893'
roles:
- '6000000011311'
- '6000000011307'
name: Sales Reps.
description: Sales teams for winning customers.
derivedAgents:
- '6000000009086'
- '6000000012003'
id: '6000000014007'
subTeams:
- '6000000011303'
logoUrl: null
agents:
- '6000000009086'
teamListResponse:
description: teamListResponse template definitions
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
teams:
$ref: ./Team.json#/components/schemas/teamResponseArray
required:
- teams
examples:
Valid responses Definitions:
value:
teams:
- rolesWithSubordinates: []
departmentId: '60000000839483'
roles:
- '60000000098623'
name: Sales Reps.
description: Sales teams for winning customers.
derivedAgents:
- '6000000011313'
- '60000000120230'
id: '6000000083003'
subTeams: []
logoUrl: null
agents: []
- rolesWithSubordinates: []
departmentId: '60000000839483'
roles: []
name: Support Teams
description: Support teams for solving customer issues.
derivedAgents:
- '6000000011313'
id: '6000000083034'
subTeams: []
logoUrl: null
agents:
- '6000000011313'
teamMembersListResponse:
description: teamMembersListResponse template definitions
content:
application/json:
schema:
allOf:
- type: object
properties:
members:
type: array
items:
type: object
properties:
role:
type:
- 'null'
- object
additionalProperties: false
maxProperties: 2
minProperties: 2
properties:
name:
type:
- string
- 'null'
maxLength: 100
minLength: 0
id:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
required:
- id
- name
profile:
type:
- 'null'
- object
additionalProperties: false
maxProperties: 2
minProperties: 2
properties:
name:
type:
- string
- 'null'
maxLength: 50
minLength: 0
id:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
required:
- id
- name
- type:
- 'null'
- object
additionalProperties: false
properties:
members:
$ref: ./Team.json#/components/schemas/teamMembersDetailsList
required:
- members
examples:
Valid responses Definitions:
value:
members:
- firstName: ''
lastName: John
photoURL: https://contacts.zoho.com/file?t=user&ID=437793
roleId: '7000000012324'
profileId: '7000000012339'
emailId: john@zylker.com
id: '7000000013328'
zuid: '437793'
- firstName: Steve
lastName: Kyle
photoURL: null
roleId: '7000000012324'
profileId: '7000000012339'
emailId: kyle@zylker.com
id: '7000000012958'
zuid: '5625416'
parameters:
teamId:
name: teamId
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
team_id:
name: team_id
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
requestBodies:
teamRequestJson:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
roles:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
departmentId:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
name:
type:
- string
- 'null'
maxLength: 50
minLength: 1
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
description:
type:
- string
- 'null'
maxLength: 255
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
subTeams:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
agents:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
required:
- departmentId
- name
examples:
Valid requestBody Definitions:
value:
rolesWithSubordinates:
- '6000000008684'
- '6000000008686'
departmentId: '6000000009893'
roles:
- '6000000011307'
- '6000000011309'
- '6000000011311'
name: Sales Representatives
description: Sales teams for customer engagement.
subTeams:
- '6000000012001'
agents:
- '6000000009086'
teamUpdateJson:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
roles:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
name:
type:
- string
- 'null'
maxLength: 50
minLength: 1
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
description:
type:
- string
- 'null'
maxLength: 255
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
subTeams:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
agents:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: true
examples:
Valid requestBody Definitions:
value:
roles:
- '6000000011307'
- '6000000011311'
name: Sales Reps.
description: Sales teams for winning customers.
subTeams:
- '6000000011303'
agents:
- '6000000009086'
deleteTeamRequest:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
ticketNewAgent:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
ticketNewTeam:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
taskNewTeam:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
taskNewAgent:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
required:
- taskNewAgent
- taskNewTeam
- ticketNewAgent
- ticketNewTeam
examples:
Valid requestBody Definitions:
value:
ticketNewAgent: '5000000013005'
ticketNewTeam: '5000000013001'
taskNewTeam: '5000000013001'
taskNewAgent: '5000000013009'
securitySchemes:
iam-oauth2-schema:
$ref: ./Common.json#/components/securitySchemes/iam-oauth2-schema
x-entity: Helpcenter