openapi: 3.0.2 x-explorer-enabled: false x-samples-languages: - curl - node - java - javascript - python - go info: title: Transcript - Retrieval description: Digital Transcript Query APIs will be used to search and retrieve digital transcript messages. contact: name: Avaya API Team url: https://developers.avayacloud.com/onecloud-ccaas email: apiteam@avaya.com license: name: Avaya Software Development Kit (SDK) Software License Terms url: http://support.avaya.com/css/P8/documents/101038288 version: 1.0.3 tags: - name: Transcript description: To retrieve transcript messages for all dialogs of a given engagement. security: - {} - BearerAuth: [] AppKey: [] servers: - url: '{protocol}://{server}{basePath}' description: Open API variables: protocol: enum: - https default: https server: default: HOST-REGION.api.avayacloud.com basePath: default: /api/digital/transcript/v1 - url: '{protocol}://{server}:{port}' description: Internal API variables: protocol: enum: - http - https default: http server: default: transcript-query-service port: enum: - '80' - '443' default: '80' paths: /accounts/{accountId}/engagements/{engagementId}/messages: get: tags: - Transcript summary: List Messages description: 'Retrieve transcript messages for all dialogs or specified dialog of a given engagement. ' operationId: listMessages parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' - $ref: '#/components/parameters/dialogId' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/orderBy' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Messages' examples: default: $ref: '#/components/examples/Messages' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: securitySchemes: BearerAuth: type: http scheme: bearer description: This API uses Bearer Token Authorization Flow. bearerFormat: JWT AppKey: type: apiKey in: header name: appkey description: This API needs an appKey as header schemas: Messages: type: object properties: pagination: $ref: '#/components/schemas/Pagination' messages: type: array items: $ref: '#/components/schemas/Message' links: $ref: '#/components/schemas/MessageLinks' Message: type: object description: A record for a specific message in dialog's transcript. properties: accountId: type: string example: ZWJJIQ dialogId: description: Dialog unique identifier. type: string example: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e engagementId: description: Engagement unique identifier. type: string example: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e messageId: type: string description: Identifier for message. example: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 channelId: type: string description: Type of dialog channel where transcript occurred such as CHAT, EMAIL, MESSAGING, VOICE. messageIndex: type: integer description: Message number in the dialog. example: 1 messageType: $ref: '#/components/schemas/MessageType' messageDirection: $ref: '#/components/schemas/MessageDirection' providerDialogId: description: Identifier for the conversation maintained by provider. type: string example: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e providerMessageId: type: string description: Provider Identifier of the message. This identifier is maintained by provider. example: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 privateMessage: type: boolean description: 'Denotes if a message is private or not (e.g. coaching messages). Private messages are messages that shouldn''t be sent or shown to the customer. If a message is private (like in the case of coaching), then this field will be marked as true and the ''recipients'' list should provide the restricted participants that the private message is intended for. ' default: false body: $ref: '#/components/schemas/BodyElement' header: $ref: '#/components/schemas/MessageHeaders' fallbackText: type: string description: Text message clients can show if they are not capable of rendering the body. example: This text is fallback as original text not reachable parts: type: array items: $ref: '#/components/schemas/Part' messageReceivedTimestamp: type: string format: date-time description: Date and time when the message was first received by digital framework. example: '2023-11-16T05:57:44.000Z' senderParticipantName: type: string description: Display name of participant who sent the message. example: shane senderParticipantType: $ref: '#/components/schemas/ParticipantType' senderParticipantId: description: The unique identifier for the participant. type: string example: e1e3d642-4200-4c1f-b010-b8ac46957ebd recipientParticipants: type: array description: List of recipient participants items: $ref: '#/components/schemas/Participant' dialogDirection: $ref: '#/components/schemas/DialogDirection' sourceType: type: string description: This value defines the external system that was the source of the engagement that is being generated into the Contact Center. example: Facebook businessAccountName: type: string description: Name of the business account configured on the provider using which the message was sent example: account@account.com nluMetadata: $ref: '#/components/schemas/NluMetadata' interimResponse: type: boolean description: Denotes if the message is an interim response. Default is false. default: false NluMetadata: type: object description: NLU Metadata of the message properties: intents: type: array description: List of intents recognized in the message. items: $ref: '#/components/schemas/Intent' entities: type: array items: $ref: '#/components/schemas/Entity' description: List of entities identified in the message. sentiment: $ref: '#/components/schemas/Sentiment' language: type: string description: ISO 639 code that specifies the language used in the message. example: en-US Intent: type: object properties: intent: type: string description: The name of the recognized intent. confidence: type: number description: "A decimal percentage that represents confidence in the intent. \nRanges from 0 to 1, where a higher\ \ score indicates a stronger likelihood of a correct match.\n" format: double example: 0.9588214785085711 Sentiment: type: object description: The sentiment of message. properties: label: $ref: '#/components/schemas/SentimentLabel' score: type: number description: Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment). format: double example: 1 Entity: type: object properties: entity: type: string description: An entity detected in the message. value: type: string description: The term in the input text that was recognized as an entity value. Participant: type: object description: Participant receiving the message required: - participantId - participantType properties: participantType: $ref: '#/components/schemas/ParticipantType' participantId: type: string description: The unique identifier for the participant. example: dfd117d7-73e3-4436-8bd7-3ce8f1a008ed displayName: type: string description: The display name of participant. example: participant name SentimentLabel: description: The overall sentiment expressed in the message. example: POSITIVE type: string enum: - NEGATIVE - NEUTRAL - POSITIVE MessageType: description: 'Type of message, NEW is a new email received/sent by contact center, REPLY is email replied to/by contact center, FORWARD is email forwarded to/by contact center). ' type: string enum: - NEW - REPLY - FORWARD - DELETE MessageDirection: description: 'Direction of the message. INCOMING is an message received by the contact center and OUTGOING is an message initiated from the contact center. ' type: string enum: - INCOMING - OUTGOING ParticipantType: type: string description: Type of participant who sent the message. enum: - CUSTOMER - AGENT - SUPERVISOR - SYSTEM - BOT - SME BodyElement: type: object required: - elementType properties: elementType: type: string description: Type of the body element like text, image, attachment, carousel, location, form, etc. example: TEXT elementText: $ref: '#/components/schemas/ElementText' payload: type: string description: JSON payload required to support the body element type. example: message text content description: Element of the message body. title: BodyElement ElementText: type: object description: Element text. properties: text: type: string description: Text of the message. example: this is text content of the message textFormat: $ref: '#/components/schemas/TextFormat' TextFormat: description: Format of the text message in the body. example: PLAINTEXT type: string enum: - PLAINTEXT - HTML - MARKDOWN MessageHeaders: type: object description: Header of the message. properties: priority: type: string description: Priority of the message set by the provider. example: important sensitivity: type: string description: Sensitivity of the message set by the provider. example: sensetive encoding: type: string description: Encoding of body of the message. example: utf-8 subject: type: string description: Subject of the message set by the provider. example: Title of the message from: type: string description: Sender of the message set by the provider. example: email1@email.com to: type: array description: To recipients of the message set by the provider. items: type: string example: email2@email.com cc: type: array description: Cc recipients of the message set by the provider. This field is mainly used for email messages. items: type: string example: email3@email.com bcc: type: array description: Bcc recipients of the message set by the provider. This field is mainly used for email messages. items: type: string example: email4@email.com replyTo: type: string description: The address to use when replying. example: email2@email.com providerMessageTimestamp: type: string format: date-time description: Date and time of the message captured by the provider. example: '2023-11-16T05:57:44.000Z' messageSourceServerTag: type: string description: Tag set by a service to identify that this message was sent by itself. example: Tag1 clientDeviceTag: type: string description: Tag set to identify the client device that was used to send the message. example: ios-device-1 additionalHeaders: type: object description: Additional header fields of the message. For example, if the payload of the message is related to a specific version that the clients are rendering, then the payload needs to be aware of what information can be sent here. additionalProperties: type: string example: added property Part: type: object required: - partId - name - size - contentType - url properties: partId: type: string description: Identifier for the part. example: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 name: type: string description: Name of the part. example: file.png contentType: type: string description: Type of attachment. example: application/text size: type: integer description: Size of the part in bytes. example: 3500 url: type: string description: Link of the part. example: https://service-domain.com/file.png captionText: type: string description: Text describing the caption of the part. example: Image showing and issue thumbnailUrl: type: string description: Link of the thumbnail of the part. example: https://somedomain.com/thumb.png additionalProperties: type: object description: Additional properties of the part. additionalProperties: type: string example: added properties description: Meta information about the media. title: Part DialogDirection: description: 'Direction of the dialog. Use INCOMING if the interaction is initiated by customer, otherwise OUTGOING. Default is INCOMING. ' example: INCOMING type: string enum: - INCOMING - OUTGOING Problem: type: object description: 'Problem Detail as a way to carry machine-readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs RFC 7807 ' properties: type: type: string format: uri description: 'An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML). ' default: about:blank example: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation title: type: string description: 'A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized). ' example: Service Unavailable nullable: true status: type: integer format: int32 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' minimum: 100 maximum: 600 exclusiveMaximum: true example: 503 nullable: true detail: type: string description: 'A human readable explanation specific to this occurrence of the problem. ' example: Connection to database timed out nullable: true instance: type: string format: uri description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ' nullable: true violations: type: array description: 'A list of violations that occurred as a result of invalid data provided as part of a request. ' nullable: true items: type: object properties: field: type: string description: 'The name of the field in the request that caused the violation. This can be the name of a path parameter, query parameter, or a field within the request body. ' example: accountId message: type: string description: 'A human readable explanation specific to this occurrence of the violation. ' example: must match "^[a-zA-Z]{6}$" code: type: integer format: int32 description: 'The violation code generated by the server for this occurrence of the violation. Use this code when implementing any error handling logic instead of the message, as the message can change. ' example: 20006 example: - field: emailAddress message: must not be null code: 20002 - field: accountId message: must match "^[a-zA-Z]{6}$" code: 20006 Pagination: type: object properties: pageNumber: type: integer description: The current page number. example: 1 pageSize: type: integer description: The max number of records that can be retrieved on this page. example: 10 total: type: integer description: The total number of records. example: 1 MessageLinks: type: object properties: prev: type: string description: URL of the previous page. Blank if currently on the first page. example: /api/digital/transcript/v1/accounts/{accountId}/engagements/{engagementId}/messages?pageNumber=2&pageSize=15 next: type: string description: URL of the next page. Blank if currently on the last page. example: /api/digital/transcript/v1/accounts/{accountId}/engagements/{engagementId}/messages?pageNumber=4&pageSize=15 parameters: accountId: name: accountId description: The unique 6 character internal id that represents the customer account. required: true in: path schema: type: string minLength: 6 maxLength: 6 pattern: ^[a-zA-Z]{6}$ example: ZWJJIQ engagementId: name: engagementId description: The unique 36 character internal id that represents the engagement. required: true in: path schema: type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ example: b9da2450-415c-46ff-af58-0c3f39aee204 dialogId: name: dialogId required: false in: query description: The unique 1-100 characters internal id that represents the Dialog. schema: type: string minLength: 1 maxLength: 100 example: 09989172961713382496 pageSize: name: pageSize description: The maximum number of results per page. required: false in: query schema: type: integer format: int32 example: 10 default: 10 minimum: 1 maximum: 50 pageNumber: name: pageNumber description: The target page of results. required: false in: query schema: type: integer format: int32 example: 1 default: 1 minimum: 1 orderBy: name: orderBy description: Field used to order messages. Currently, only the **'messageReceivedTimestamp'** field is supported for ordering. required: false in: query schema: type: string maxLength: 50 example: messageReceivedTimestamp default: messageReceivedTimestamp order: name: order description: The sorting order for messages using the orderBy field. Valid values are DESC (descending) or ASC (ascending) required: false in: query schema: type: string minLength: 3 maxLength: 4 example: ASC default: ASC responses: BadRequest: description: "Bad Request. \n\n* accountId must be exactly 6 characters\n\n* pageNumber must be greater than 0\n\n*\ \ pageSize must be between 1 and 50\n\n* engagementIds must be 36 character UUIDs\n" content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorConstraintViolation' Unauthorized: description: Unauthorized. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorUnauthorized' Forbidden: description: Forbidden. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorForbidden' NotFound: description: Not Found. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorNotFound' TooManyRequests: description: Too Many Requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/TooManyRequests' InternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorInternalServerError' examples: Messages: value: pagination: pageNumber: 3 pageSize: 15 total: 60 messages: - accountId: ZWJJIQ dialogId: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e engagementId: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e messageId: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 messageIndex: 1 channelId: EMAIL messageType: REPLY messageDirection: INCOMING providerDialogId: bb4f5cf8-5bfc-4bf3-ac43-153c43671f0e providerMessageId: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 privateMessage: false body: elementType: TEXT payload: message text content elementText: text: I want to order some coffee textFormat: PLAINTEXT header: priority: important sensitivity: sensetive encoding: utf-8 subject: Title of the message from: email1@email.com to: - email2@email.com cc: - email3@email.com bcc: - email4@email.com replyTo: email2@email.com providerMessageTimestamp: '2023-11-16T05:57:44.000Z' messageSourceServerTag: Tag1 clientDeviceTag: ios-device-1 additionalHeaders: header1: added property parts: - partId: 774f5cf8-5bfc-4bf3-ac43-153c43671f04 name: file.png contentType: application/text size: 3500 url: https://service-domain.com/file.png captionText: Image showing and issue thumbnailUrl: https://somedomain.com/thumb.png additionalProperties: property1: added properties messageReceivedTimestamp: '2023-11-16T05:57:44.000Z' senderParticipantName: shane senderParticipantType: CUSTOMER senderParticipantId: 591c2529-c3a3-4062-a213-b239c18f543b recipientParticipants: - displayName: John participantType: AGENT participantId: cdf184ec-8278-11eb-8dcd-0242ac130003 dialogDirection: INCOMING businessAccountName: '+50224154620' sourceType: Facebook nluMetadata: intents: - intent: order confidence: 0.1588214785085711 entities: - entity: beverage value: coffee sentiment: label: POSITIVE score: 0.9588214785085711 language: en-us links: prev: /api/digital/transcript/v1/accounts/{accountId}/engagements/{engagementId}/messages?pageNumber=2&pageSize=15 next: /api/digital/transcript/v1/accounts/{accountId}/engagements/{engagementId}/messages?pageNumber=4&pageSize=15 ErrorConstraintViolation: description: Constraint Violation value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation title: Constraint Violation status: 400 detail: A problem that indicates a syntactically correct, yet semantically illegal request. The Server can not process this request until the client resolves the semantic errors described in the violations section. violations: - field: integrationId message: must match "^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$" code: 20006 ErrorUnauthorized: description: Unauthorized value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#unauthorized title: Unauthorized status: 401 detail: This operation requires authentication. See https://developers.avayacloud.com/onecloud-ccaas/docs/how-to-authenticate-with-ccaas-apis ErrorForbidden: description: Forbidden value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#forbidden title: Forbidden status: 403 detail: According to the access control policy the current user and/or integrationId does not have permission to access this resource. TooManyRequests: description: Too Many Requests value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#too-many-requests title: Too Many Requests status: 429 detail: Too many requests, please retry later ErrorNotFound: description: Not Found value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#not-found title: Not Found status: 404 detail: Either there is no API method associated with the URL path of the request, or the request refers to one or more resources that were not found. ErrorInternalServerError: description: Server Error value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#server-error title: Server Error status: 500 detail: An internal server error was encountered.