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