Monitoring Gateway Subscriptions
Content on this page is for a product or feature in controlled release (CR). If you are not part of the CR group and would like more information, contact your Account Representative.
You can have direct access to health and monitoring data for your contact center. Monitoring Gateway Subscriptions let you pull this data out of CXone and into your own monitoring platform. In your own platform, you can visualize this data how you see fit and have more control and insight into the health of your contact center. These subscriptions give you access to two types of data:
-
All information provided in Voice Quality Metrics, like packet loss, jitter rates, MOS scores, and so forth.
-
Information on API calls and responses from your Studio scripts.
CXone produces this data via webhooks. You can subscribe to specific types of data, like script API responses or voice quality data. When you set up the subscription and connection with your monitoring platform, CXone continuously pushes data to your platform. This enables real-time alerts and analytics, which let you also make informed decisions when issues arise. It also helps you identify trends and patterns so you can anticipate and proactively prevent any quality issues before having an impact on contacts' experiences. This is a native integration with Monitoring Gateway, so you can start using these insights right away, without extra overhead or delay.
Set Up Monitoring Gateway Subscriptions
Subscribing to the webhooks requires setup in both CXone and your monitoring platform. This lets you establish a webhook between the two servers.
Prerequisites
You must have your own server set up that can receive this monitoring data. The following are requirements of this server:
-
Implement either a signature or MTLS authentication method. When registering your subscription in the CXone interface, you add details of your auth method, like entering the necessary keys or certificate.
-
Expose endpoints to which CXone can send event payloads. The endpoint should be a publicly accessible URL and capable of receiving POST requests. You must have a unique endpoint for each type of data you want to receive.
View example Voice Quality Metrics payload
The following is an example JSON payload for a script API response. With this payload, you can:
{ \"ContactId\":8675309, \"DataSource\": "SBC EXMS", \"MasterContactId\":86753099, \"BusinessUnit\":1337, \"SkillId\":4, \"SkillName\":\"Mysteries Report\", \"TeamId\":1010, \"TeamName\":\"Mysteries\", \"AgentId\":1174, \"Agent\":\"Sherlock Holmes\", \"DbKey\":null, \"StartDateTime\":\"2024-03-26T13:57:41.727Z\", \"EndDateTime\":\"2024-03-26T13:57:47.009Z\", \"From\":\"+18018675309\", \"To\":\"1174\", \"Direction\":null, \"AvgJitter\":null, \"AvgPktLoss\":null, \"AvgMos\":null, \"AvgRFactor\":null, \"CallScore\":null, \"Poc\":\"MysteriesReportLine\", \"LineType\":\"webRTC\", \"DisconnectReason\":\"1\", \"Disposition\":\"Very Mysterious\", \"Callduration\":561, \"Ringtime\":null, \"Disconnecttime\":null, \"Cluster\":\"L69\", \"SipResponseCode\":null, \"SipFailureCode\":null, \"SipIsDroppedCode\":null, \"SipAbandonedByOriginator\":null, \"AvgBitrate\":0.0, \"AvgRtt\":0, \"IspProvider\":\"London Speed\", \"CallSetupTime\":898.0, \"OperatingSystem\":\"Windows\", \"OsVersion\":\"10\", \"LocationCountry\":\"England\", \"LocationCity\":\"London\", \"SdkVersion\":\"1.30.9\", \"Browser\":\"Firefox\", \"ConnectionType\":\"TURN\", \"MediaTransport\":\"udp\", \"AgentConsoleType\":\"MAX\", \"AgentConsoleVersion\":\"24.2\", \"spearlineAnalysis\":null }
View example script API payload
The following is an example JSON payload for a script API response. With this payload, you can:
-
Track successful and error API responses.
-
Access API messages to understand when an error occurred.
-
Display concurrent call, script, and action volumes.
-
Display API latency data.
-
Display the distribution of:
-
Most frequently used scripts.
-
Most frequently used actions.
-
API errors.
-
{ "source":"NICE", "event":"SCRIPT_API_MONITORING ", "timestamp":"4/20/2024 06:13:37 AM", "metadata":"[{ \"busNo\":\"4600000\", \"messageId\":\"123ed4d5-06bc-78a9-bf0-0f12345eb678\", \"contactId\":\"460000000000\", \"masterContactId\":\"460000000000\", \"scriptId/version\":\"130000000\", \"scriptName\":\"sub_webservice\", \"actionId\":\"40\", \"actionName\":\"Snippet\", \"actionLabel\":\"Do RESTful web service API call\", \"dateTime\":\"4/21/2023 11:20:20 AM\", \"apiEndpoint\":\"https://callbackurl.com", \"apiResponseCode\":\"200\", \"apiResponseMessage\":\"SUCESS\", \"responseTime\":\"1.000000\" }]” }
-
Create a Subscription Registration
Required Permissions: Gateway Subscriptions Create
-
In CXone, navigate to Gateway Subscriptions:
- Click the app selector
and select Monitoring Gateway.
- Click Gateway Subscriptions.
- Click the app selector
- Click Create.
- Select either MTLS or SIGNATURE AUTH for your authentication method. This is the authentication between CXone and your monitoring platform.
Learn more about fields in this step
Auth Type Details MTLS Mutual TLS (MTLS) authentication ensures secure communication by authenticating both the server and client using mutually approved keys.
The CXone webhook service authenticates itself using the key when prompted by the receiving server.
Signature
Signature authentication validates the payload of the webhook. It requires a secret key known by both the webhook producer and consumer. The consumer (your server) calculates the signature using a secret key and matches it with the one sent by the producer (CXone).
- Enter your CALLBACK URL of the endpoint you implemented on your server.
- From the SELECT DATA TO RECEIVE drop-down, choose which data you want to receive.
Learn more about fields in this step
Data Type Details Script API Monitoring This is any request or response for API calls made in Studio scripts. Voice Quality Metrics This is WebRTC data tracked in your agent client. This type of data is also available in the Voice Quality Metrics interface. - Click ADD.
- You can optionally add multiple data types to the same subscription. If you add more data types, each must have their own unique callback URL. Repeat the previous steps to add other data types.
- Configure your authentication details. The fields that display depend on the authentication method you selected earlier in this task.
If you selected MTLS
FIeld Details UPLOAD CERTIFICATE DATA This is a TLS certificate that contains a public key, issuer information, and an expiration date. ENTER KEY
The private key from your server. CXone presents this key and certificate to your server with each communication. If you selected SIGNATURE AUTH
Field Details CONSUMER ID A unique identifier used to reference the client or consumer making the request. This ID is an essential part of the authentication process, helping to establish the identity of the requester and linking that identity to a specific cryptographic key.
PRIVATE KEY
The private key used to create a digital signature. The process of creating a digital signature typically involves generating a hash of the message or data. That hash is then encrypted with the sender's private key. The resulting digital signature is unique to both the message and the private key used to generate it. KEY VERSION A specific version or iteration of a cryptographic key used for signing digital data. Key versioning is particularly important in environments where cryptographic keys need to be rotated or updated regularly for security purposes. SIGNATURE URL The URL used to generate a digital signature. This is typically a full URL, including the protocol, hostname, path, and any query string parameters of a request. This URL is used as part of the data input when generating a digital signature.
To ensure the integrity and authenticity of a request, the URL and any headers or a body are used to create a string. The string is then signed using a cryptographic algorithm. This signature is then appended to the request, either in the query string or as a header.
REFRESH RATE How frequently the key is refreshed, like every 5 minutes. - You can optionally add email addresses for personnel you want CXone to contact about this integration. CXone emails the addresses here if the webhook fails to deliver its payload.
- Click Submit.