Skip to main content

overview

MaestroSDK publishes embeddable events and can be consumed by third-party developers to integrate core 8x8 products into their solutions.

MaestroSDK_flow_diagram

Embeddable events are categorised into two categories based on the 8x8 products supported:

  • UC (Unified Communications) Events
  • CC (Contact Center) Events

These event types support different event states, such as:

  • Offered
  • Accepted
  • Completed
  • Terminated

Example Use Cases

Embedded 8x8 Work, Engage, and 8x8 Contact Centre

Click to Call

  • Click a correctly formatted phone number from within a third-party application.
  • Initiate an outbound call via 8x8 Work, 8x8 Engage, or 8x8 Contact Centre.

Interaction Logging

  • Automatically create a call log as a third-party record containing 8x8 interaction data.
  • Includes details such as call duration, call answer time, and call queue.
  • Triggered when 8x8 events are received — e.g., offered, connected, complete, or terminated.

Automated Record Creation

  • Automatically create a third-party record, such as a new contact in a no-match scenario.
  • Prepopulate with 8x8 interaction data, such as phone number.

Screen Pop and Contextual Information

  • Automatically display a third-party record after performing a lookup for matching phone numbers.
  • Provides contextual information for better user experience.

Prerequisites

  • The end user must provide their domain to 8x8 for whitelisting to enable end-to-end integration with the Maestro SDK. To request whitelisting, please complete the designated form.

  • The end user must possess or acquire the necessary licenses to login and utilize 8x8 applications. The email URL functionality is contingent upon a successful login to VCC, as an SSO token is required.

  • The Google Chrome browser is preferred for optimal performance.

MaestroSDK Integration

Integrate the below Computer Telephony Integration (CTI) URL into your application and provide 8x8 with the domain to whitelist, as mentioned in the Prerequisites.

CTI URL to be integrated

https://cloud8.8x8.com/mashell/public/index.html?env=embeddable&nextgen=true

Overview of Embeddable events

MaestroSDK Live Demo

Experience the MaestroSDK integration in action by clicking Open MaestroSDK Demo below. This demo illustrates how events are sent to and received from the MaestroSDK in real time.

Open MaestroSDK Demo
  1. The 8x8 production selection page will be displayed as shown below. All events sent to 8x8 MaestroSDK will be displayed on the left side under "Sent Events," and all received events from MaestroSDK will be displayed under "Received Events" on the right side. Maestro SDK Event Flow Simulator

  2. After clicking “Continue to Setup” from the previous page, select 8x8 Contact Centre for CC and 8x8 Work and Engage for UC accordingly. Maestro SDK Product Selection

  3. Please enter your assigned VCC domain as illustrated below. Maestro SDK VCC Domain Entry

  4. The VCC Login page will be displayed as shown below, requiring VCC login credentials. Maestro SDK VCC Login Page

Click to Dial

This event is initiated by the third-party and sent to the Maestro SDK. It supports outbound voice phone features for both UC and CC, and the SDK processes the event according to the defined workflow once it is received.

Below is a sample event structure that the third-party should use to pass the event to the Maestro SDK.

{
"eventName": "maEvent",
"family": "external",
"content": {
"eventName": "startCall",
"method": "mapDirective",
"phoneNumber": "+1234567890"
}
}

Event Attribute Details

PropertyDescriptionType
eventName (*)Name of event (parent)'maEvent'
family (*)Event family'external'
content (*)Holds details of eventObject with properties:
eventName (*): string - Event name to trigger c2d outbound call
method (*): string - Events published from third party to Maestro SDK are named as mapDirective
phoneNumber (*): string - Phone number on which click to dial is triggered
schemaVersion (*)Current schema version of the event'1.0.0'

(*) Required.

Error Events

Events published from the Maestro SDK undergo validation checks before being sent to the third-party. If any validation fails, the event response will include an error message to assist with debugging.

For example, if an error occurs in mashell-chat-nextgen-terminated-cc-event-v1, the error response would be as shown in the sample below:

Sample Event Object for INVALID_SCHEMA

This error occurs when the event payload is validated against the allowed schema version but fails validation due to:

  • Incorrect field datatype
  • Missing mandatory field value
  • Missing required field

The sample event object below illustrates this scenario:

{
"eventType": "mashell-chat-nextgen-terminated-cc-event-v1",
"status": "failed",
"data": {
"eventName": "dummyEventName",
"error": "INVALID_SCHEMA",
"schemaVersion": "1.0.0",
"allowedSchemaVersions": ["1.0.0"],
"validSchema": false,
"errorDescription": [
{
"received": "dummyEventName",
"code": "invalid_literal",
"expected": "terminated",
"path": ["eventName"],
"message": "Invalid literal value, expected 'terminated'"
},
{
"code": "invalid_literal",
"expected": "2.0.0",
"path": ["schemaVersion"],
"message": "Invalid literal value, expected '1.0.0'"
}
]
}
}

Event Attribute Details

PropertyDescriptionType
eventType (*)Name of event type'mashell-chat-nextgen-terminated-cc-event-v1'
status (*)Validation status'failed'
data (*)Holds details of eventObject with properties:
'eventName' (*): string - Name of the event that was attempted
'error' (*): string - Error code indicating the type of error (e.g., INVALID_SCHEMA)
'schemaVersion' (*): string - Schema version used in the event payload
'allowedSchemaVersions' (*): array - List of supported schema versions
'validSchema' : boolean - Indicates whether the event payload conforms to a valid schema
'errorDescription': array - Array of objects describing individual validation errors. Each object contains:
  • 'received' : Value received in the payload
  • 'code' : Validation error code
  • 'expected' : Expected value
  • 'path' (*): Path of the field causing the error
  • 'message' (*): Detailed error message
codeError code for failureObject with properties:
code: string - Error code for failure (e.g., invalid_literal)
expected: string - Expected data for the field (e.g., 2.0.0)
path: array - List of fields which failed validation (e.g., ['schemaVersion'])
message: string - Error message for reason of failure (e.g., Invalid literal value, expected '1.0.0')

(*) Required.

Sample event object for UNSUPPORTED_SCHEMA_VERSION

This error occurs when the event payload uses an unsupported schema version. Such payloads are immediately rejected and do not undergo data validation. As a result, no error description object is provided for this type of error.

{
"eventType": "mashell-chat-nextgen-terminated-cc-event-v1",
"status": "failed",
"data": {
"eventName": "terminated",
"error": "UNSUPPORTED_SCHEMA_VERSION",
"schemaVersion": "2.0.0",
"allowedSchemaVersions": ["1.0.0"]
}
}

Event Attribute Details

PropertyDescriptionType
eventType (*)Name of event (parent)'mashell-chat-nextgen-terminated-cc-event-v1'
status (*)Status of the event'failed'
data (*)Holds details of eventObject with properties:
eventName (*): string - Name of the event that was attempted
error (*): string - Error code indicating the type of error - UNSUPPORTED_SCHEMA_VERSION
schemaVersion (*): string - Schema version used in the event payload
allowedSchemaVersions (*): array - List of supported schema versions

(*) Required.