Client Connector Events Bridge - Websockets API 1.0.0

The CCEB Websockets API provides a way to subscribe to real-time updates from the CCEB that will route client acctions to the specific ContactCenter backends and it will route the notifications from Contact Center backend to the subscribed clients.

General Considerations

  • All messages sent and received via WebSockets are encoded in JSON format
  • Keys are in snake case, except when stated otherwise, for example the actions that have to map to AVRO records.
  • Before using the API, clients will have to perform the discovery process to get the endpoint they should use to connect to the CCEB
  • After discovering the endpoint, clients will have to connect to the CCEB using the WebSocket protocol, and as a first message, they will have to send a hello message to the CCEB to complete the authentication.
  • Once the client is authenticated, it will be automatically subscribed to the events that that particular CC agent should receive.
  • For every notification received, the client will have to send an ack message to the CCEB to confirm the reception of the notification.
  • For every action that the client wants to perform, it will have to send a action message to the CCEB.
  • The CCEB will send an ack message to the client to confirm the reception of the action.

Long-Lived Sessions

Long-lived sessions enable mobile and engage clients to maintain session state for push notification delivery without requiring persistent WebSocket connections. When a client requests a long-lived session:

  • The session remains active for 72 hours after WebSocket disconnection
  • The server returns a session_key that can be used to reconnect to the same session
  • Chat availability remains set as long as valid long-lived sessions exist
  • When reconnecting with a session_key, if the session is still valid, the same session is resumed
  • If the session_key refers to an expired or invalid session, a new session is created with a new session_key
  • Clients can enable auto_accept to automatically accept assigned interactions

Supported action types:

CCEB will accept the following actions, defined in the following repository, vcc-core-avro-records. Any fields defined in the Avro record schema should be passed on the attribute data.action_details of the action message, except for irInstance, tenantGuid and agentGuid those can't be set as are reserved for the CCEB to ensure authorization for those actions and to prevent clients to take actions on behalf of other agents. Other reserved fields that cannot be set are: isSystemAction, isRelocate and source. Because WorkD doesn't have the Agent GUIDs of all the agents when triggering the transfer, cancel transfer and Agent to Agent chat request, instead of passing the Agent GUIDs, the WorkD will pass the destinationAgentContactId (instead of destinationAgentGuid) or secondAgentContactId (instead of secondAgentGuid) of the agent. The CCEB will then resolve the Agent GUID based on the contactId and tenantId. Record name should be passed on attribute data.action, the list of suppprted actions are:

  • UpdateInteractionEvent
  • RequestAgentInteractionListEvent
  • InitiatePhoneCallEvent
  • HoldAgentTelephoneLineEvent
  • UnholdAgentTelephoneLineEvent
  • CancelTransferEvent
  • AgentToAgentChatRequestEvent
  • ConferenceAgentTelephoneLinesEvent
  • InitiateEmailInteractionEvent
  • EndPostProcessingEvent
  • DeleteInteractionEvent
  • EndEmailInteractionEvent
  • ForwardInteractionEvent
  • BlindTransferEvent
  • AcceptInteractionEvent
  • TransferAgentTelephoneLinesEvent
  • HangupAgentTelephoneLineEvent
  • HangupParticipantTelephoneLineEvent
  • MuteAgentTelephoneLineEvent
  • UnmuteAgentTelephoneLineEvent
  • AcceptInteractionEvent
  • RejectInteractionEvent
  • SkipOutboundCampaignEvent
  • StartOutboundCampaignEvent
  • HoldAgentTelephoneLineEvent
  • ChangeAgentStateEvent
  • ChangeAgentSubStateEvent
  • SetAgentNextStatusEvent
  • TclAndDispositionRequestEvent
  • PhoneValidationValidateEvent
  • PhoneVerificationPinEvent
  • PhoneValidationCancelEvent
  • PhoneValidationStatusEvent
  • SetOffHookConnectionEvent
  • RejectOffHookEvent
  • OffHookConnectionStatusEvent
  • OffHookAuthPinValidationEvent
  • OffHookCancelledEvent

Operations

  • REQUEST /ws/v1

    Operation IDauthenticate

    Accepts the following message:

    hello

    Initial authentication message

    Message IDhello

    The client will have to send this message to the CCEB to complete the authentication

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REQUEST /ws/v1

    Operation IDaction

    Accepts the following message:

    action

    Action sent to the CCEB by the client to trigger a specific behaviour.

    Message IDaction
    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDinteraction_update

    Accepts the following message:

    interaction_update

    Interaction update notification

    Message IDinteraction_update

    When Interaction router will assign an interaction to an agent, he weill recevie this notification.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDagent_interaction

    Accepts the following message:

    agent_interaction

    Current interaction status assigned to the agent.

    Message IDagent_interaction

    Current interaction status assigned to the agent, it is being received after agent requests the interactions list. The agent will receive this notification for each interaction.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDinteractions_list

    Accepts the following message:

    interactions_list

    Interaction list notification

    Message IDinteractions_list

    When the agent will login or refresh the connection, it can ask for current interactions list. The CCEB will send this notification with the list of interactions, and after that, the agent will receive the interaction update notification for each interaction.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDpresence

    Accepts the following message:

    presence

    Presence notification

    Message IDpresence

    When an agent changes his presence status, he will receive this notification.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDcall_leg

    Accepts the following message:

    call_leg

    Call leg updates

    Message IDcall_leg

    Call leg status updates for phone interactions.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDswitch_line

    Accepts the following message:

    switch_line

    Switch line update

    Message IDswitch_line

    Notification when the current line is switched in the client application.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDrecording_ready

    Accepts the following message:

    recording_ready

    Recording ready notification

    Message IDrecording_ready

    Notification sent when a call recording is ready for playback/download.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDcampaign_status

    Accepts the following message:

    campaign_status

    Campaign status notification

    Message IDcampaign_status

    Campaign status monitoring notification providing updates about outbound campaign statistics and metrics.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDagent_line_status

    Accepts the following message:

    agent_line_status

    Agent line status notification

    Message IDagent_line_status

    Agent line status monitoring notification providing updates about agent phone line status and interaction details.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDmonitoring_agent_list

    Accepts the following message:

    monitoring_agent_list

    Monitoring agent list notification

    Message IDmonitoring_agent_list

    Agent monitoring list notification providing a list of agents that are monitored by the current user.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDprovisioning

    Accepts the following message:

    provisioning

    Provisioning notification

    Message IDprovisioning

    Provisioning notifications are sent when changes occur to tenant configuration, including agents, queues, agent groups, and access rights. These events provide real-time updates about configuration changes in the contact center system.

    Supported provisioning event types:

    • AgentAddedEvent: A new agent has been added to the tenant (includes full agent configuration)
    • AgentUpdatedEvent: An existing agent's configuration has been updated (includes deltas with changed fields)
    • AgentDeletedEvent: An agent has been deleted from the tenant (includes agentId only)
    • AgentQueueAddedEvent: A queue assignment has been added for an agent (includes queue details and access level)
    • AgentQueueDeletedEvent: A queue assignment has been removed from an agent (includes agentId and queueId)
    • AgentAccessRightsAddedEvent: Access rights have been added/updated for an agent (includes CRM permissions)
    • AgentGroupAddedEvent: A new agent group has been created (includes group configuration)
    • AgentGroupUpdatedEvent: An existing agent group's configuration has been updated (includes deltas with changed fields)
    • AgentGroupDeletedEvent: An agent group has been deleted (includes groupId only)
    • TenantUpdatedEvent: Tenant-level configuration has been updated (includes deltas with changed fields)
    • QueueAddedEvent: A new queue has been created (includes full queue configuration)
    • QueueUpdatedEvent: An existing queue's configuration has been updated (includes deltas with changed fields)
    • QueueDeletedEvent: A queue has been deleted (includes queueId and queueType only)
    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDphone_validation

    Accepts the following message:

    phone_validation

    Workplace phone validation update

    Message IDphone_validation

    State update for an in-progress workplace phone validation. Pushed only to agents configured for persistent / off-hook connection mode while they are validating a new workplace phone number from My Profile -> Phone setup. The flow is: offering -> answered -> verified | invalid (with rejected / dropped as terminal alternates). Only the offering state carries a timeout (in seconds) for the workspace countdown.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDoff_hook

    Accepts the following message:

    off_hook

    Off-hook (persistent phone connection) notification

    Message IDoff_hook

    Off-hook notifications carry the agent-visible state of the persistent phone connection (one continuous call between an agent's workplace phone and the platform, on which all of that agent's interactions are bridged for the whole shift).

    Two sources produce these notifications:

    1. Inbound from the platform (MessageIds 250-255) — ack on enable/disable, the persistent leg being answered or dropped, the offer being rejected, the response to a status query, and the authentication result.
    2. Synthesised by CCEB when an off-hook-enabled agent's outgoing ChangeAgentStateEvent action requests the Available state. The platform does not emit a notification for the offering itself; CCEB injects one so the client can open the "Connect voice" modal with a countdown immediately, before the platform has had a chance to ring the workplace phone.

    state: "authenticated" may carry media_resource_id identifying the persistent media leg. state: "offering" may carry a timeout in seconds for the modal countdown. Other states carry neither.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1
  • REPLY /ws/v1

    Operation IDagent_phone_update

    Accepts the following message:

    agent_phone_update

    Agent phone update notification

    Message IDagent_phone_update

    Sent to a single agent when an administrator changes their Agent Recordings Control setting in Configuration Manager (Users > Edit User > Phone). The client uses this to dynamically show or hide recording controls without requiring the agent to log out and back in.

    This notification is emitted in addition to the generic provisioning notification for the same AgentUpdatedEvent. The generic message is delivered tenant-wide; agent_phone_update is delivered only to the affected agent.

    recording_controls values:

    • 0 — Agent does not have recording controls
    • 1 — Agent is able to start recording (*)
    • 2 — Agent is able to start and pause recording (*)

    (*) Can be overridden by IVR Voice.

    allOf

    Examples

    REPLY INFORMATION

    REPLY CHANNEL INFORMATION

    Reply will be provided via this designated address: /ws/v1

Messages

  • #1uuid_ack_action

    Acknowledge message

    Message IDuuid_ack_action

    The client will have to send this message to confirm the reception of a notification

    object
  • #2uuid_ack_response

    Acknowledge message

    Message IDuuid_ack_response

    CCEB will send the ack message whenever it accepted an action from the client.

    object
  • #3hello

    Initial authentication message

    Message IDhello

    The client will have to send this message to the CCEB to complete the authentication

    allOf
  • #4hello_reply

    Initial authentication reply message

    Message IDhello_reply

    The CCEB will send this message to the client to confirm the authentication

    allOf
  • #5action

    Action sent to the CCEB by the client to trigger a specific behaviour.

    Message IDaction
    allOf
  • #6interactions_list

    Interaction list notification

    Message IDinteractions_list

    When the agent will login or refresh the connection, it can ask for current interactions list. The CCEB will send this notification with the list of interactions, and after that, the agent will receive the interaction update notification for each interaction.

    allOf
  • #7agent_interaction

    Current interaction status assigned to the agent.

    Message IDagent_interaction

    Current interaction status assigned to the agent, it is being received after agent requests the interactions list. The agent will receive this notification for each interaction.

    allOf
  • #8interaction_update

    Interaction update notification

    Message IDinteraction_update

    When Interaction router will assign an interaction to an agent, he weill recevie this notification.

    allOf
  • #9presence

    Presence notification

    Message IDpresence

    When an agent changes his presence status, he will receive this notification.

    allOf
  • #10call_leg

    Call leg updates

    Message IDcall_leg

    Call leg status updates for phone interactions.

    allOf
  • #11switch_line

    Switch line update

    Message IDswitch_line

    Notification when the current line is switched in the client application.

    allOf
  • #12phone_validation

    Workplace phone validation update

    Message IDphone_validation

    State update for an in-progress workplace phone validation. Pushed only to agents configured for persistent / off-hook connection mode while they are validating a new workplace phone number from My Profile -> Phone setup. The flow is: offering -> answered -> verified | invalid (with rejected / dropped as terminal alternates). Only the offering state carries a timeout (in seconds) for the workspace countdown.

    allOf
  • #13recording_ready

    Recording ready notification

    Message IDrecording_ready

    Notification sent when a call recording is ready for playback/download.

    allOf
  • #14campaign_status

    Campaign status notification

    Message IDcampaign_status

    Campaign status monitoring notification providing updates about outbound campaign statistics and metrics.

    allOf
  • #15agent_line_status

    Agent line status notification

    Message IDagent_line_status

    Agent line status monitoring notification providing updates about agent phone line status and interaction details.

    allOf
  • #16monitoring_agent_list

    Monitoring agent list notification

    Message IDmonitoring_agent_list

    Agent monitoring list notification providing a list of agents that are monitored by the current user.

    allOf
  • #17provisioning

    Provisioning notification

    Message IDprovisioning

    Provisioning notifications are sent when changes occur to tenant configuration, including agents, queues, agent groups, and access rights. These events provide real-time updates about configuration changes in the contact center system.

    Supported provisioning event types:

    • AgentAddedEvent: A new agent has been added to the tenant (includes full agent configuration)
    • AgentUpdatedEvent: An existing agent's configuration has been updated (includes deltas with changed fields)
    • AgentDeletedEvent: An agent has been deleted from the tenant (includes agentId only)
    • AgentQueueAddedEvent: A queue assignment has been added for an agent (includes queue details and access level)
    • AgentQueueDeletedEvent: A queue assignment has been removed from an agent (includes agentId and queueId)
    • AgentAccessRightsAddedEvent: Access rights have been added/updated for an agent (includes CRM permissions)
    • AgentGroupAddedEvent: A new agent group has been created (includes group configuration)
    • AgentGroupUpdatedEvent: An existing agent group's configuration has been updated (includes deltas with changed fields)
    • AgentGroupDeletedEvent: An agent group has been deleted (includes groupId only)
    • TenantUpdatedEvent: Tenant-level configuration has been updated (includes deltas with changed fields)
    • QueueAddedEvent: A new queue has been created (includes full queue configuration)
    • QueueUpdatedEvent: An existing queue's configuration has been updated (includes deltas with changed fields)
    • QueueDeletedEvent: A queue has been deleted (includes queueId and queueType only)
    allOf
  • #18off_hook

    Off-hook (persistent phone connection) notification

    Message IDoff_hook

    Off-hook notifications carry the agent-visible state of the persistent phone connection (one continuous call between an agent's workplace phone and the platform, on which all of that agent's interactions are bridged for the whole shift).

    Two sources produce these notifications:

    1. Inbound from the platform (MessageIds 250-255) — ack on enable/disable, the persistent leg being answered or dropped, the offer being rejected, the response to a status query, and the authentication result.
    2. Synthesised by CCEB when an off-hook-enabled agent's outgoing ChangeAgentStateEvent action requests the Available state. The platform does not emit a notification for the offering itself; CCEB injects one so the client can open the "Connect voice" modal with a countdown immediately, before the platform has had a chance to ring the workplace phone.

    state: "authenticated" may carry media_resource_id identifying the persistent media leg. state: "offering" may carry a timeout in seconds for the modal countdown. Other states carry neither.

    allOf
  • #19agent_phone_update

    Agent phone update notification

    Message IDagent_phone_update

    Sent to a single agent when an administrator changes their Agent Recordings Control setting in Configuration Manager (Users > Edit User > Phone). The client uses this to dynamically show or hide recording controls without requiring the agent to log out and back in.

    This notification is emitted in addition to the generic provisioning notification for the same AgentUpdatedEvent. The generic message is delivered tenant-wide; agent_phone_update is delivered only to the affected agent.

    recording_controls values:

    • 0 — Agent does not have recording controls
    • 1 — Agent is able to start recording (*)
    • 2 — Agent is able to start and pause recording (*)

    (*) Can be overridden by IVR Voice.

    allOf

Schemas

  • object
  • object
  • object
  • object
  • object
  • object
  • object
  • allOf
  • allOf
  • allOf
  • allOf
  • allOf
  • allOf
  • allOf
  • object
  • object
  • object
  • object
  • object
  • object
  • allOf
  • allOf
  • allOf
  • allOf
  • allOf
  • allOf