openapi: 3.2.0 info: title: 8x8 Conversations API version: '1.0' description: 'Operations tagged Conversations across 3 of this provider''s published API definitions: 8x8-actions-events-8x8-contact-center-chat-api-v2.json, 8x8-actions-events-contact-center-chat-gateway-v1.yml, 8x8-contactcenter-8x8-contact-center-chat-api.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.8x8.com tags: - name: Conversations description: Provides Contact Center interaction capabilities. paths: /vcc/{region}/chat/v2/tenant/{tenant-id}/conversations: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Returns all conversations belonging to the customer. description: Returns a list of all conversations belonging to the customer that comply with the provided filters. operationId: getcctransactions security: - 8x8APIBearerToken: - vcc-chat.conversations.read parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/PageSizeFilterOptional' - $ref: '#/components/parameters/PageIndexFilterOptional' - $ref: '#/components/parameters/ChannelIdFilterOptional' - name: status in: query required: false description: Transaction status schema: anyOf: - type: string x-extensible-enum: - all default: all - $ref: '#/components/schemas/TransactionStatus' - name: order in: query required: false description: The order results that are based on create time. schema: type: string enum: - asc - desc default: asc - name: userId in: query required: false description: Filters orders by userId. schema: type: string format: string - name: customer.email in: query required: false schema: type: string format: string default: email - name: customer. in: query required: false schema: type: string format: string default: customerKeyValue responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ConversationListResult' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' post: tags: - Conversations summary: Creates a new conversation. description: Creates a new transaction in the Contact Center and returns a conversation Id as an identifier that can be used later on to send messages to agent and also close the ongoing transaction. operationId: createcctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.write parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' requestBody: $ref: '#/components/requestBodies/CreateTransactionRequestBody' responses: '202': description: Transaction accepted. content: application/json: schema: allOf: - $ref: '#/components/schemas/ConversationIdentifierField' '400': $ref: '#/components/responses/RequestValidationV2Problem' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' /vcc/{region}/chat/v2/tenant/{tenant-id}/conversations/{conversation-id}: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Retrieves conversation details. description: Retrieves conversation details. operationId: getcctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.read parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/ChatAPIConversationUrlID' responses: '200': description: Returns the conversation details. content: application/json: schema: $ref: '#/components/schemas/ConversationResult' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' /vcc/{region}/chat/v2/tenant/{tenant-id}/conversations/{conversation-id}/participants: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Retrieve the conversation participants. description: Retrieves all the participants that joined during the lifespan of the conversation. operationId: getparticipantsforcctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.read parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/ChatAPIConversationUrlID' responses: '200': description: Participants list content: application/json: schema: type: object required: - participants properties: participants: $ref: '#/components/schemas/ConversationParticipants' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' /vcc/{region}/chat/v2/tenant/{tenant-id}/conversations/{conversation-id}/participants/customer: servers: - url: https://api.8x8.com delete: tags: - Conversations summary: Customers leaves conversation. description: When customers leave a conversation. It translates to a current interaction that is being terminated by the customer. operationId: customerparticipantleavecctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.write parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/ChatAPIConversationUrlID' responses: '204': description: Confirms that the customer left the interaction. '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: description: Confirms that the customer left the interaction. /vcc/{region}/chat/v2/tenant/{tenant-id}/conversations/{conversation-id}/messages: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Retrieves the conversation messages. description: Retrieves the conversation messages that took place during the lifepan of the conversation. operationId: getmessagesforcctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.read parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/ChatAPIConversationUrlID' - $ref: '#/components/parameters/InteractionUrlID' responses: '200': description: Message list content: application/json: schema: $ref: '#/components/schemas/MessageListResult' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' post: tags: - Conversations summary: Send a message. description: Send a message to a conversation represented by the provided ID. operationId: sendmessagetocctransaction security: - 8x8APIBearerToken: - vcc-chat.conversations.write parameters: - $ref: '#/components/parameters/RegionParam' - $ref: '#/components/parameters/TenantIdPathParam' - $ref: '#/components/parameters/ChatAPIConversationUrlID' requestBody: $ref: '#/components/requestBodies/SendMessageToConversationRequest' responses: '202': description: Accepted message. '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/InternalServerErrorResponse' default: $ref: '#/components/responses/InternalServerErrorResponse' /chat-gateway/v1/conversations: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Returns all conversations belonging to the customer. description: Returns a list of all conversations belonging to the customer that comply with the provided filters. operationId: getcctransactions-1 security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/PageSizeFilterOptional' - $ref: '#/components/parameters/PageIndexFilterOptional' - $ref: '#/components/parameters/SortByOptional' - $ref: '#/components/parameters/FilterOptional' - $ref: '#/components/parameters/TenantIdFilterOptional' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/ConversationListResult_2' '400': $ref: '#/components/responses/GeneralErrorResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' post: tags: - Conversations summary: Creates a new conversation. description: Creates a new transaction in the Contact Center and returns a conversation Id as an identifier that can be used later on to send messages to agent and also close the ongoing transaction. operationId: createcctransaction-1 security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/TenantIdFilterOptional' requestBody: $ref: '#/components/requestBodies/CreateTransactionRequestBody' responses: '202': description: Conversation entity is created and the associated interaction is in the process of being created. The state of the conversation entity is CREATED and the first webhook event is sent with CREATED state. A webhook event stating that the conversation is ACTIVE will be sent after the interaction is also created and the state field in the conversation resource will be ACTIVE. content: application/hal+json: schema: allOf: - $ref: '#/components/schemas/ConversationIdentifierField_2' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '400': $ref: '#/components/responses/GeneralErrorResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}: servers: - url: https://api.8x8.com put: tags: - Conversations summary: Update a conversation details. description: Update a conversation details. operationId: putcctransaction security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' - $ref: '#/components/parameters/TenantIdFilterOptional' requestBody: $ref: '#/components/requestBodies/UpdateTransactionRequestBody' responses: '202': description: Transaction accepted. Assignment changes are still processing and the success of the operation will be reflected by the webhook event or by the changes to the assignment field in the conversation resource. content: application/hal+json: schema: $ref: '#/components/schemas/ConversationResult_2' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' patch: tags: - Conversations summary: Patch a conversation details. description: Patch a conversation details. operationId: patchcctransaction security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' - $ref: '#/components/parameters/TenantIdFilterOptional' requestBody: $ref: '#/components/requestBodies/PatchTransactionRequestBody' responses: '202': description: Transaction accepted. Assignment changes are still processing and the success of the operation will be reflected by the webhook event or by the changes to the assignment field in the conversation resource. content: application/hal+json: schema: $ref: '#/components/schemas/ConversationResult_2' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' get: tags: - Conversations summary: Retrieves conversation details. description: Retrieves conversation details. operationId: getcctransaction-1 security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' - $ref: '#/components/parameters/TenantIdFilterOptional' responses: '200': description: Returns the conversation details. content: application/hal+json: schema: $ref: '#/components/schemas/ConversationResult_2' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}/interactions: servers: - url: https://api.8x8.com get: tags: - Conversations summary: Returns all conversations belonging to the customer. description: Returns a list of all conversations belonging to the customer that comply with the provided filters. operationId: getccinteractions security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' - $ref: '#/components/parameters/TenantIdFilterOptional' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/InteractionsListResult' '400': $ref: '#/components/responses/GeneralErrorResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}/post-agent-assignment: servers: - url: https://api.8x8.com post: tags: - Conversations summary: Creates a post agent assignment for a conversation. description: Creates a post-agent assignment for a conversation. This endpoint allows the conversation to be handed back to the bot after an agent finishes their interaction, to ensure seamless continuation of the customer's digital journey after agent interactions, allowing for tasks such as surveys or further automated assistance. The flexible assignment mechanism supports various post-conversation workflows and is designed to be extensible for different use cases after the agent engagement has concluded. operationId: createpostagentassignment security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' requestBody: $ref: '#/components/requestBodies/PostAgentAssignmentRequestBody' responses: '201': description: CREATED '400': $ref: '#/components/responses/InvalidParameterExceptionResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundExceptionResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}/typing: servers: - url: https://api.8x8.com post: tags: - Conversations summary: Creates a typing indicator for a conversation. description: ' Sends a typing indicator to the Chalet room associated with the given conversation. Requires an authorType of either ''user'' or ''bot'' to determine the identity used when sending the indicator.' operationId: sendtypingindicator security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' requestBody: $ref: '#/components/requestBodies/TypingRequestBody' responses: '204': description: No Content '400': $ref: '#/components/responses/InvalidParameterExceptionResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundExceptionResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}/thinking: servers: - url: https://api.8x8.com post: tags: - Conversations summary: Sends a thinking indicator for a conversation. description: Sends a thinking indicator notification to the Chalet backplane room-update resource, signaling that the bot is processing. The request body is optional; when omitted, defaults are applied (authorType='bot', maxThinkingTimeSeconds=60). operationId: sendthinkingindicator security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' requestBody: $ref: '#/components/requestBodies/ThinkingIndicatorRequestBody' responses: '204': description: No Content '400': $ref: '#/components/responses/InvalidParameterExceptionResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundExceptionResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' /chat-gateway/v1/conversations/{conversationId}/read-receipt: servers: - url: https://api.8x8.com post: tags: - Conversations summary: Sends a read receipt for a conversation. description: Sends a read receipt to the Chalet room associated with the given conversation, indicating that all messages up to the given timestamp have been read. Requires an authorType of either 'user' or 'bot'. The 'user' authorType is only allowed for CHAT_API channels. operationId: sendreadreceipt security: - 8x8ApiKey: - Contact Center Chat Gateway parameters: - $ref: '#/components/parameters/ChatAPIConversationUrlID_2' requestBody: $ref: '#/components/requestBodies/ReadReceiptRequestBody' responses: '204': description: No Content '400': $ref: '#/components/responses/InvalidParameterExceptionResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenRequestResponse' '404': $ref: '#/components/responses/ResourceNotFoundExceptionResponse' '500': $ref: '#/components/responses/GeneralErrorResponse' default: $ref: '#/components/responses/GeneralErrorResponse' components: schemas: AdditionalPropertiesPayload: allOf: - type: object properties: key: type: string format: string example: customKey value: type: string format: string example: customValue example: key: senderName value: John Doe ConversationResult_2: allOf: - $ref: '#/components/schemas/ChannelIdentifierField' - $ref: '#/components/schemas/AssignmentField' - $ref: '#/components/schemas/ConversationUserData' - type: object properties: id: type: string example: vXg39aMTRlq4xCBFaUCTlA description: Conversation / Transaction identifier. state: type: string enum: - created - active - idle example: idle description: Conversation state. ConversationListResult: allOf: - type: object properties: data: type: array items: $ref: '#/components/schemas/ConversationResult' - $ref: '#/components/schemas/PageResult' ConversationParticipants: type: object properties: id: type: string format: string description: Participant identifier. (AgentId, Customer, Bot) type: $ref: '#/components/schemas/AuthorType' language: $ref: '#/components/schemas/Language' ConversationIdentifierField: type: object properties: conversationId: type: string format: string description: Returns the conversation identifier. example: ID-0 timestamp: type: integer format: integer CreateTransactionRequest: allOf: - $ref: '#/components/schemas/ChannelIdentifierField' - $ref: '#/components/schemas/ConversationCustomerData' - type: object required: - channelId - user properties: history: type: object required: - messages properties: messages: type: array maxLength: 200 items: $ref: '#/components/schemas/HistoryMessageV2' ChannelIdentifierField: type: object properties: channelId: type: string format: string description: Channel ID for which the transaction will be created. example: '25' PageResult: type: object properties: page: type: object properties: pageSize: type: number format: int32 description: Page size of the response. pageIndex: type: number format: int32 description: Page 0-based index of the response. elementCount: type: number format: int32 description: Total number of items. pageCount: type: number format: int32 description: Total number of pages. PostAgentAssignmentConfigurationRequest: type: object properties: configuration: type: object description: '' properties: notifyChannelWebhookIfExists: type: string format: string description: 'Sets the Contact Center user’s name. The Contact Center agent views this name in the chat conversation. For example: John Doe' example: 'false' maxTotalMinutes: type: integer format: int32 description: conversation finishes when this duration passes - not mandatory example: 300 minimum: 20 maximum: 600 userTimeoutInMinutes: type: integer format: int32 description: conversation finishes if user doesn't reply in x minutes from bot's last message example: 150 minimum: 10 maximum: 300 ConversationListResult_2: allOf: - type: object properties: _embedded: type: object properties: conversations: type: array items: $ref: '#/components/schemas/ConversationResult_2' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/PageResult_2' ConversationResult: allOf: - $ref: '#/components/schemas/ChannelIdentifierField' - $ref: '#/components/schemas/ConversationCustomerData' - type: object properties: id: type: string example: vXg39aMTRlq4xCBFaUCTlA description: Conversation / Transaction identifier. startTime: type: string format: date-time interactions: type: array items: $ref: '#/components/schemas/InteractionInfo' ResourceNotFoundExceptionPayload: type: object properties: message: type: string description: Error message. example: Resource not found errors: type: array items: type: object properties: code: type: string description: Unique error code. example: resource_not_found message: type: string description: Free text error description. example: Entity of type Conversation with id aaa was not found. SendConversationMessagePayload: type: object required: - text properties: authorType: $ref: '#/components/schemas/ExternalAuthorType' text: type: string format: string example: Hello! InteractionsListResult: allOf: - type: object properties: _embedded: type: object properties: interactions: type: array items: $ref: '#/components/schemas/InteractionInfo' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/PageResult_2' MessageResult: type: object required: - originalText - type - senderId - interactionId properties: interactionId: type: string format: string description: The interaction Id durring which this message was written. originalText: type: string format: string description: The message written by the sender. example: Hello! translatedText: type: string format: string description: The message read by the receiver. example: Ola! authorType: $ref: '#/components/schemas/AuthorType' participantId: type: string format: string description: The Id of the user who wrote the message. ConversationIdentifierField_2: type: object properties: conversationId: type: string format: string description: Returns the conversation identifier. example: ID-0 createdAt: type: string format: date-time description: Creation date and time - iso8601 example: '2021-01-30T08:30:00Z' AssignmentField: type: object properties: assignment: type: object properties: type: type: string format: string x-extensible-enum: - queue - script default: queue id: type: string format: string description: Queue or Script identifier, depending of which type is being used. example: '100' GenericExceptionPayload: type: object properties: message: type: string description: Error message. example: Internal error. errors: type: array items: type: object properties: code: type: string description: Unique error code. example: invalid_queue message: type: string description: Free text error description. example: Queue ID 112 is invalid. PatchTransactionRequest: anyOf: - $ref: '#/components/schemas/AssignmentField' - $ref: '#/components/schemas/ConversationUserData' ForbiddenViolationProblem: type: object properties: message: type: string description: Error message. example: The tenant does not belong to customer. errors: type: array items: type: string example: Tenant <> does not belong to customer <>. InternalServerProblem: type: object properties: message: type: string description: 'Error message. ' example: Could not process this request due to ... errors: type: array description: List of errors that caused the request to fail. items: type: string referenceId: type: string description: A referenceId that can be used by 8x8 engineers to track a failed request. MessageListResult: allOf: - type: object required: - messages - participants properties: messages: type: array items: $ref: '#/components/schemas/MessageResult' PageResult_2: type: object properties: page: type: object properties: size: type: number format: int32 description: Page size of the response. number: type: number format: int32 description: Page 0-based index of the response. totalElements: type: number format: int32 description: Total number of items. totalPages: type: number format: int32 description: Total number of pages. InteractionInfo: type: object properties: id: type: string format: string example: int-170392a3b7d-5qyRMnJL6nw63SLHrfQirLO3C-chat-00-tenant01 startTime: type: string format: date example: '2020-08-05T11:55:00.592Z' endTime: type: string format: date example: '2020-08-05T11:55:00.592Z' ReadReceiptRequest: type: object required: - authorType - readAt properties: authorType: type: string enum: - bot - user example: user description: The type of participant sending the read receipt. The 'user' type is only allowed for CHAT_API channels. readAt: type: integer format: int64 description: Unix timestamp in milliseconds indicating when the participant last read messages. All messages up to this timestamp are considered read. example: 1770200431963 ConstraintViolationProblem: type: object properties: message: type: string description: The error message. example: Constraint Violation errors: type: array items: type: string example: '<>: May not be empty.' AuthorType: allOf: - $ref: '#/components/schemas/ExternalAuthorType' - type: string x-extensible-enum: - system - agent ResourceNotFoundProblem: type: object properties: message: type: string description: Error message. example: Resource of type <> with id <> was not found. errors: type: array items: type: string example: Tenant <> does not belong to customer <>. ConversationUserData: type: object properties: user: type: object description: 'The attached data which contains user details. The data fields include `name`, `userId`, `customerId`, `email`, `phone`, `company`, `caseId`, `language`, `ipaddress` and `timezoneOffset` are predefined; however, you can also add any metadata. Any information about the user can be attached to a Chat API conversation, and it will be shown to Contact Center agent as part of transaction details in the chat panel. For example: `{ name: John Doe, email: john.doe@email.com, language: en, additionalProperties: [ { key: myCustomProperty, value: customValue }, { key: anyKey, value: anyValue } ] }`' properties: name: type: string format: string description: 'Sets the Contact Center user’s name. The Contact Center agent views this name in the chat conversation. For example: John Doe' userId: type: string format: string description: When using 8x8's native CRM, the userId could match a customerId in 8x8's CRM and that will trigger a screen pop for agent. email: type: string format: email phone: type: string format: string company: type: string format: string caseId: type: string format: string language: $ref: '#/components/schemas/Language_2' additionalProperties: type: array maxProperties: 30 items: $ref: '#/components/schemas/AdditionalPropertiesPayload' UnauthorizedProblem: type: object properties: fault: type: object description: Error message. properties: faultstring: type: string example: Invalid Access Token detail: type: object properties: errorcode: type: string example: keymanagement.service.invalid_access_token Language_2: type: string format: string default: en description: 'The language of the user. Based on this property the user is assigned to an agent who speaks their language. The default value is English (`en`). The sender language can be one of the following: * `en` => English * `ru` => Русский * `de` => Deutsch * `ja` => 日本語 * `es` => Español * `fr` => Français * `pt` => Português * `it` => Italiano * `pl` => Polski * `hr` => Hrvatski * `nl` => Dutch * `ar` => العرية * `da` => Dansk * `ko` => 한국 * `no` => Norsk * `sv` => Svenska * `vi` => Tiếng Việt * `cy` => Cymraeg * `th` => ไทย * `zh-CN` => 简体中文 * `zh-TW` => 中國傳統' UpdateTransactionRequest: allOf: - $ref: '#/components/schemas/ChannelIdentifierField' - $ref: '#/components/schemas/ConversationUserData' - $ref: '#/components/schemas/AssignmentField' ExternalAuthorType: type: string x-extensible-enum: - bot - user default: user InvalidParameterExceptionPayload: type: object properties: message: type: string description: Error message. example: Invalid parameter exception for conversation X and tenant Y. errors: type: array items: type: object properties: code: type: string description: Unique error code. example: invalid_parameter message: type: string description: Free text error description. example: Invalid parameter exception for conversation X and tenant Y referenceId: type: string example: dacd0dd252723a2 TransactionStatus: type: string description: Transaction status. x-extensible-enum: - created - pending - handling - deleted HistoryMessageV2: type: object required: - text properties: text: type: string format: string example: Hello world! description: Message text content. type: $ref: '#/components/schemas/ExternalAuthorType' ThinkingIndicatorRequest: type: object description: Request body for the thinking indicator. All fields are optional with defaults. properties: authorType: type: string enum: - bot default: bot example: bot description: The author type initiating the thinking indicator. Defaults to 'bot'. Currently only 'bot' is supported. maxThinkingTimeSeconds: type: integer format: int32 minimum: 1 maximum: 600 default: 60 example: 60 description: Maximum thinking time in seconds. Defaults to 60. Must be between 1 and 600. Links: type: object properties: _links: type: object properties: self: type: object properties: href: type: string ConversationCustomerData: type: object properties: customer: type: object properties: name: type: string format: string description: 'Sets the Contact Center customer’s name. The Contact Center agent views this name in the chat conversation. For example: John Doe' customerId: type: string format: string email: type: string format: email company: type: string format: string caseId: type: string format: string language: $ref: '#/components/schemas/Language' additionalProperties: type: string description: 'The attached data which contains customer details. The data fields include `senderName`, `customerId`, `email`, `company`, `caseId` and `language` are predefined; however, you can also add any metadata. Any information about the customer can be attached to a Chat API conversation, and it will be shown to Contact Center agent as part of transaction details in the chat panel. For example: { `senderName: John Doe email: john.doe@email.com language: en myCustomProperty: customValue anyKey: anyValue` }' maxProperties: 30 Language: type: string format: string default: en description: 'The language of the customer. Based on this property the customer is assigned to an agent who speaks their language. The default value is English (`en`). The sender language can be one of the following: * `en` => English * `ru` => Русский * `de` => Deutsch * `ja` => 日本語 * `es` => Español * `fr` => Français * `pt` => Português * `it` => Italiano * `pl` => Polski * `hr` => Hrvatski * `nl` => Dutch * `ar` => العرية * `da` => Dansk * `ko` => 한국 * `no` => Norsk * `sv` => Svenska * `vi` => Tiếng Việt * `cy` => Cymraeg * `th` => ไทย * `zh-CN` => 简体中文 * `zh-TW` => 中國傳統' TypingRequest: allOf: - type: object required: - authorType properties: authorType: type: string enum: - bot - user example: bot description: The author type typing the message. PostAgentAssignmentRequest: allOf: - type: object properties: id: type: string format: string description: The Webhook ID to which the post agent assignment will be done. example: NSCIiFrvSHeI7q5apOriDQ required: - type - id - $ref: '#/components/schemas/PostAgentAssignmentType' - $ref: '#/components/schemas/PostAgentAssignmentConfigurationRequest' PostAgentAssignmentType: properties: type: type: string format: string x-extensible-enum: - webhook default: webhook requestBodies: UpdateTransactionRequestBody: description: Defines the update transaction request payload. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateTransactionRequest' SendMessageToConversationRequest: description: Defines the send message request payload. required: true content: application/json: schema: $ref: '#/components/schemas/SendConversationMessagePayload' CreateTransactionRequestBody: description: Defines the create transaction request payload. required: true content: application/json: schema: $ref: '#/components/schemas/CreateTransactionRequest' ThinkingIndicatorRequestBody: description: Defines the thinking indicator request payload. The entire body is optional; when omitted, defaults are applied. required: false content: application/json: schema: $ref: '#/components/schemas/ThinkingIndicatorRequest' PostAgentAssignmentRequestBody: description: Defines the post agent assignment request payload. required: true content: application/json: schema: $ref: '#/components/schemas/PostAgentAssignmentRequest' ReadReceiptRequestBody: description: Defines the read receipt request payload. required: true content: application/json: schema: $ref: '#/components/schemas/ReadReceiptRequest' TypingRequestBody: description: Defines the typing request payload. required: true content: application/json: schema: $ref: '#/components/schemas/TypingRequest' PatchTransactionRequestBody: description: Defines the update transaction request payload. required: true content: application/json: schema: $ref: '#/components/schemas/PatchTransactionRequest' parameters: TenantIdFilterOptional: name: X-8x8-Tenant in: header required: false description: Tenant ID, it is going to be mandatory if customer has more than one CC tenant in his organisation. schema: type: string format: string example: TheTenant SortByOptional: name: sort in: query required: false description: Attribute on which sorting direction is applied. schema: type: string default: id:asc example: id:asc FilterOptional: name: filter in: query required: false description: Filter for a query in FIQL format. schema: type: string example: name==Cosmin,(routingOption.id==11) InteractionUrlID: name: interaction-id in: query required: false description: Applies filtering at the interaction level. schema: type: string format: string example: int-170392a3b7d-5qyRMnJL6nw63SLHrfQirLO3C-chat-00-tenantName ChatAPIConversationUrlID_2: name: conversationId in: path required: true description: Conversation identifier. schema: type: string format: string example: '125' ChannelIdFilterOptional: name: channel-id in: query required: false description: ChannelID filter. schema: type: string format: string example: '1' ChatAPIConversationUrlID: name: conversation-id in: path required: true description: Conversation identifier. schema: type: string format: string example: '125' TenantIdPathParam: name: tenant-id in: path description: Tenant ID. required: true schema: type: string format: string example: TheTenant RegionParam: name: region in: path description: Business region to use [e.g., us, eu, ca, ap] required: true schema: type: string enum: - us - eu - ca - ap example: us default: us PageSizeFilterOptional: name: size in: query required: false description: Response page size. schema: type: number format: int32 default: 20 example: 100 PageIndexFilterOptional: name: page in: query required: false description: Response page index. schema: type: number format: int32 default: 0 example: 1 responses: InvalidParameterExceptionResponse: description: Contains a descriptive response for a bad request that is due to data validation. content: application/problem+json: schema: $ref: '#/components/schemas/InvalidParameterExceptionPayload' UnauthorizedResponse: description: Contains a description of the error. content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedProblem' InternalServerErrorResponse: description: Contains a description of the error. content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerProblem' GeneralErrorResponse: description: Contains a description of the error. content: application/problem+json: schema: $ref: '#/components/schemas/GenericExceptionPayload' ForbiddenRequestResponse: description: Contains a descriptive response. content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenViolationProblem' ResourceNotFoundResponse: description: Contains a descriptive information. content: application/problem+json: schema: $ref: '#/components/schemas/ResourceNotFoundProblem' RequestValidationV2Problem: description: Contains a descriptive response for a bad request that is due to data validation. content: application/problem+json: schema: $ref: '#/components/schemas/ConstraintViolationProblem' ResourceNotFoundExceptionResponse: description: Contains a descriptive information. content: application/problem+json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionPayload' securitySchemes: 8x8APIBearerToken: type: http scheme: bearer description: Bearer Token obtained from https://api.8x8.com 8x8APIBasic: type: http scheme: basic description: Bearer Token obtained from https://api.8x8.com 8x8ApiKey: type: apiKey name: x-api-key in: header x-refined-from: - 8x8-actions-events-8x8-contact-center-chat-api-v2.json - 8x8-actions-events-contact-center-chat-gateway-v1.yml - 8x8-contactcenter-8x8-contact-center-chat-api.json x-readme: explorer-enabled: true proxy-enabled: false samples-enabled: true