Agent and Engagement Events
Agent and Engagement Events 1.0.1 documentation
Contact Center Agent and Engagement events are available for the streaming needs of client applications via websockets. The Notification API facilitates subscribing to different families of events and transport protocols (Websockets and Webhooks). Agent & Engagement are one of these available families.
This following focuses on the websocket implementation of Agent and Engagement events.
Create Subscription
The example provided below will create a subscription for a WebSocket stream of Agent & Engagement events. Upon a successful response a transport endpoint URL will be provided for the WebSocket interface to connect and begin consuming events from.
POST https://{{CCaaS_FQDN}}/api/notification/v1/accounts/{accountId}/subscriptions
Content-Type: application/json
Accept: application/json
Header: Authorization: Bearer {{token}}
Request Body:
{
"family": "AGENT_ENGAGEMENT",
"events": ["ALL"],
"transport": {
"type": "WEBSOCKET"
}
}
Response:
{
"subscriptionId": "fdbec917-e76e-4645-8120-4eac46f29487",
"createdAt": "2020-08-01T14:25:23.162Z",
"expiresAt": "2020-08-01T15:25:23.177Z",
"expiresIn": 900,
"status": "ACTIVE",
"family": "AGENT_ENGAGEMENT",
"events": [
"ALL"
],
"transport": {
"type": "WEBSOCKET",
"endpoint": "wss://uk.cc.avayacloud.com/ws/notification/v1/agent-engagement",
"pingInterval": 300
}
}
As you have seen above agent and engagement events are subscribed to via the Notification API. In choosing WEBSOCKET as the transport option these events are then consumed through a WebSocket connection. The events are contained within JSON that makes up the payload of the WebSocket messages.
The following section shows how to use the Websocket interface.
Table of Contents
Servers
production Server
URL | Protocol | Description |
---|---|---|
wss://{server}:{port}/ws/notification | wss | After connection to the websocket a new session is created. |
URL Variables
Name | Default value | Possible values | Description |
---|---|---|---|
server | HOST-REGION.avayacloud.com | Any | - |
port | 443 | 443 | Secure connection (TLS) is available through port 443. |
Security Requirements
Type | In | Name | Scheme | Format | Description |
---|---|---|---|---|---|
oauth2 | - | - | - | - | - |
Channels
/v1/agent-engagement Channel
publish
Operation
publish
OperationUpon creating a subscription and connecting to the WebSocket endpoint you will need to send a message to the server confirming you are authenticated before any notification events will be sent. This token must be obtained from the A&A service.
NOTE: For further details and code examples please refer to: How to Authenticate with Avaya Experience Platform™ APIs
Accepts one of the following messages:
Message authentication
authentication
The first message the client should send to server after establishing the connection must be an authentication message.
Payload
Name | Type | Description | Accepted values |
---|---|---|---|
event (required) | string | authentication - A constant parameter. | Any |
subscriptionId (required) | string | The unique id of the subscription. | Any |
token (required) | string | The access token string as issued by the authorization server. | Any |
Examples of payload (generated)
{
"event": "authentication",
"subscriptionId": "fdbec917-e76e-4645-8120-4eac46f29487",
"token": "7e0cd42a22b451701fg29c3bde214…"
}
Tags
- Authentication
Message ping
ping
Client must send ping to the server in order to determine whether connection is alive, server responds with pong.
The ping is also used to keep the websocket connection alive, by keep sending ping messages every pingInterval time to the server.
It is recommended the client send ping more frequently (every 30 seconds) to preclude any proxies from closing the connection.
Payload
Name | Type | Description | Accepted values |
---|---|---|---|
event (required) | string | ping - A constant parameter. | Any |
subscriptionId | string | Optional. The id of the subscription. | Any |
Examples of payload
pingMessage
Example of an ping message to server.
{
"event": "ping"
}
Tags
- Heartbeat
subscribe
Operation
subscribe
OperationNotification messages that you receive from the server
Accepts one of the following messages:
Message notification
notification
Notification event consumed over the WebSocket connection
Specification
This Async Specification details all the Agent and Engagement Events and structure
asyncapi: 2.1.0
info:
title: Agent and Engagement Events
version: 1.0.2
description: >
Contact Center Agent and Engagement events are available for the streaming needs of client applications via websockets. The Notification API facilitates subscribing to different families of events and transport protocols (Websockets and Webhooks). Agent & Engagement are one of these available families.
This following focuses on the websocket implementation of Agent and Engagement events.
### Create Subscription
The example provided below will create a subscription for a WebSocket
stream of Agent & Engagement events. Upon a successful response a
transport endpoint URL will be provided for the WebSocket interface to
connect and begin consuming events from.
```
POST https://{{CCaaS_FQDN}}/api/notification/v1/accounts/{accountId}/subscriptions
Content-Type: application/json
Accept: application/json
Header: Authorization: Bearer {{token}}
```
Request Body:
```json
{
"family": "AGENT_ENGAGEMENT",
"events": ["ALL"],
"transport": {
"type": "WEBSOCKET"
}
}
```
Response:
```json
{
"subscriptionId": "fdbec917-e76e-4645-8120-4eac46f29487",
"createdAt": "2020-08-01T14:25:23.162Z",
"expiresAt": "2020-08-01T15:25:23.177Z",
"expiresIn": 900,
"status": "ACTIVE",
"family": "AGENT_ENGAGEMENT",
"events": [
"ALL"
],
"transport": {
"type": "WEBSOCKET",
"endpoint": "wss://uk.cc.avayacloud.com/ws/notification/v1/agent-engagement/DYNNUG/fdbec917-e76e-4645-8120-4eac46f29487",
"pingInterval": 300
}
}
```
As you have seen above agent and engagement events are subscribed to via the
Notification API. In choosing WEBSOCKET as the transport option these
events are then consumed through a WebSocket connection. The events are
contained within JSON that makes up the payload of the WebSocket messages.
The following section shows how to use the Websocket interface.
contact:
name: Avaya API Team
url: 'https://developers.avayacloud.com/onecloud-ccaas'
email: [email protected]
license:
name: Avaya Software Development Kit (SDK) Software License Terms
url: 'http://support.avaya.com/css/P8/documents/101038288'
tags:
- name: Agent and Engagement Data
description: >
Realtime notification events are subscribed to via the Agent and Engagement API. The events are contained within JSON that makes up the payload of the WebSocket messages.
- name: Heartbeat
description: >
Websocket messages used for heartbeat.
- name: Authentication
description: >
Authentication related messages.
servers:
production:
url: wss://{server}:{port}/ws/notification
protocol: wss
description: |
After connection to the websocket a new session is created.
security:
- apiKey: []
variables:
server:
default: HOST-REGION.avayacloud.com
port:
description: Secure connection (TLS) is available through port 443.
default: '443'
enum:
- '443'
defaultContentType: application/json
channels:
/v1/agent-engagement:
publish:
description: >
Upon creating a subscription and connecting to the WebSocket endpoint
you will need to send a message to the server confirming you are
authenticated before any notification events will be sent. This token
must be obtained from the A&A service.
**NOTE:** For further details and code examples please refer to:
https://developers.avayacloud.com/onecloud-ccaas/docs/how-to-authenticate-with-ccaas-apis#acquiring-tokens
operationId: authenticationMessage
message:
oneOf:
- $ref: '#/components/messages/authentication'
- $ref: '#/components/messages/ping'
subscribe:
description: Notification messages that you receive from the server
operationId: notificationMessage
message:
oneOf:
- $ref: '#/components/messages/notification'
- $ref: '#/components/messages/pong'
- $ref: '#/components/messages/authenticationResponse'
components:
messages:
authentication:
name: authentication
title: Authentication Message
description: The first message the client should send to server after establishing the connection must be an authentication message.
contentType: application/json
tags:
- name: Authentication
payload:
$ref: '#/components/schemas/Authentication'
x-response:
$ref: '#/components/schemas/AuthenticationResponse'
notification:
name: notification
title: Agent and Engagement Message
description: Notification event consumed over the WebSocket connection
contentType: application/json
tags:
- name: Agent and Engagement Data
payload:
$ref: '#/components/schemas/Notification'
ping:
description: |
Client must send ping to the server in order to determine whether connection is alive, server responds with pong.
The ping is also used to keep the websocket connection alive, by keep sending _ping_ messages every _pingInterval_ time to the server.
It is recommended the client send ping more frequently (every 30 seconds) to preclude any proxies from closing the connection.
tags:
- name: Heartbeat
payload:
$ref: '#/components/schemas/Ping'
examples:
- name: pingMessage
summary: Example of an ping message to server.
payload:
event: 'ping'
pong:
description: Server pong response to a ping message.
tags:
- name: Heartbeat
payload:
$ref: '#/components/schemas/Pong'
examples:
- name: pongMessage
summary: Example of a pong message to client.
payload:
event: 'pong'
authenticationResponse:
description: Authentication response message sent to the client after websocket authentication.
tags:
- name: Authentication
payload:
$ref: '#/components/schemas/AuthenticationResponse'
schemas:
Authentication:
type: object
additionalProperties: false
properties:
event:
description: authentication - A constant parameter.
type: string
const: authentication
subscriptionId:
type: string
description: The unique id of the subscription.
token:
type: string
description: The access token string as issued by the authorization server.
required:
- event
- subscriptionId
- token
example:
event: authentication
subscriptionId: fdbec917-e76e-4645-8120-4eac46f29487
token: 7e0cd42a22b451701fg29c3bde214…
AuthenticationResponse:
type: object
additionalProperties: false
properties:
event:
description: authenticationResponse - A constant parameter.
type: string
const: authenticationResponse
status:
type: string
enum:
- CONNECTION_CONFIRMED
- CONNECTION_FAILED_INVALID_TOKEN
- CONNECTION_FAILED_UNKNOWN_SUBSCRIPTION
- CONNECTION_FAILED_INTERNAL_SERVER_ERROR
- CONNECTION_FAILED_CONSTRAINT_VIOLATION
description: |
You will then receive 1 of 5 statuses:
- CONNECTION_CONFIRMED: Connection was confirmed
- CONNECTION_FAILED_INVALID_TOKEN: Authentication token is invalid
- CONNECTION_FAILED_UNKNOWN_SUBSCRIPTION: Unknown Subscription, can be for a subscription that never existed or one that is no longer active
- CONNECTION_FAILED_INTERNAL_SERVER_ERROR: Server Error, client can retry later
- CONNECTION_FAILED_CONSTRAINT_VIOLATION: Client issue, malformed client request, client must update payload and rerty
subscriptionId:
type: string
description: The unique id of the subscription.
pingInterval:
type: integer
format: int64
description: |
The maximum interval (seconds) at which a ping is expected to be sent by the client before websocket is closed and subscription set to INACTIVE.
It is recommended the client send ping more frequently (every 30 seconds) to preclude any proxies from closing the connection.
expiresInterval:
type: integer
format: int64
description: Expiration interval in seconds before the subscription is set to INACTIVE.
example:
event: authenticationResponse
status: CONNECTION_CONFIRMED
subscriptionId: fdbec917-e76e-4645-8120-4eac46f29487
pingInterval: 300
expiresInterval: 900
Notification:
type: object
additionalProperties: false
properties:
correlationId:
type: string
description: The unique ID of the notification being sent
subscriptionId:
type: string
description: The unique ID of the Agent and Engagement subscription
family:
type: string
description: The family of events the subscription is for
sentAt:
type: string
description: Datetime (in ISO 8601 format) of when the notification event was sent
format: datetime
accountId:
type: string
description: >-
The unique identifier for the Account.
loginId:
description: >
The unique login handle for the Agent.
*NOTE* Only present on Agent related events
type: string
initiatingLoginId:
description: >
The unique login handle for the Agent initiating a transfer.
*NOTE* Only present on Single Step Transfer related events
type: string
destinationLoginId:
description: >
The unique login handle for the Agent the transfer is being made to.
*NOTE* Only present on Single Step Transfer to User related events
type: string
observedLoginId:
description: >
The unique login handle for the observed Agent.
*NOTE* Only present on Agent Participant Observing related events
type: string
observingLoginId:
description: >
The unique login handle for the observing Supervisor.
*NOTE* Only present on Agent Participant Observing related events
type: string
coachedLoginId:
description: >
The unique login handle for the coached Agent.
*NOTE* Only present on Agent Participant Coaching related events
type: string
coachingLoginId:
description: >
The unique login handle for the coaching Supervisor.
*NOTE* Only present on Agent Participant Coaching related events
type: string
bargingLoginId:
description: >
The unique login handle for the barging Supervisor.
*NOTE* Only present on Agent Participant Barged related events
type: string
body:
$ref: '#/components/schemas/NotificationBody'
example:
correlationId: a425851d-5225-4b76-8ca0-4fa31ecfd5db
subscriptionId: fdbec917-e76e-4645-8120-4eac46f29487
family: AGENT_ENGAGEMENT
sentAt: "2020-08-24T08:20:23.395Z"
accountId: DYNNUG
loginId: [email protected]
body:
event: AgentState
agentId: 4a785201-73b8-4842-abf7-36f5e572d310
profileId: HomeProfile
state: NOT_READY
reasonCode: 514
cause: RONA
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
NotificationBody:
type: object
discriminator: event
description: The raw event payload that will be different based on the event.
properties:
event:
type: string
description: The name of the specific event being sent. For instance AgentState, AgentParticipant, InboundEngagementCreated, etc...
oneOf:
- $ref: '#/components/schemas/AgentState'
- $ref: '#/components/schemas/AgentParticipant'
- $ref: '#/components/schemas/AutomationParticipant'
- $ref: '#/components/schemas/ExternalParticipant'
- $ref: '#/components/schemas/EngagementPrerouted'
- $ref: '#/components/schemas/InboundEngagementCreated'
- $ref: '#/components/schemas/MatchOffered'
- $ref: '#/components/schemas/OutboundEngagementCreated'
- $ref: '#/components/schemas/SingleStepTransfer'
- $ref: '#/components/schemas/SingleStepTransferError'
- $ref: '#/components/schemas/ChannelReady'
- $ref: '#/components/schemas/AfterContactWorkActivated'
- $ref: '#/components/schemas/AfterContactWorkCompleted'
AgentState:
type: object
additionalProperties: false
properties:
agentId:
$ref: '#/components/schemas/AgentId'
profileId:
type: string
description: >-
The profile ID used to login the agent. The profile
indicates what channels should be logged in.
state:
type: string
description: >-
The current state of the agent.
enum:
- LOGGED_IN
- LOGGED_OUT
- READY
- NOT_READY
reasonCode:
type: string
description: The reason code for going not ready. Only for AGENT_NOT_READY state
cause:
type: string
description: The cause of the agent not being ready. Only for AGENT_NOT_READY state
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
agentId: 4a785201-73b8-4842-abf7-36f5e572d310
profileId: HomeProfile
state: NOT_READY
reasonCode: 514
cause: RONA
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
AgentParticipant:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
connectionId:
$ref: '#/components/schemas/ConnectionId'
action:
type: string
description: >-
The agent participant action
enum:
- ADDED
- HELD
- UNHELD
- INVITED
- REMOVED
- MOVED
- OBSERVING
- COACHING
- BARGEDIN
agentId:
$ref: '#/components/schemas/AgentId'
previousDialogId:
type: string
description: The unique identifier for the previous dialog the agent was a part of. Only for MOVED action
dialogId:
$ref: '#/components/schemas/DialogId'
extension:
$ref: '#/components/schemas/Extension'
channelId:
$ref: '#/components/schemas/ChannelId'
providerEngagementId:
$ref: '#/components/schemas/ProviderEngagementId'
agentInitiatedDisconnect:
type: boolean
description: An indication if the agent initiated disconnect from the dialog. Only for REMOVED action
observedAgentId:
type: string
description: The unique identifier for the observed agent. Only for OBSERVING action
observingAgentId:
type: string
description: The unique identifier for the observing agent. Only for OBSERVING action
observingAgentConnectionId:
type: string
description: The unique identifier for this appearance of the observing participant on this engagement. Only for OBSERVING action
observedAgentConnectionId:
type: string
description: The unique identifier for this appearance of the participant already on this engagement. Only for OBSERVING action
coachingAgentId:
type: string
description: The unique identifier for the coaching agent. Only for COACHING action
coachedAgentId:
type: string
description: The unique identifier for the coached agent. Only for COACHING action
coachingAgentConnectionId:
type: string
description: The unique identifier for this appearance of the coaching participant on this engagement. Only for COACHING action
coachedAgentConnectionId:
type: string
description: The unique identifier for this appearance of the participant already on this engagement. Only for COACHING action
bargingAgentId:
type: string
description: The unique identifier for the barging in agent. Only for BARGEDIN action
bargingAgentConnectionId:
type: string
description: the unique identifier for this appearance of the participant barging in to this engagement. Only for BARGEDIN action
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
connectionId: b2bcbf1e-905b-4164-bab5-6efcde49933b
action: ADDED
agentId: 4a785201-73b8-4842-abf7-36f5e572d310
dialogId: 01005000281645486013
extension: 8010017
channelId: Voice
providerEngagementId: 00001084011532384922
agentInitiatedDisconnect: false
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
AutomationParticipant:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
automationParticipantId:
$ref: '#/components/schemas/AutomationParticipantId'
action:
type: string
description: >-
The automation participant action
enum:
- ADDED
- REMOVED
dialogId:
$ref: '#/components/schemas/DialogId'
automationType:
$ref: '#/components/schemas/AutomationType'
connectionId:
$ref: '#/components/schemas/ConnectionId'
channelId:
$ref: '#/components/schemas/ChannelId'
providerEngagementId:
$ref: '#/components/schemas/ProviderEngagementId'
automationInitiatedDisconnect:
$ref: '#/components/schemas/AutomationInitiatedDisconnect'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
automationParticipantId: AvayaVoiceIVR
action: ADDED
dialogId: 01005000281645486013
automationType: SELF_SERVICE
connectionId: d2775626-66d4-459b-8147-09ea4b98c370
channelId: Voice
providerEngagementId: 00001084011532384922
automationInitiatedDisconnect: false
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
ExternalParticipant:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
externalParticipantId:
$ref: '#/components/schemas/ExternalParticipantId'
action:
type: string
description: >-
The external participant action
enum:
- ADDED
- REMOVED
- INVITED
connectionId:
$ref: '#/components/schemas/ConnectionId'
dialogId:
$ref: '#/components/schemas/DialogId'
channelId:
$ref: '#/components/schemas/ChannelId'
providerEngagementId:
$ref: '#/components/schemas/ProviderEngagementId'
externalParticipantInitiatedDisconnect:
type: boolean
description: An indication if the external participant (aka the Customer) initiated disconnect from the dialog
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
externalParticipantId: +35395554321
action: ADDED
connectionId: b2bcbf1e-905b-4164-bab5-6efcde49933b
dialogId: 01005000281645486013
channelId: Voice
providerEngagementId: 00001084011532384922
externalParticipantInitiatedDisconnect: true
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
EngagementPrerouted:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
dialogId:
$ref: '#/components/schemas/DialogId'
orchestrationFlow:
$ref: '#/components/schemas/OrchestrationFlow'
attributes:
$ref: '#/components/schemas/Attributes'
attributeList:
type: array
description: >
A simplified flat list of attributes
*NOTE* this flat array of attributes will help to easily identify “System.Outbound” to represent a POM call
items:
type: string
engagementParameters:
$ref: '#/components/schemas/EngagementParameters'
agentRoutingStrategy:
$ref: '#/components/schemas/AgentRouting'
adhocEmail:
type: boolean
description: Flag to determine if adhoc email or not (email routing only)
autoResponse:
type: string
description: The auto response suggested to be used
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
channelIdentifier:
type: string
description: The channel identifier of the engagement
queue:
type: object
additionalProperties: false
description: The queue details
properties:
queueId:
type: string
description: The unique identifier of the queue
queueName:
type: string
description: The name of the queue
priority:
type: integer
description: The priority of the queue
proficiencyRangeMin:
type: integer
description: The minimum proficiency of the queue
proficiencyRangeMax:
type: integer
description: The maximum proficiency of the queue
customerIdentifiers:
$ref: '#/components/schemas/CustomerIdentifiers'
externalParticipantId:
$ref: '#/components/schemas/ExternalParticipantId'
sourceAddress:
type: string
description: The source address of the external participant, e.g. calling number or customer email
destinationAddress:
$ref: '#/components/schemas/DestinationAddress'
subject:
type: string
description: The subject field of the incoming email
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
dialogId: 01005000281645486013
orchestrationFlow: OneCloud Voice Outbound
attributes:
category: Language
values:
- English
attributeList:
- System.Outbound
engagementParameters:
language: en
adhocEmail: false
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
channelIdentifier: Voice
queue:
queueId: 6d1490d5-7886-417d-ac85-fb0825d53a93
queueName: Default
priority: 5
proficiencyRangeMin: 1
proficiencyRangeMax: 1
externalParticipantId: +35395554321
sourceAddress: +35395554321
destinationAddress: +12125554321
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
InboundEngagementCreated:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
connectionId:
$ref: '#/components/schemas/ConnectionId'
externalParticipantId:
$ref: '#/components/schemas/ExternalParticipantId'
dialogId:
$ref: '#/components/schemas/DialogId'
callingNumber:
type: string
description: The calling number of the external participant
dialledNumber:
type: string
description: The original dialed number for the engagement
channelId:
$ref: '#/components/schemas/ChannelId'
customerIdentifiers:
$ref: '#/components/schemas/CustomerIdentifiers'
providerEngagementId:
$ref: '#/components/schemas/ProviderEngagementId'
engagementParameters:
$ref: '#/components/schemas/EngagementParameters'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
connectionId: d2775626-66d4-459b-8147-09ea4b98c370
externalParticipantId: +35395554321
dialogId: 01005000281645486013
callingNumber: +15551235555
dialledNumber: +18005555555
channelId: Voice
providerEngagementId: 00001084011532384922
engagementParameters:
language: en
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
MatchOffered:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
matchId:
type: string
description: The unique identifier for this match
correlationId:
type: string
description: The correlation Id from the original match request (can be ignored)
strategy:
type: string
description: >-
The agent selection strategy used for this match (values include
MOST_IDLE or OCCUPANCY)
enum:
- MOST_IDLE
- OCCUPANCY
offeredQueue:
$ref: '#/components/schemas/OfferedQueue'
offeredService:
$ref: '#/components/schemas/OfferedService'
offeredSpecifiedAgent:
$ref: '#/components/schemas/OfferedSpecifiedAgent'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
matchId: 43dc4b96-dfd6-438c-867e-a0d032e1e0a6
correlationId: 1682f876-f7b7-4347-accd-495cae95f860
strategy: MOST_IDLE
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
OutboundEngagementCreated:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
agentId:
$ref: '#/components/schemas/AgentId'
dialogId:
$ref: '#/components/schemas/DialogId'
destinationAddress:
$ref: '#/components/schemas/DestinationAddress'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
customerIdentifiers:
$ref: '#/components/schemas/CustomerIdentifiers'
engagementParameters:
$ref: '#/components/schemas/EngagementParameters'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
agentId: zz3tDKfrQx-Mv78Q_AIpGG
dialogId: 01005000281645486013
destinationAddress: +12125554321
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
engagementParameters:
language: en
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
SingleStepTransfer:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
initiatingAgentId:
$ref: '#/components/schemas/InitiatingAgentId'
transferTo:
type: string
description: >-
The type of the transfer
enum:
- QUEUE
- USER
- AUTOMATION
- EXTERNAL
destination:
type: string
description: >-
Contains different values accordingly to transferTo:
- If transferTo is QUEUE, then returns the queueId
- If transferTo is USER, then returns the destinationAgentId
- If transferTo is AUTOMATION, then returns the ivrAddress
- If transferTo is EXTERNAL, then returns the externalAddress
queueId:
$ref: '#/components/schemas/QueueId'
queueName:
$ref: '#/components/schemas/QueueName'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
connectionId:
$ref: '#/components/schemas/ConnectionId'
dialogId:
$ref: '#/components/schemas/DialogId'
providerDialogId:
$ref: '#/components/schemas/ProviderDialogId'
channelId:
$ref: '#/components/schemas/ChannelId'
correlationId:
$ref: '#/components/schemas/CorrelationId'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
initiatingAgentId: ab8f46f8-fd79-4380-8d0e-ce739ca481db
transferTo: QUEUE
destination: 16119117-7986-426e-bd3f-6f2e1d92ee1d
queueId: 16119117-7986-426e-bd3f-6f2e1d92ee1d
queueName: VoiceQ
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
connectionId: d2775626-66d4-459b-8147-09ea4b98c370
dialogId: 01005000281645486013
providerDialogId: 00001000321636990744
channelId: Voice
correlationId: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
SingleStepTransferError:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
initiatingAgentId:
$ref: '#/components/schemas/InitiatingAgentId'
transferTo:
type: string
description: >-
The type of the transfer
enum:
- QUEUE
- USER
- AUTOMATION
- EXTERNAL
errorType:
type: string
description: >-
The type of the error
enum:
- CANCELLED
- FAILED
destination:
type: string
description: >-
Contains different values accordingly to transferTo:
- If transferTo is QUEUE, then returns the queueId
- If transferTo is USER, then returns the destinationAgentId
- If transferTo is AUTOMATION, then returns the ivrAddress
- If transferTo is EXTERNAL, then returns the externalAddress
dialogId:
$ref: '#/components/schemas/DialogId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
correlationId:
$ref: '#/components/schemas/CorrelationId'
title:
$ref: '#/components/schemas/ErrorTitle'
detail:
$ref: '#/components/schemas/ErrorDetail'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
initiatingAgentId: ab8f46f8-fd79-4380-8d0e-ce739ca481db
transferTo: USER
errorType: CANCELLED
destination: db9c8c9b-cb3a-42c9-8078-7a347726f016
dialogId: 01005000281645486013
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
correlationId: d3c8400d-c44f-4451-8316-e75c4efb8bb2
title: Engagement no longer active
detail: The current engagement has terminated
id: d433ef5c-7954-4b39-9d99-ab9ffeae725b
timestamp: 9223372036854776000
ChannelReady:
type: object
additionalProperties: false
properties:
agentId:
$ref: '#/components/schemas/AgentId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
agentId: zz3tDKfrQx-Mv78Q_AIpGG
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
AfterContactWorkActivated:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
agentId:
$ref: '#/components/schemas/AgentId'
dialogId:
$ref: '#/components/schemas/DialogId'
connectionId:
$ref: '#/components/schemas/ConnectionId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
agentId: zz3tDKfrQx-Mv78Q_AIpGG
dialogId: 01005000281645486013
connectionId: d2775626-66d4-459b-8147-09ea4b98c370
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
AfterContactWorkCompleted:
type: object
additionalProperties: false
properties:
engagementId:
$ref: '#/components/schemas/EngagementId'
agentId:
$ref: '#/components/schemas/AgentId'
dialogId:
$ref: '#/components/schemas/DialogId'
connectionId:
$ref: '#/components/schemas/ConnectionId'
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
id:
$ref: '#/components/schemas/Id'
timestamp:
$ref: '#/components/schemas/Timestamp'
example:
engagementId: 15bcf682-3edf-4c79-b083-07864fa1fb55
agentId: zz3tDKfrQx-Mv78Q_AIpGG
dialogId: 01005000281645486013
connectionId: d2775626-66d4-459b-8147-09ea4b98c370
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
id: d3c8400d-c44f-4451-8316-e75c4efb8bb2
timestamp: 9223372036854776000
OfferedQueue:
type: object
additionalProperties: false
description: The offered queue details including offered agent
properties:
queueId:
type: string
description: The unique identifier of this queue
channelId:
type: string
description: The channel of this queue
priority:
type: integer
description: The priority of this service
rank:
type: integer
description: The rank of this service
proficiencyRangeMin:
type: integer
description: The minimum proficiency of this service
proficiencyRangeMax:
type: integer
description: The maximum proficiency of this service
attributes:
type: array
description: >
A simplified flat list of attributes
items:
type: string
offeredAgentData:
$ref: '#/components/schemas/OfferedAgentData'
example:
priority: 1
rank: 1
proficiencyRangeMin: 1
proficiencyRangeMax: 1
attributes:
category: Language
values:
- English
OfferedService:
type: object
additionalProperties: false
description: Details about the service offered including the offered agent
properties:
priority:
type: integer
description: The priority of this service
rank:
type: integer
description: The rank of this service
proficiencyRangeMin:
type: integer
description: The minimum proficiency of this service
proficiencyRangeMax:
type: integer
description: The maximum proficiency of this service
attributes:
$ref: '#/components/schemas/Attributes'
offeredAgentData:
$ref: '#/components/schemas/OfferedAgentData'
example:
priority: 1
rank: 1
proficiencyRangeMin: 1
proficiencyRangeMax: 1
attributes:
category: Language
values:
- English
OfferedAgentData:
type: object
additionalProperties: false
description: Details about the agent
properties:
agentId:
$ref: '#/components/schemas/AgentId'
providerAgentId:
type: string
description: The provider agent id of the offered agent
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
channelProviderAddress:
type: string
description: The address of the engagement provider
providerAgentAddress:
type: string
format: email
description: The address of the agent
example:
agentId: 4a785201-73b8-4842-abf7-36f5e572d310
providerAgentId: 8011001
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
channelProviderAddress: +7775550113555
providerAgentAddress: [email protected]
OfferedSpecifiedAgent:
type: object
additionalProperties: false
description: Details about the agent specified in the match request
properties:
rank:
type: integer
description: The rank of this agent
offeredSpecifiedAgentData:
$ref: '#/components/schemas/OfferedSpecifiedAgentData'
OfferedSpecifiedAgentData:
type: object
additionalProperties: false
properties:
agentId:
$ref: '#/components/schemas/AgentId'
providerAgentId:
type: string
description: The provider agent id of the offered agent
channelProviderId:
$ref: '#/components/schemas/ChannelProviderId'
channelId:
$ref: '#/components/schemas/ChannelId'
channelProviderAddress:
type: string
description: The address of the engagement provider
providerAgentAddress:
type: string
format: email
description: The address of the agent
example:
agentId: 4a785201-73b8-4842-abf7-36f5e572d310
providerAgentId: 8011001
channelProviderId: 4dc53692-e25c-4e8c-a780-0b2f05008478
channelId: Voice
channelProviderAddress: +7775550113555
providerAgentAddress: [email protected]
Attribute:
type: object
additionalProperties: false
description: A Category and Values identified for routing the call
properties:
category:
type: string
description: A category for routing
values:
type: array
description: A list of values specific to the category
items:
type: string
Attributes:
type: array
description: A list of Category and Values identified for routing the call
items:
$ref: '#/components/schemas/Attribute'
AgentId:
type: string
description: The unique identifier for the Agent
AutomationType:
type: string
description: The type of automation being added
AutomationInitiatedDisconnect:
type: boolean
description: >-
An indication if the automation participant initiated disconnect from
the dialog
AutomationParticipantId:
type: string
description: The unique identifier for the automation participant
ConnectionId:
type: string
description: >-
The unique identifier for this appearance of this specific participant
on the engagement
ChannelId:
type: string
description: The channel ID which represents the media type
ChannelProviderId:
type: string
description: The unique identifier for this engagement provider
CustomerIdentifiers:
type: object
additionalProperties: false
description: >
A set of attributes used to identify the customer if any are known at
engagement creation.
*NOTE:* the list of Customer Identifiers is configurable per account so
expect this to be dynamic per customer. This will include all known
customer identifiers, but some customers may have more or less collected
than others.'
properties:
phoneNumbers:
type: array
items:
type: string
emailAddresses:
type: array
items:
type: string
accountIds:
type: array
items:
type: string
DialogId:
type: string
description: >
The identifier for the dialog. *NOTE* this will equate to the UCID
created by the ASBCE for an inbound call
EngagementId:
type: string
description: The unique identifier for this engagement
Extension:
type: string
description: The extension/line of the agent
ExternalParticipantId:
type: string
description: >
The Channel Provider's identifier for this external participant (aka the
Customer)
Id:
type: string
description: Each event has its own unique ID
ProviderEngagementId:
type: string
description: The provider-native identifier for the engagement
Timestamp:
type: string
description: Timestamp (milliseconds since epoch) when the event was generated
format: long
Ping:
type: object
additionalProperties: false
properties:
event:
description: ping - A constant parameter.
type: string
const: ping
subscriptionId:
description: Optional. The id of the subscription.
type: string
required:
- event
Pong:
type: object
additionalProperties: false
properties:
event:
description: pong - A constant parameter.
type: string
const: pong
required:
- event
DestinationAddress:
type: string
description: >
Destination number or uri
EngagementParameters:
type: object
additionalProperties: false
description: >
Additional information that could be tagged on an engagement
OrchestrationFlow:
type: string
description: >
The orchestration flow name that should be used for this engagement
AgentRouting:
type: object
additionalProperties: false
description: >
Agent routing strategy configuration
properties:
type:
type: string
description: >
LAR: last Agent routing, PAR: preferred Agent Routing
enum:
- LAR
- PAR
waitTime:
type: integer
description: >
Wait time in minutes before default routing is applied
InitiatingAgentId:
type: string
description: >
The unique identifier for the agent that initiated the transfer
QueueId:
type: string
description: >
The destination queue identifier for the transfer or the fallback queue in the event destination agent is not available
QueueName:
type: string
description: >
The destination queue name of the transfer or the fallback queue in the event destination agent is not available
CorrelationId:
type: string
description: >
The correlationId for the request. This should be referenced when notifying a related error
DestinationAgentId:
type: string
description: >
A unique identifier for the destination agent of the transfer
ErrorTitle:
type: string
description: The error description
ErrorDetail:
type: string
description: The cause of the error
ExternalAddress:
type: string
description: >
The number or URI of the target external party
IvrAddress:
type: string
description: >
The number used to access the required automation (typically an IVR)
ProviderDialogId:
type: string
description: >
The unique identifier of the dialog generated by provider
securitySchemes:
apiKey:
type: oauth2
flows:
password:
tokenUrl: https://localhost/auth/realms/ABCDEF/protocol/openid-connect/token
scopes: {}
AsyncAPI code generator
Please use the AsyncAPI code generator to build client SDK to interface with the Avaya Experience Platform™ Notification Agent and Engagement Async API.
https://www.asyncapi.com/tools/generator
The above specification can also be loaded into the AsyncAPI Studio for a user-friendly view similar to Swagger.
Payload
Payload details
Name | Type | Description | Accepted values |
---|---|---|---|
correlationId | string | The unique ID of the notification being sent | Any |
subscriptionId | string | The unique ID of the Agent and Engagement subscription | Any |
family | string | The family of events the subscription is for | Any |
sentAt | string | Datetime (in ISO 8601 format) of when the notification event was sent | Any |
accountId | string | The unique identifier for the Account. | Any |
loginId | string | The unique login handle for the Agent. | |
NOTE Only present on Agent related events | Any | ||
initiatingLoginId | string | The unique login handle for the Agent initiating a transfer. | |
NOTE Only present on Single Step Transfer related events | Any | ||
destinationLoginId | string | The unique login handle for the Agent the transfer is being made to. | |
NOTE Only present on Single Step Transfer to User related events | Any | ||
body | objectoneOf | The raw event payload that will be different based on the event. | Any |
body.0 | object | - | Any |
body.0.agentId | string | The unique identifier for the Agent | Any |
body.0.profileId | string | The profile ID used to login the agent. The profile indicates what channels should be logged in. | Any |
body.0.state | string | The current state of the agent. | LOGGED_IN, LOGGED_OUT, READY, NOT_READY |
body.0.reasonCode | string | The reason code for going not ready. Only for AGENT_NOT_READY state | Any |
body.0.cause | string | The cause of the agent not being ready. Only for AGENT_NOT_READY state | Any |
body.0.id | string | Each event has its own unique ID | Any |
body.0.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.1 | object | - | Any |
body.1.engagementId | string | The unique identifier for this engagement | Any |
body.1.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.1.connectionId | string | The unique identifier for this appearance of this specific participant on the engagement | Any |
body.1.action | string | The agent participant action | ADDED, HELD, UNHELD, INVITED, REMOVED |
body.1.agentId | string | The unique identifier for the Agent | Any |
body.1.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.1.extension | string | The extension/line of the agent | Any |
body.1.channelId | string | The channel ID which represents the media type | Any |
body.1.providerEngagementId | string | The provider-native identifier for the engagement | Any |
body.1.agentInitiatedDisconnect | boolean | An indication if the agent initiated disconnect from the dialog. Only for REMOVED action | Any |
body.1.id | string | Each event has its own unique ID | Any |
body.1.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.2 | object | - | Any |
body.2.engagementId | string | The unique identifier for this engagement | Any |
body.2.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.2.automationParticipantId | string | The unique identifier for the automation participant | Any |
body.2.action | string | The automation participant action | ADDED, REMOVED |
body.2.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.2.automationType | string | The type of automation being added | Any |
body.2.connectionId | string | The unique identifier for this appearance of this specific participant on the engagement | Any |
body.2.channelId | string | The channel ID which represents the media type | Any |
body.2.providerEngagementId | string | The provider-native identifier for the engagement | Any |
body.2.automationInitiatedDisconnect | boolean | An indication if the automation participant initiated disconnect from the dialog | Any |
body.2.id | string | Each event has its own unique ID | Any |
body.2.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.3 | object | - | Any |
body.3.engagementId | string | The unique identifier for this engagement | Any |
body.3.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.3.externalParticipantId | string | The Channel Provider's identifier for this external participant (aka the Customer) | Any |
body.3.action | string | The external participant action | ADDED, REMOVED, INVITED |
body.3.connectionId | string | The unique identifier for this appearance of this specific participant on the engagement | Any |
body.3.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.3.channelId | string | The channel ID which represents the media type | Any |
body.3.providerEngagementId | string | The provider-native identifier for the engagement | Any |
body.3.externalParticipantInitiatedDisconnect | boolean | An indication if the external participant (aka the Customer) initiated disconnect from the dialog | Any |
body.3.id | string | Each event has its own unique ID | Any |
body.3.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.4 | object | - | Any |
body.4.engagementId | string | The unique identifier for this engagement | Any |
body.4.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.4.orchestrationFlow | string | The orchestration flow name that should be used for this engagement | Any |
body.4.attributes | arrayobject | A list of Category and Values identified for routing the call | Any |
body.4.attributes.category | string | A category for routing | Any |
body.4.attributes.values | arraystring | A list of values specific to the category | Any |
body.4.attributeList | arraystring | A simplified flat list of attributes | |
NOTE this flat array of attributes will help to easily identify “System.Outbound” to represent a POM call | Any | ||
body.4.engagementParameters | object | Additional information that could be tagged on an engagement | Any |
body.4.agentRoutingStrategy | object | Agent routing strategy configuration | Any |
body.4.agentRoutingStrategy.type | string | LAR: last Agent routing, PAR: preferred Agent Routing | LAR, PAR |
body.4.agentRoutingStrategy.waitTime | integer | Wait time in minutes before default routing is applied | Any |
body.4.adhocEmail | boolean | Flag to determine if adhoc email or not (email routing only) | Any |
body.4.autoResponse | string | The auto response suggested to be used | Any |
body.4.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.4.channelId | string | The channel ID which represents the media type | Any |
body.4.channelIdentifier | string | The channel identifier of the engagement | Any |
body.4.queue | object | The queue details | Any |
body.4.queue.queueId | integer | The unique identifier of the queue | Any |
body.4.queue.queueName | integer | The name of the queue | Any |
body.4.queue.priority | integer | The priority of the queue | Any |
body.4.queue.proficiencyRangeMin | integer | The minimum proficiency of the queue | Any |
body.4.queue.proficiencyRangeMax | integer | The maximum proficiency of the queue | Any |
body.4.customerIdentifiers | object | A set of attributes used to identify the customer if any are known at engagement creation. | |
NOTE: the list of Customer Identifiers is configurable per account so expect this to be dynamic per customer. This will include all known customer identifiers, but some customers may have more or less collected than others.' | Any | ||
body.4.customerIdentifiers.phoneNumbers | arraystring | - | Any |
body.4.customerIdentifiers.emailAddresses | arraystring | - | Any |
body.4.customerIdentifiers.accountIds | arraystring | - | Any |
body.4.externalParticipantId | string | The Channel Provider's identifier for this external participant (aka the Customer) | Any |
body.4.sourceAddress | string | The source address of the external participant, e.g. calling number or customer email | Any |
body.4.destinationAddress | string | Destination number or uri | Any |
body.4.subject | string | The subject field of the incoming email | Any |
body.4.id | string | Each event has its own unique ID | Any |
body.4.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.5 | object | - | Any |
body.5.engagementId | string | The unique identifier for this engagement | Any |
body.5.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.5.connectionId | string | The unique identifier for this appearance of this specific participant on the engagement | Any |
body.5.externalParticipantId | string | The Channel Provider's identifier for this external participant (aka the Customer) | Any |
body.5.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.5.callingNumber | string | The calling number of the external participant | Any |
body.5.dialledNumber | string | The original dialed number for the engagement | Any |
body.5.channelId | string | The channel ID which represents the media type | Any |
body.5.customerIdentifiers | object | A set of attributes used to identify the customer if any are known at engagement creation. | |
NOTE: the list of Customer Identifiers is configurable per account so expect this to be dynamic per customer. This will include all known customer identifiers, but some customers may have more or less collected than others.' | Any | ||
body.5.customerIdentifiers.phoneNumbers | arraystring | - | Any |
body.5.customerIdentifiers.emailAddresses | arraystring | - | Any |
body.5.customerIdentifiers.accountIds | arraystring | - | Any |
body.5.providerEngagementId | string | The provider-native identifier for the engagement | Any |
body.5.engagementParameters | object | Additional information that could be tagged on an engagement | Any |
body.5.id | string | Each event has its own unique ID | Any |
body.5.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.6 | object | - | Any |
body.6.engagementId | string | The unique identifier for this engagement | Any |
body.6.matchId | string | The unique identifier for this match | Any |
body.6.correlationId | string | The correlation Id from the original match request (can be ignored) | Any |
body.6.strategy | string | The agent selection strategy used for this match (values include MOST_IDLE or OCCUPANCY) | MOST_IDLE, OCCUPANCY |
body.6.offeredQueue | object | The offered queue details including offered agent | Any |
body.6.offeredQueue.queueId | integer | The unique identifier of this queue | Any |
body.6.offeredQueue.channelId | integer | The channel of this queue | Any |
body.6.offeredQueue.priority | integer | The priority of this service | Any |
body.6.offeredQueue.rank | integer | The rank of this service | Any |
body.6.offeredQueue.proficiencyRangeMin | integer | The minimum proficiency of this service | Any |
body.6.offeredQueue.proficiencyRangeMax | integer | The maximum proficiency of this service | Any |
body.6.offeredQueue.attributes | arrayobject | A list of Category and Values identified for routing the call | Any |
body.6.offeredQueue.attributes.category | string | A category for routing | Any |
body.6.offeredQueue.attributes.values | arraystring | A list of values specific to the category | Any |
body.6.offeredQueue.offeredAgentData | object | Details about the agent | Any |
body.6.offeredQueue.offeredAgentData.agentId | string | The unique identifier for the Agent | Any |
body.6.offeredQueue.offeredAgentData.providerAgentId | string | The provider agent id of the offered agent | Any |
body.6.offeredQueue.offeredAgentData.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.6.offeredQueue.offeredAgentData.channelId | string | The channel ID which represents the media type | Any |
body.6.offeredQueue.offeredAgentData.channelProviderAddress | string | The address of the engagement provider | Any |
body.6.offeredQueue.offeredAgentData.providerAgentAddress | string | The address of the agent | Any |
body.6.offeredService | object | Details about the service offered including the offered agent | Any |
body.6.offeredService.priority | integer | The priority of this service | Any |
body.6.offeredService.rank | integer | The rank of this service | Any |
body.6.offeredService.proficiencyRangeMin | integer | The minimum proficiency of this service | Any |
body.6.offeredService.proficiencyRangeMax | integer | The maximum proficiency of this service | Any |
body.6.offeredService.attributes | arrayobject | A list of Category and Values identified for routing the call | Any |
body.6.offeredService.attributes.category | string | A category for routing | Any |
body.6.offeredService.attributes.values | arraystring | A list of values specific to the category | Any |
body.6.offeredService.offeredAgentData | object | Details about the agent | Any |
body.6.offeredService.offeredAgentData.agentId | string | The unique identifier for the Agent | Any |
body.6.offeredService.offeredAgentData.providerAgentId | string | The provider agent id of the offered agent | Any |
body.6.offeredService.offeredAgentData.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.6.offeredService.offeredAgentData.channelId | string | The channel ID which represents the media type | Any |
body.6.offeredService.offeredAgentData.channelProviderAddress | string | The address of the engagement provider | Any |
body.6.offeredService.offeredAgentData.providerAgentAddress | string | The address of the agent | Any |
body.6.offeredSpecifiedAgent | object | Details about the agent specified in the match request | Any |
body.6.offeredSpecifiedAgent.rank | integer | The rank of this agent | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData | object | - | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.agentId | string | The unique identifier for the Agent | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.providerAgentId | string | The provider agent id of the offered agent | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.channelId | string | The channel ID which represents the media type | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.channelProviderAddress | string | The address of the engagement provider | Any |
body.6.offeredSpecifiedAgent.offeredSpecifiedAgentData.providerAgentAddress | string | The address of the agent | Any |
body.6.id | string | Each event has its own unique ID | Any |
body.6.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.7 | object | - | Any |
body.7.engagementId | string | The unique identifier for this engagement | Any |
body.7.agentId | string | The unique identifier for the Agent | Any |
body.7.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.7.destinationAddress | string | Destination number or uri | Any |
body.7.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.7.channelId | string | The channel ID which represents the media type | Any |
body.7.customerIdentifiers | object | A set of attributes used to identify the customer if any are known at engagement creation. | |
NOTE: the list of Customer Identifiers is configurable per account so expect this to be dynamic per customer. This will include all known customer identifiers, but some customers may have more or less collected than others.' | Any | ||
body.7.customerIdentifiers.phoneNumbers | arraystring | - | Any |
body.7.customerIdentifiers.emailAddresses | arraystring | - | Any |
body.7.customerIdentifiers.accountIds | arraystring | - | Any |
body.7.engagementParameters | object | Additional information that could be tagged on an engagement | Any |
body.7.id | string | Each event has its own unique ID | Any |
body.7.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.8 | object | - | Any |
body.8.engagementId | string | The unique identifier for this engagement | Any |
body.8.initiatingAgentId | string | The unique identifier for the agent that initiated the transfer | Any |
body.8.transferTo | string | The type of the transfer | QUEUE, USER, AUTOMATION, EXTERNAL |
body.8.destination | string | Contains different values accordingly to transferTo: - If transferTo is QUEUE, then returns the queueId - If transferTo is USER, then returns the destinationAgentId - If transferTo is AUTOMATION, then returns the ivrAddress - If transferTo is EXTERNAL, then returns the externalAddress | Any |
body.8.queueId | string | The destination queue identifier for the transfer or the fallback queue in the event destination agent is not available | Any |
body.8.queueName | string | The destination queue name of the transfer or the fallback queue in the event destination agent is not available | Any |
body.8.channelProviderId | string | The unique identifier for this engagement provider | Any |
body.8.connectionId | string | The unique identifier for this appearance of this specific participant on the engagement | Any |
body.8.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
body.8.providerDialogId | string | The unique identifier of the dialog generated by provider | Any |
body.8.channelId | string | The channel ID which represents the media type | Any |
body.8.correlationId | string | The correlationId for the request. This should be referenced when notifying a related error | Any |
body.8.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
body.9 | object | - | Any |
body.9.engagementId | string | The unique identifier for this engagement | Any |
body.9.initiatingAgentId | string | The unique identifier for the agent that initiated the transfer | Any |
body.9.transferTo | string | The type of the transfer | QUEUE, USER, AUTOMATION, EXTERNAL |
body.9.errorType | string | The type of the error | CANCELLED, FAILED |
body.9.destination | string | Contains different values accordingly to transferTo: |
- If transferTo is QUEUE, then returns the queueId
- If transferTo is USER, then returns the destinationAgentId
- If transferTo is AUTOMATION, then returns the ivrAddress
- If transferTo is EXTERNAL, then returns the externalAddress | Any |
| body.9.dialogId | string | The identifier for the dialog. NOTE this will equate to the UCID created by the ASBCE for an inbound call | Any |
| body.9.channelProviderId | string | The unique identifier for this engagement provider | Any |
| body.9.channelId | string | The channel ID which represents the media type | Any |
| body.9.correlationId | string | The correlationId for the request. This should be referenced when notifying a related error | Any |
| body.9.title | string | The error description | Any |
| body.9.detail | string | The cause of the error | Any |
| body.9.id | string | Each event has its own unique ID | Any |
| body.9.timestamp | string | Timestamp (milliseconds since epoch) when the event was generated | Any |
| body.event | string | The name of the specific event being sent. For instance AgentState, AgentParticipant, InboundEngagementCreated, etc... | Any |
Examples of payload (generated)
{
"correlationId": "a425851d-5225-4b76-8ca0-4fa31ecfd5db",
"subscriptionId": "fdbec917-e76e-4645-8120-4eac46f29487",
"family": "AGENT_ENGAGEMENT",
"sentAt": "2020-08-24T08:20:23.395Z",
"accountId": "DYNNUG",
"loginId": "[email protected]",
"body": {
"event": "AgentState",
"agentId": "4a785201-73b8-4842-abf7-36f5e572d310",
"profileId": "HomeProfile",
"state": "NOT_READY",
"reasonCode": 514,
"cause": "RONA",
"id": "d3c8400d-c44f-4451-8316-e75c4efb8bb2",
"timestamp": 9223372036854776000
}
}
Tags
- Agent and Engagement Data
Message pong
pong
Server pong response to a ping message.
Payload
Name | Type | Description | Accepted values |
---|---|---|---|
event (required) | string | pong - A constant parameter. | Any |
Examples of payload
pongMessage
Example of a pong message to client.
{
"event": "pong"
}
Tags
- Heartbeat
Message authenticationResponse
authenticationResponse
Authentication response message sent to the client after websocket authentication.
Payload
Name | Type | Description | Accepted values |
---|---|---|---|
event | string | authenticationResponse - A constant parameter. | Any |
status | string | You will then receive 1 of 5 statuses: |
- CONNECTION_CONFIRMED: Connection was confirmed
- CONNECTION_FAILED_INVALID_TOKEN: Authentication token is invalid
- CONNECTION_FAILED_UNKNOWN_SUBSCRIPTION: Unknown Subscription, can be for a subscription that never existed or one that is no longer active
- CONNECTION_FAILED_INTERNAL_SERVER_ERROR: Server Error, client can retry later
- CONNECTIONFAILED_CONSTRAINT_VIOLATION: Client issue, malformed client request, client must update payload and rerty | CONNECTION_CONFIRMED, CONNECTION_FAILED_INVALID_TOKEN, CONNECTION_FAILED_UNKNOWN_SUBSCRIPTION, CONNECTION_FAILED_INTERNAL_SERVER_ERROR, CONNECTION_FAILED_CONSTRAINT_VIOLATION |
| subscriptionId | string | The unique id of the subscription. | _Any |
| pingInterval | integer | The maximum interval (seconds) at which a ping is expected to be sent by the client before websocket is closed and subscription set to INACTIVE.
It is recommended the client send ping more frequently (every 30 seconds) to preclude any proxies from closing the connection. | Any |
| expiresInterval | integer | Expiration interval in seconds before the subscription is set to INACTIVE. | Any |
Examples of payload (generated)
{
"event": "authenticationResponse",
"status": "CONNECTION_CONFIRMED",
"subscriptionId": "fdbec917-e76e-4645-8120-4eac46f29487",
"pingInterval": 300,
"expiresInterval": 900
}
Tags
- Authentication
Updated about 2 months ago