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.