Agent API
API Methods
CyaraLiveVq.Utils CyaraLiveVq.Hey CyaraLiveVq.Flags CyaraLiveVq.Aws CyaraLiveVq.Settings CyaraLiveVq.Config() CyaraLiveVq.GetRelease() CyaraLiveVq.GetVersion() CyaraLiveVq.GetSession() CyaraLiveVq.GetPerson() CyaraLiveVq.GetKey(KeyName) CyaraLiveVq.SetKey(KeyName, KeyValue) CyaraLiveVq.IsConnected() CyaraLiveVq.GetDispositionList() CyaraLiveVq.EnableDebugging() CyaraLiveVq.DisableDebugging() CyaraLiveVq.Initialize(Gateway, AppId, Key) * CyaraLiveVq.StartSession(Data) * CyaraLiveVq.EndSession() * CyaraLiveVq.HealthCheck() CyaraLiveVq.SendEvent(Data) CyaraLiveVq.SendEventRinging(Data) * CyaraLiveVq.SendEventAgentLoggedIn(Data) CyaraLiveVq.SendEventAgentLoggedOut(Data) CyaraLiveVq.SendEventAnswered(Data) * CyaraLiveVq.SendEventReleased(Data) * CyaraLiveVq.SendEventAgentStateChanged(Data) CyaraLiveVq.SendAlert(Data) CyaraLiveVq.SendInfo(Data) CyaraLiveVq.Trace(Data) CyaraLiveVq.SendFeedback(Data) CyaraLiveVq.Unsubscribe()
* denotes mandatory implementation for minimum functionality.
API Events
CyaraLiveVq.OnConnected.subscribe((session) => { /* ... */ }); CyaraLiveVq.OnDisconnected.subscribe(() => { /* ... */ }); CyaraLiveVq.OnConnectFailed.subscribe(() => { /* ... */ }); CyaraLiveVq.OnReconnectionAttempt.subscribe((event) => { /* ... */ }); CyaraLiveVq.OnAuthenticationFailure.subscribe((failure) => { /* ... */ }); CyaraLiveVq.OnHealthReport.subscribe((report) => { /* ... */ }); CyaraLiveVq.OnBrowserUnsupported.subscribe(() => { /* ... */ }); CyaraLiveVq.OnMosResult.subscribe((report) => { /* ... */ }); CyaraLiveVq.OnAgentQualityIssue.subscribe(() => { /* ... */ }); CyaraLiveVq.OnCustomerQualityIssue.subscribe(() => { /* ... */ }); CyaraLiveVq.OnInteractionAnswered.subscribe(() => { /* ... */ }); CyaraLiveVq.OnInteractionEnded.subscribe(() => { /* ... */ }); CyaraLiveVq.OnMultipleInstances.subscribe(() => { /* ... */ });
CyaraLiveVq.Utils
A number of helper utilities used internally.
CyaraLiveVq.Hey
Internal use
CyaraLiveVq.Flags
Internal use
CyaraLiveVq.Aws
Static class to assign properties and helper methods relevant to Amazon Connect integrations.
CyaraLiveVq.Aws.Region CyaraLiveVq.Aws.Instance CyaraLiveVq.Aws.Domain CyaraLiveVq.Aws.Infra CyaraLiveVq.Aws.Ec2Endpoints CyaraLiveVq.Aws.IceServers CyaraLiveVq.Aws.EventBus CyaraLiveVq.Aws.Contact CyaraLiveVq.Aws.Agent CyaraLiveVq.Aws.IncludedAttributes CyaraLiveVq.Aws.MakeAttributesJson(attributes) CyaraLiveVq.Aws.FilterAttributes(attributes)
CyaraLiveVq.Settings
Static class to set pre-initialisation settings.
CyaraLiveVq.Settings.UseGeoLocationApi
since 1.20214.5
Disables the navigator request to use the GeoLocationApi.
CyaraLiveVq.Settings.UseGeoLocationApi = false; // default is true
CyaraLiveVq.Config()
Returns the processed configuration for the instance.
CyaraLiveVq.GetRelease()
Returns the official release number
e.g. 1.1.0
CyaraLiveVq.GetVersion()
Returns the official build stamp version
e.g. 2021.3.7769.5413
CyaraLiveVq.GetSession()
Returns the current session
{ "SessionId": "a847c938-9525-4ba5-9ef7-e916478cdd8c", "Active": true, "Sticky": false, "CpuModel": "Unknown", "Cpu": 8, "CpuCores": 8, "Memory": 8, "Platform": "(Windows NT 10.0; x64)", "OperatingSystem": "Windows 10", "Browser": "Chrome (89.0.4389.114) ", "IpAddress": "122.199.46.45", "Isp": { "Asn": 38195, "Name": "Superloop", "Location": { "Longitude": 153.9306640625, "Latitude": -27.795288086, "Source": null } }, "GeoLocation": { "Longitude": 153.8486, "Latitude": -27.80795288086, "Source": "site", "City": "Greenslopes", "County": "", "PostalCode": "4120", "State": "QLD", "Country": "Australia" }, "AudioDevice": null, "Started": "2021-04-14T01:56:34.679Z", "StartedEpoch": 1618365394.679, "Timezone": "Australia/Brisbane", "NetworkType": "4g", "NetworkDiagnostics": { "Upload": 29.37, "Download": 336.08, "Jitter": 0, "Raw": { }, "NetworkUpload": 29.37, "NetworkDownload": 336.08, "NetworkJitter": 0 }
CyaraLiveVq.GetPerson()
Returns the current LiveVQ Person
{ "Username": "tobydux", "PersonId": "52a5c115-a630-473b-bcf4-168646f4bf88", "Team": { "TeamId": "9b263dbc-d29e-48c0-8b39-0907346ec560", "Name": "Cyara Research", "Details": null }, "Site": { "SiteId": "38171b05-84fc-4249-9240-29f09a032875", "Name": "Brisbane Branch", "Details": { "City": "Greenslopes", "State": "QLD", "Country": "Australia", "Address1": "Chermside Street", "Address2": "", "Latitude": -27.05, "Postcode": "4006", "Longitude": 153.86 } }, "Details": { "me": { "pinned_location": { "long": 11, "label": "Newstead", "latitude": 10 } }, "last_name": "Dux", "first_name": "Toby" } }
CyaraLiveVq.GetKey(KeyName)
For internal use
Returns the value for the provided key
CyaraLiveVq.SetKey(KeyName, KeyValue)
Sets the value for the provided key-value-pair
CyaraLiveVq.IsConnected()
Returns true or false depending on if the host is connected to the LiveVQ Platform
CyaraLiveVq.GetDispositionList()
If configured, will return an array of positive and negative disposition strings to be used to send more detailed feedback.
{ "positive": [ "example one", "example two" ], "negative": [ "example one", "example two" ] }
CyaraLiveVq.EnableDebugging()
Increases logging. For use with Cyara Support, not for constant production use as it will impact performance.
CyaraLiveVq.DisableDebugging()
Decreases logging. For use with Cyara Support
CyaraLiveVq.Initialize(Gateway, AppId, Key)
Initiates connection and authentication with the Cyara LiveVQ Platform.
CyaraLiveVq.StartSession(Data)
Starts the current session for the provided person.
Identifier [mandatory] |
String | The unique linking identifer to match the agent to a LiveVQ person. Usually this is the username of the agent. |
Name [mandatory *] |
String | The display name of the agent. This is only mandatory when using Just In Time Provisioning |
Team | String | May be used in the future to assist with Just In Time Provisioning |
Tags | Json | Used to identify attributes of a session to help segment reporting or assist with deeper analysis. Json attributes must be in the format String:String |
BusinessData | Json | Json attributes must be in the format String:String |
CustomData | Json | Json attributes must be in the format String:String |
Example
Code
CyaraLiveVq.StartSession({ Identifier: 'tobydux', Tags: { BusinessUnit: 'Sales', Trainee: '' } });
CyaraLiveVq.EndSession()
Finalises the current active session.
CyaraLiveVq.HealthCheck()
Performs a health check.
CyaraLiveVq.SendEvent(Data)
Sends simple event notifications to the platform.
EventName [mandatory] |
String | Must be one of the following values: onhold, offhold, muted, unmuted. |
BusinessData | Json | |
CustomData | Json | |
Source | String |
Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
CyaraLiveVq.SendEvent({ EventName: 'onhold' });
Payload
{ "type": "cyara-agent-event", "what": "onhold", "details": {}, "publickey": "942cce9d-63a9-4908-aae5-54dd744c657c", "by": "api" "source": "custom" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventRinging(Data)
Notifies the platform that there is an interaction being offered.
SyncId [mandatory] |
String | Store the tracking id for the interaction that can be used in the native platform to create a link between LiveVQ and the native platform. |
IsWebRtc [mandatory] |
Boolean | Used to identify WebRTC calls from other transports |
Channel | String | future use, defaults to voice |
MediaType | String | future use |
Queue | String | |
Customer | String | |
Tags | Json | Used to identify attributes of a session to help segment reporting or assist with deeper analysis. Json attributes must be in the format String:String |
BusinessData | Json | |
CustomData | Json | |
Source | String |
Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
let contactId = contact.getContactId(); CyaraLiveVq.SendEventRinging({ SyncId: contactId });
Payload
{ "type": "cyara-agent-event", "what": "ringing", "details": { "syncid": "6d542175-47dd-428e-bf5e-64895231a018", "IsWebRtc": true }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
Custom
Code
// our business logic... let crm = {}; crm.profile = { name: 'Toby Dux', team: 'Gruffalo', pwd: 'secret', account: '529485' } // obfuscate the data here so Cyara does not see it... delete crm.profile.pwd; // ensure sensitive keys are not provided from the IVR delete attributes?.crmlink; delete attributes?.saveSuggestion; CyaraLiveVq.SendEventRinging({ SyncId: contact.getContactId(), IsWebRtc: contact.isSoftphoneCall(), Queue: crm.profile.team, BusinessData: attributes, CustomData: crm });
Payload
{ "type": "cyara-agent-event", "what": "ringing", "details": { "syncid": "c905f44e-89cb-422d-bd2e-c6f7f5f217b9", "iswebrtc": true, "queue": "Gruffalo", "businessdata": { "CustomerNumber": "3330", "CustomerTier": "Gold", "Selection": "Load" }, "customdata": { "profile": { "name": "Toby Dux", "team": "Gruffalo", "account": "529485" } } }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventAgentLoggedIn(Data)
Notifies the platform that the agent has logged in.
Identifier [mandatory] |
String | The unique linking identifer to match the agent to a LiveVQ person. Usually this is the username of the agent. |
Name [mandatory *] |
String | The display name of the agent. This is only mandatory when using Just In Time Provisioning |
Team | String | May be used in the future to assist with Just In Time Provisioning |
Tags | Json | Used to identify attributes of a session to help segment reporting or assist with deeper analysis. Json attributes must be in the format String:String |
BusinessData | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
let agentConfig = window.CCP.agent.getConfiguration(); CyaraLiveVq.SendEventAgentLoggedIn({ Identifier: agentConfig.username, });
Payload
{ "type": "cyara-agent-event", "what": "loggedin", "details": { "username": "tobydux" }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
Custom
Code
CyaraLiveVq.SendEventAgentLoggedIn({ Identifier: agentConfig.username, Name: agentConfig.name, Team: agentConfig.routingProfile?.name, BusinessData: {}, CustomData: { AwsRoutingProfile: agentConfig.routingProfile?.name }, Source: '' });
Payload
{ "type": "cyara-agent-event", "what": "loggedin", "details": { "username": "tobydux", "name": "Toby", "team": "Dev", "businessdata": {}, "customdata": { "AwsRoutingProfile": "Dev" } }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventAgentLoggedOut(Data)
Notifies the platform that the agent has logged out.
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
CyaraLiveVq.SendEventAgentLoggedOut();
Payload
{ "type": "cyara-agent-event", "what": "loggedout", "details": {}, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
Custom
Code
CyaraLiveVq.SendEventAgentLoggedOut({ CustomData: { Reason: 'Closed the browser' }, Source: 'beforeunload' });
Payload
{ "type": "cyara-agent-event", "what": "loggedout", "details": { "customdata": { "Reason": "Closed the browser" } }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom-beforeunload" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventAnswered(Data)
Notifies the platform that the agent has answered an interaction.
SyncId [mandatory] |
String | The tracking id for the interaction that can be used in the native platform to create a link between LiveVQ and the native platform. |
Queue | String | |
Customer | String | |
BusinessData | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
let contactId = contact.getContactId(); CyaraLiveVq.SendEventAnswered({ SyncId: contactId });
Payload
{ "type": "cyara-agent-event", "what": "answered", "details": { "syncid": "6d542175-47dd-428e-bf5e-64895231a018" }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventReleased(Data)
Notifies the platform that the agent has released the current interaction.
SyncId [mandatory] |
String | The tracking id for the interaction that can be used in the native platform to create a link between LiveVQ and the native platform. |
BusinessData | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
let contactId = contact.getContactId(); CyaraLiveVq.SendEventReleased({ SyncId: contactId });
Payload
{ "type": "cyara-agent-event", "what": "released", "details": { "syncid": "6d542175-47dd-428e-bf5e-64895231a018" }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendEventAgentStateChanged(Data)
Notifies the platform that the agent has changed their current state.
AgentStateFrom | String | |
AgentStateTo | String | |
QueueStateFrom | String | |
QueueStateTo | String | |
IsReady | Boolean | |
BusinessData | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Minimal
Code
CyaraLiveVq.SendEventAgentStateChanged({ AgentStateFrom: agentStateChange.oldState, AgentStateTo: agentStateChange.newState, Source: 'agent.onStateChange' });
Payload
{ "type": "cyara-agent-event", "what": "state-changed", "details": { "agentstatefrom": "Init", "agentstateto": "Available" }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom-agent.onStateChange" }
BlackBox
Payload
to be captured
CyaraLiveVq.SendAlert(Data)
Sends a custom alert for deeper analysis
Category | String | |
Message | String | |
Alert | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Custom
Code
CyaraLiveVq.SendAlert({ Category: 'error', Message: 'agent is in an error state (softphone)', Alert: { SoftphoneErrorType: error.getErrorType(), SoftphoneErrorMessage: error.getErrorMessage() }, Source: 'agent.onSoftphoneError' });
Payload
{ }
BlackBox
Payload
{ }
CyaraLiveVq.SendInfo(Data)
Sends custom information for deeper analysis.
Category | String | |
Message | String | |
Info | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Custom
Code
CyaraLiveVq.SendInfo({ Message: 'agent has muted their microphone', Source: 'agent.onMuteToggle' });
Payload
{ "type": "custom", "what": "info", "details": { "message": "agent has muted their microphone" }, "publickey": "942cce9d-63a9-4908-aae5-ce617b1ea785", "by": "api", "source": "custom-agent.onMuteToggle" }
BlackBox
Payload
{ }
CyaraLiveVq.Trace(Data)
Sends a custom trace for deeper analysis.
Category | String | |
Message | String | |
Trace | Json | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
CyaraLiveVq.SendFeedback(Data)
Used to capture custom direct agent feedback automatically tied to related session and interaction.
Category | String | agent-direct-xp is a reserved value to identify direct agent quality experience |
Message | String | |
Sentiment | String | positive or negative when used in conjuction with Category agent-direct-xp |
Disposition | String | |
CustomData | Json | |
Source | String | Can be used to identify the method in the code used to send this message from for debugging code purposes |
Custom
Code
CyaraLiveVq.SendFeedback({ Category: 'agent-direct-xp', Sentiment: 'negative' Disposition: 'echo when talking', Source: 'uiThumbsDown' });
CyaraLiveVq.SendFeedback({ Category: 'agent-direct-xp', Sentiment: 'positive' Source: 'uiThumbsUp' });
CyaraLiveVq.SendFeedback({ Category: 'routing', Message: 'why do I keep getting these call types ???' });
CyaraLiveVq.Unsubscribe()
Used to unsubscribe all event listeners from the SDK Events.
CyaraLiveVq.OnConnected
a connection has been established with the LiveVQ platform
Code
CyaraLiveVq.OnConnected.subscribe((session) => { /* ... */ });
Returns
Cyara LiveVQ Session
{ "SessionId": "62645ea7-e4e0-4cf3-8cf3-a1620e76a29e", "Active": true, "Sticky": false, "Cpu": 8, "Memory": 8, "Platform": "(Windows NT 10.0; x64)", "OperatingSystem": "Windows 10", "Browser": "Chrome (88.0.4324.104) ", "IpAddress": "122.199.46.46", "Isp": { "Asn": 38195, "Name": "Superloop", "Location": { "Longitude": 153.027893, "Latitude": -27.46758079 } }, "GeoLocation": { "Longitude": 153.04386, "Latitude": -27.4512, "City": "Newstead", "County": "Brisbane", "State": "Queensland", "Country": "Australia" }, "Started": "2021-02-02T07:03:10.273Z", "StartedEpoch": 1612249390.273, "Timezone": "Australia/Brisbane", "AudioDevice": null, "NetworkType": "4g", }
CyaraLiveVq.OnConnectFailed
Since: 1.20221.10
Triggered when authentication succeeds, however there is a problem connecting the secure websocket to the Cyara LiveVQ platform.
Code
CyaraLiveVq.OnConnectFailed.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnDisconnected
Since: 1.20221.10
Triggered when connection to Cyara LiveVQ platform has been disconnected.
Code
CyaraLiveVq.OnDisconnected.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnReconnectionAttempt
Since: 1.20221.10
Triggered when attempting to reconnect to Cyara LiveVQ platform
Code
CyaraLiveVq.OnReconnecting.subscribe((event) => { /* ... */ });
Returns
The reconnect status, including remaining attempts and error message
{ "attemptsRemaining": "6", "error": "Failed to fetch", }
CyaraLiveVq.OnHealthReport
a health report request has completed
Code
CyaraLiveVq.OnHealthReport.subscribe((report) => { /* ... */ });
Returns
Cyara Health Report
{ "data": { "connectivity": { "ec2": { "endpoint": "https://rtc.connect-telecom.us-east-1.amazonaws.com/", "latency": [ 826, 575, 324, 244, 243, 239, 238, 230 ], "min": 230, "max": 826, "avg": 365 }, "cloudfront": { "endpoint": "https://cyara.awsapps.com", "latency": [ 205, 24, 65, 24, 82, 35, 31, 38 ], "min": 24, "max": 205, "avg": 63 } }, "browser": { "type": "chrome", "info": { "fullVersion": "88.0.4324.104", "version": 88, "name": "Chrome", "isPrivateBrowsing": false, "isChrome": true }, "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36" }, "permissions": { "isWebRTCSupported": true, "isORTCSupported": false, "isScreenCapturingSupported": true, "isAudioContextSupported": true, "isCreateMediaStreamSourceSupported": true, "isRtpDataChannelsSupported": true, "isSctpDataChannelsSupported": true, "isMobileDevice": false, "isGetUserMediaSupported": true, "isCanvasSupportsStreamCapturing": true, "isVideoSupportsStreamCapturing": true, "isWebSocketsSupported": true, "isWebSocketsBlocked": false, "hasMicrophone": true, "hasSpeakers": true, "hasWebcam": true, "isWebsiteHasWebcamPermissions": false, "isWebsiteHasMicrophonePermissions": true, "isSetSinkIdSupported": true, "isRTPSenderReplaceTracksSupported": true, "isRemoteStreamProcessingSupported": false, "isApplyConstraintsSupported": true, "isMultiMonitorScreenCapturingSupported": false, "isPromisesSupported": true }, "firewalls": { "us-east-1": "PASSED" }, "speed": { "Download": 73.36, "Upload": 11.16 }, "microphone": [ { "label": "Default - Microphone Array (Realtek High Definition Audio(SST))", "id": "default" }, { "label": "Communications - Microphone Array (Realtek High Definition Audio(SST))", "id": "communications" }, { "label": "Microphone Array (Realtek High Definition Audio(SST))", "id": "" }, { "label": "Microphone (AGD Cable 1)", "id": "" }, { "label": "Microphone (AGD Cable 2)", "id": "" } ], "speakers": [ { "label": "Default - Speakers (Realtek High Definition Audio(SST))", "id": "default" }, { "label": "Communications - Speakers (Dell USB Audio) (17e9:6006)", "id": "communications" }, { "label": "Speakers (Dell USB Audio) (17e9:6006)", "id": "" }, { "label": "Speakers (AGD Cable 1)", "id": "" }, { "label": "Speakers (Realtek High Definition Audio(SST))", "id": "" }, { "label": "Speakers (AGD Cable 2)", "id": "" } ] }, "report": { "connectivity": "ok", "browser": "ok", "permissions": "ok", "firewalls": "ok", "speed": "ok", "microphone": "ok", "speakers": "ok" } }
CyaraLiveVq.OnMosResult
periodic report on current estimated voice quality for the current interaction
Code
CyaraLiveVq.OnMosResult.subscribe((report) => { /* ... */ });
Returns
Cyara MOS Result
{ "version": "emodel", "points": 11, "agent": 4.343, "agentrecent": 4.349, "agentavg": 4.354, "agentmin": 4.343, "agentmax": 4.358, "customer": 4.335, "customerrecent": 4.345, "customeravg": 4.349, "customermin": 4.335, "customermax": 4.356 }
version | The algorithm being used to estimate the call quality |
points | the number of samples used for trending averages |
agent | the current result for inbound audio (approximately 5 seconds) |
agentrecent | an average of the last 3 samples for inbound audio |
agentavg | an average of all samples for inbound audio |
agentmin | the worst single sample for inbound audio |
agentmax | the best single sample for inbound audio |
customer | the current result for outbound audio (approximately 5 seconds) |
customerrecent | an average of the last 3 samples for outbound audio |
customeravg | an average of all samples for outbound audio |
customermin | the worst single sample for outbound audio |
customermax | the best single sample for outbound audio |
CyaraLiveVq.OnAgentQualityIssue
Triggered when the most recent agent (inbound) MOS Result is below the configured warning threshold value.
For more control we suggest using OnMosResult
Code
CyaraLiveVq.OnAgentQualityIssues.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnCustomerQualityIssue
Triggered when the most recent customer (outbound) MOS Result is below the configured warning threshold value.
For more control we suggest using OnMosResult
Code
CyaraLiveVq.OnCustomerQualityIssue.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnBrowserUnsupported
During the health report, the browser was found to be unsupported
For more control we suggest using OnHealthReport
Code
CyaraLiveVq.OnBrowserUnsupported.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnInteractionAnswered
Since: 1.20214.1
Triggered when the interaction is answered
Code
CyaraLiveVq.OnInteractionAnswered.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnInteractionEnded
Since: 1.20214.1
Triggered when the interaction is ended
Code
CyaraLiveVq.OnInteractionEnded.subscribe(() => { /* ... */ });
No Return
CyaraLiveVq.OnAuthenticationFailure
Since: 1.20214.1
Triggered when authentication to the Cyara LiveVQ platform fails.
Code
CyaraLiveVq.OnAuthenticationFailure.subscribe((failure) => { /* ... */ });
Returns
Failure Details, reason can be error or status code
{ "host": "phone.assurebank.org", "username": "agent", "reason": 401, "message": "failed authentication due to 401" }
No Return
CyaraLiveVq.OnReconnectionAttempt
Since: 1.20221.10
Triggered when attempting to reconnect to Cyara LiveVQ platform
Code
CyaraLiveVq.OnReconnecting.subscribe((event) => { /* ... */ });
Returns
The reconnect status, including remaining attempts and error message
{ "attemptsRemaining": "6", "error": "Failed to fetch", }
CyaraLiveVq.OnMultipleInstances
Since: 1.20215.40
Triggered when the SDK detects multiple instances in different tabs across the same browser type. It is recommended to not have two CCP instances running on the same machine.
Code
CyaraLiveVq.OnMultipleInstances.subscribe(() => { /* ... */ });
No Return
Comments
0 comments
Please sign in to leave a comment.