Dixa Queues API
The Queues API from Dixa — 5 operation(s) for queues.
The Queues API from Dixa — 5 operation(s) for queues.
openapi: 3.0.3
info:
title: Dixa Agents Queues API
version: beta
servers:
- url: https://dev.dixa.io
security:
- ApiKeyAuth: []
tags:
- name: Queues
paths:
/beta/queues:
get:
tags:
- Queues
summary: List queues
description: List all queues in an organization.
operationId: getQueues
responses:
'200':
description: The list of queues in an organization
content:
application/json:
schema:
$ref: '#/components/schemas/ListQueuesOutput'
example:
data:
- id: 497d2cb4-6b48-4fa2-99d2-21c2a5bad79f
name: MyCorp main queue
isDefault: true
organizationId: 927d4b48-966b-45a3-8d7c-c6ad64f877b0
queueThresholds:
SlaPercentage: 10
slaCalculationMethod: AbandonedIgnored
offerTimeout: 10
offeringAlgorithm: OneAtATimeRandom
memberListType: SkillBased
usages:
queueId: 497d2cb4-6b48-4fa2-99d2-21c2a5bad79f
usages:
WidgetChat:
- c6f50127-7f0a-418f-943e-c62b96d8a742
- b2ac94ac-379a-4f24-995a-6473809eef6b
PstnPhone:
- '+4589977790'
Email:
- info@mycorp.dixa.io
wrapupTimeout: 10
priority: 1
offerAbandonedConversations: false
doNotOfferTimeouts:
WidgetChat: 1
isDoNotOfferEnabled: true
isPreferredAgentEnabled: false
preferredAgentTimeouts:
WhatsApp: 300
Voicemail: 300
WidgetChat: 300
FacebookMessenger: 300
Email: 43200
ContactForm: 43200
Callback: 300
PstnPhone: 300
preferredAgentOfflineTimeout: 500
personalAgentOfflineTimeout: 500
isRestricted: false
- id: 921a6e00-0845-417e-9c67-f7cb872d45f0
name: MyCorp email queue
isDefault: true
organizationId: 927d4b48-966b-45a3-8d7c-c6ad64f877b0
queueThresholds:
SlaPercentage: 10
slaCalculationMethod: AbandonedIgnored
offerTimeout: 10
offeringAlgorithm: OneAtATimeRandom
memberListType: SkillBased
usages:
queueId: 921a6e00-0845-417e-9c67-f7cb872d45f0
usages:
Email:
- info@mycorp.dixa.io
wrapupTimeout: 10
priority: 1
offerAbandonedConversations: false
doNotOfferTimeouts:
WidgetChat: 1
isDoNotOfferEnabled: true
isPreferredAgentEnabled: false
preferredAgentOfflineTimeout: 500
personalAgentOfflineTimeout: 500
isRestricted: false
'400':
description: Invalid value extracted from request context
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
post:
tags:
- Queues
summary: Create queue
description: Create a queue.
operationId: postQueues
requestBody:
description: The details for creating a queue
content:
application/json:
schema:
$ref: '#/components/schemas/CreateQueueInput'
example:
request:
name: MyCorp main queue
callFunctionality: false
isDefault: true
queueThresholds:
WaitingConversations: 10
offerTimeout: 10
offerAlgorithm: AllAtOnce
wrapupTimeout: 10
priority: 1
offerAbandonedConversations: false
doNotOfferTimeouts:
WidgetChat: 1
isDoNotOfferEnabled: true
preferredAgentTimeouts:
WhatsApp: 300
Voicemail: 300
WidgetChat: 300
FacebookMessenger: 300
Email: 43200
ContactForm: 43200
Callback: 300
PstnPhone: 300
isPreferredAgentEnabled: false
preferredAgentOfflineTimeout: 500
personalAgentOfflineTimeout: 500
isRestricted: false
required: true
responses:
'201':
description: The created queue
content:
application/json:
schema:
$ref: '#/components/schemas/CreateQueueOutput'
'400':
description: 'Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/queues/{queueId}/members:
get:
tags:
- Queues
summary: List agents
description: List all agents/admins that are members of a queue by providing the queue id.
operationId: getQueuesQueueidMembers
parameters:
- name: queueId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of the agents/admins that are members of a queue
content:
application/json:
schema:
$ref: '#/components/schemas/QueueMembersOutput'
example:
data:
- agentId: e96647c1-f697-4328-868a-19f828a6ee46
priority: 1
- agentId: 95dfa97e-dbf5-4bfc-be64-1f834baebd4e
priority: 2
'400':
description: 'Invalid value for: path parameter queueId, Invalid value extracted from request context'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
delete:
tags:
- Queues
summary: Remove agents
description: Bulk remove agents/admins from the specified queue.
operationId: deleteQueuesQueueidMembers
parameters:
- name: queueId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
description: The list of agents/admins to be removed from the queue. Up to 10 members can be specified.
content:
application/json:
schema:
$ref: '#/components/schemas/BulkQueueEndpointInput'
example:
agentIds:
- 743c3781-c882-4352-a1fa-fe5d7a673cfd
- cad2f234-8cec-4cd8-96e9-a6491a0176da
required: true
responses:
'204':
description: The bulk operation succeeded
'400':
description: 'Invalid value for: path parameter queueId, Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
patch:
tags:
- Queues
summary: Assign agents
description: Assign one or more agents/admins to a given queue.
operationId: patchQueuesQueueidMembers
parameters:
- name: queueId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
description: The list of agents/admins to be added to the queue
content:
application/json:
schema:
$ref: '#/components/schemas/BulkQueueEndpointInput'
example:
agentIds:
- c31e5e3f-1d5f-4442-83df-fd7bddd59da4
- 26ae145b-8644-4fa5-aa56-7b3dcacbe2d4
required: true
responses:
'200':
description: The list of patch action outcomes
content:
application/json:
schema:
$ref: '#/components/schemas/BulkQueueEndpointOutput'
example:
data:
- data: b41558f2-3807-44ef-8abf-a73d5ef68ff6
_type: BulkActionSuccess
- error:
id: 914a6e19-cab7-41a7-b41b-517e0ed56161
message: User not found
_type: NotFound
_type: BulkActionFailure
- error:
id: 7fecdb7e-9e37-45ef-be5e-0c14d6687aa0
message: Member is neither Agent or Admin
_type: Validation
_type: BulkActionFailure
'400':
description: 'Invalid value for: path parameter queueId, Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/queues/{queueId}/availability:
get:
tags:
- Queues
summary: Get queue availability
description: Get availability of supported channels for a given queue. Currently supported channels are adachat, kindlychat, digitalgeniuschat, genericapimessaging.
operationId: getQueuesQueueidAvailability
parameters:
- name: queueId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: The availability of supported channels for a given queue
content:
application/json:
schema:
$ref: '#/components/schemas/QueueAvailabilityOutput'
example:
data:
- channelAvailability:
genericChannelName: adachat
availability: NotAvailable
queueSize: 10
_type: GenericChannel
_type: Success
- error:
channel: kindlychat
message: Could not get availability for channel
_type: UnexpectedError
_type: Failure
'400':
description: 'Invalid value for: path parameter queueId, Invalid value extracted from request context ,queue does not exist'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'409':
description: The request could not be completed due to no supported channels configured for this organization
content:
application/json:
schema:
$ref: '#/components/schemas/Conflict'
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/queues/{queueId}:
get:
tags:
- Queues
summary: Get queue
description: Get a queue by id.
operationId: getQueuesQueueid
parameters:
- name: queueId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: The queue
content:
application/json:
schema:
$ref: '#/components/schemas/GetQueueByIdOutput'
example:
data:
id: 0bf82493-ae46-4c49-aa29-0422136269be
name: MyCorp main queue
isDefault: true
organizationId: 3de6c0f1-5e84-4d29-9ce9-84033983d4e6
queueThresholds:
SlaPercentage: 10
slaCalculationMethod: AbandonedIgnored
offerTimeout: 10
offeringAlgorithm: OneAtATimeRandom
memberListType: SkillBased
usages:
queueId: 0bf82493-ae46-4c49-aa29-0422136269be
usages:
WidgetChat:
- c6f50127-7f0a-418f-943e-c62b96d8a742
- b2ac94ac-379a-4f24-995a-6473809eef6b
PstnPhone:
- '+4589977790'
Email:
- info@mycorp.dixa.io
wrapupTimeout: 10
priority: 1
offerAbandonedConversations: false
doNotOfferTimeouts:
WidgetChat: 1
isDoNotOfferEnabled: true
isPreferredAgentEnabled: false
preferredAgentTimeouts:
WhatsApp: 300
Voicemail: 300
WidgetChat: 300
FacebookMessenger: 300
Email: 43200
ContactForm: 43200
Callback: 300
PstnPhone: 300
preferredAgentOfflineTimeout: 500
personalAgentOfflineTimeout: 500
isRestricted: true
'400':
description: 'Invalid value for: path parameter queueId, Invalid value extracted from request context'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/queues/conversation-position/{csid}:
get:
tags:
- Queues
summary: Get the position of the conversation in its current queue
description: Get the approximate position of a given conversation in its current queue.
operationId: getQueuesConversation-positionCsid
parameters:
- name: csid
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: The position of the conversation in the queue
content:
application/json:
schema:
$ref: '#/components/schemas/GetQueuedConversationPositionOutput'
example:
data:
position: 10
queuedAt: '2021-12-01T13:00:00.003Z'
'400':
description: 'Invalid value for: path parameter csid, Invalid value extracted from request context'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
components:
schemas:
Queue1:
title: Queue
type: object
required:
- id
- name
- isDefault
- organizationId
- queueThresholds
- slaCalculationMethod
- doNotOfferTimeouts
- isDoNotOfferEnabled
properties:
id:
type: string
name:
type: string
isDefault:
type: boolean
organizationId:
type: string
queueThresholds:
$ref: '#/components/schemas/Map_QueueThreshold_Int'
slaCalculationMethod:
description: 'values: [AbandonedIgnored]'
type: string
offerTimeout:
type: integer
format: int32
offeringAlgorithm:
description: 'values: [AgentPriorityOneAtATimeRandom, AllAtOnce, AgentPriorityLongestIdle, AgentPriorityAllAtOnce, LongestIdle, OneAtATimeRandom]'
type: string
memberListType:
description: 'values: [Default, SkillBased]'
type: string
usages:
$ref: '#/components/schemas/QueueUsages'
wrapupTimeout:
type: integer
format: int32
priority:
type: integer
format: int32
offerAbandonedConversations:
type: boolean
doNotOfferTimeouts:
$ref: '#/components/schemas/Map_ConversationChannel_Int'
isDoNotOfferEnabled:
type: boolean
isPreferredAgentEnabled:
type: boolean
preferredAgentTimeouts:
$ref: '#/components/schemas/Map_ConversationChannel_Int'
preferredAgentOfflineTimeout:
type: integer
format: int32
personalAgentOfflineTimeout:
type: integer
format: int32
isRestricted:
type: boolean
Integrity:
title: Integrity
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
CreateQueueOutput:
title: CreateQueueOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Queue1'
GetQueuedConversationPositionOutput:
title: GetQueuedConversationPositionOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/QueuedConversation'
NotFound:
title: NotFound
type: object
required:
- message
properties:
message:
type: string
Map_QueueThreshold_Int:
title: Map_QueueThreshold_Int
description: 'values: [SlaTimeLimit, AvailableAgents, LongestWait, SlaPercentage, WaitingConversations]'
type: object
additionalProperties:
type: integer
format: int32
GenericChannel:
title: GenericChannel
type: object
required:
- genericChannelName
- availability
properties:
genericChannelName:
type: string
availability:
description: 'values: [Available, NotAvailable]'
type: string
queueSize:
description: The number of conversations currently waiting in the queue. This field will only be present if the queue availability is NotAvailable.
type: integer
format: int32
QueueUsages:
title: QueueUsages
type: object
required:
- queueId
- usages
properties:
queueId:
type: string
usages:
$ref: '#/components/schemas/Map_ConversationChannel_Set_String'
QueueMembersOutput:
title: QueueMembersOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/QueueMember'
BulkActionFailure_BulkError_UUID:
title: BulkActionFailure_BulkError_UUID
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/BulkError'
ChannelAvailability:
title: ChannelAvailability
oneOf:
- $ref: '#/components/schemas/GenericChannel'
CreateOrUpdateQueueRequest:
title: CreateOrUpdateQueueRequest
type: object
required:
- name
- callFunctionality
- isDefault
- isDoNotOfferEnabled
properties:
name:
type: string
callFunctionality:
type: boolean
isDefault:
type: boolean
queueThresholds:
$ref: '#/components/schemas/Map_QueueThreshold_Int'
offerTimeout:
type: integer
format: int32
offerAlgorithm:
description: 'values: [AgentPriorityOneAtATimeRandom, AllAtOnce, AgentPriorityLongestIdle, AgentPriorityAllAtOnce, LongestIdle, OneAtATimeRandom]'
type: string
wrapupTimeout:
type: integer
format: int32
priority:
type: integer
format: int32
offerAbandonedConversations:
type: boolean
doNotOfferTimeouts:
$ref: '#/components/schemas/Map_ConversationChannel_Int'
isDoNotOfferEnabled:
type: boolean
preferredAgentTimeouts:
$ref: '#/components/schemas/Map_ConversationChannel_Int'
isPreferredAgentEnabled:
type: boolean
preferredAgentOfflineTimeout:
type: integer
format: int32
personalAgentOfflineTimeout:
type: integer
format: int32
isRestricted:
type: boolean
Validation:
title: Validation
type: object
required:
- message
properties:
id:
type: string
message:
type: string
ErrorResponse:
title: ErrorResponse
type: object
required:
- message
properties:
message:
type: string
ServerError:
title: ServerError
type: object
required:
- message
properties:
message:
type: string
UnexpectedError:
title: UnexpectedError
type: object
required:
- channel
- message
properties:
channel:
type: string
message:
type: string
BadRequest:
title: BadRequest
type: object
required:
- message
properties:
message:
type: string
BulkActionOutcome_BulkError_UUID:
title: BulkActionOutcome_BulkError_UUID
oneOf:
- $ref: '#/components/schemas/BulkActionFailure_BulkError_UUID'
- $ref: '#/components/schemas/BulkActionSuccess_BulkError_UUID'
ListQueuesOutput:
title: ListQueuesOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Queue1'
BulkActionSuccess_BulkError_UUID:
title: BulkActionSuccess_BulkError_UUID
type: object
required:
- data
properties:
data:
type: string
format: uuid
ChannelAvailabilityError:
title: ChannelAvailabilityError
oneOf:
- $ref: '#/components/schemas/UnexpectedError'
Infrastructure:
title: Infrastructure
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
BulkQueueEndpointInput:
title: BulkQueueEndpointInput
type: object
properties:
agentIds:
type: array
uniqueItems: true
items:
type: string
format: uuid
QueueAvailabilityOutput:
title: QueueAvailabilityOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ChannelAvailabilityOutcome'
Conflict:
title: Conflict
type: object
required:
- message
properties:
message:
type: string
Map_ConversationChannel_Set_String:
title: Map_ConversationChannel_Set_String
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: object
additionalProperties:
type: array
uniqueItems: true
items:
type: string
InvalidArgument:
title: InvalidArgument
type: object
required:
- message
properties:
message:
type: string
QueueMember:
title: QueueMember
type: object
required:
- agentId
properties:
agentId:
type: string
priority:
type: integer
format: int32
CreateQueueInput:
title: CreateQueueInput
type: object
required:
- request
properties:
request:
$ref: '#/components/schemas/CreateOrUpdateQueueRequest'
QueuedConversation:
title: QueuedConversation
type: object
required:
- queuedAt
properties:
position:
description: Approximate position of the conversation in the current queue
type: integer
format: int32
queuedAt:
type: string
format: date-time
GetQueueByIdOutput:
title: GetQueueByIdOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Queue1'
Success:
title: Success
type: object
required:
- channelAvailability
properties:
channelAvailability:
$ref: '#/components/schemas/ChannelAvailability'
BulkError:
title: BulkError
oneOf:
- $ref: '#/components/schemas/EmptyPatchSet'
- $ref: '#/components/schemas/ErrorResponse'
- $ref: '#/components/schemas/Infrastructure'
- $ref: '#/components/schemas/Integrity'
- $ref: '#/components/schemas/InvalidArgument'
- $ref: '#/components/schemas/NotFound1'
- $ref: '#/components/schemas/Validation'
BulkQueueEndpointOutput:
title: BulkQueueEndpointOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkActionOutcome_BulkError_UUID'
Map_ConversationChannel_Int:
title: Map_ConversationChannel_Int
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: object
additionalProperties:
type: integer
format: int32
NotFound1:
title: NotFound
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
EmptyPatchSet:
title: EmptyPatchSet
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
ChannelAvailabilityOutcome:
title: ChannelAvailabilityOutcome
oneOf:
- $ref: '#/components/schemas/Failure'
- $ref: '#/components/schemas/Success'
Failure:
title: Failure
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/ChannelAvailabilityError'
securitySchemes:
ApiKeyAuth:
type: apiKey
name: Authorization
in: header