/
Riquadro di visualizzazione custom per scalar

Riquadro di visualizzazione custom per scalar

Tale riquadro offre ad una integrazione una funzionalità visiva di allarmistica mostrando dati completamente gestibili dall’integratore tramite un Widget e la relativa libreria SDK di AgentDesktop.

 

La soluzione ha reso disponibili alcune API all’interno di AgentDesktop Widget SDK al fine di poter aggiungere, togliere risorse e Scalar da monitorare, nonché visualizzare codice HTML generato:

 

AGENTDESKTOP.WIDGET. addMonitorScalar( ScalarID) : aggiunge uno Scalar da monitorare specificando il suo identificativo come numero

AGENTDESKTOP.WIDGET. removeMonitorScalar (ScalarID) : rimuove uno Scalar dal monitoraggio specificando il suo identificativo come numero

AGENTDESKTOP.WIDGET. addMonitorResource (ResourceID) : aggiunge una risorsa nell’elenco di quelle elencate dal monitoraggio

AGENTDESKTOP.WIDGET. removeMonitorResource (ResourceID) : rimuove  una risorsa dall’elenco di quelle elencate dal monitoraggio

AGENTDESKTOP.WIDGET. startMonitorScalar : inizia il monitoraggio delle risorse/scalar.

AGENTDESKTOP.WIDGET. bindMonitorScalarCallback: collega una propria funzione di callback per la elaborazione dei dati ricevuti.

AGENTDESKTOP.WIDGET. unbindMonitorScalarCallback: scollega (non utilizza più) la funzione di callback registrata precedentemente.

AGENTDESKTOP.WIDGET.refreshMonitorScalarView(html) : aggiorna il riquadro nella parte superiore di AgentDesktop con il codice HTML passato come parametro

 

Scenario di utilizzo – AgentDesktop Widget SDK Sample

Si pensi ad uno scenario dove si vuole monitorare su alcuni Gruppi il tempo massimo di una chiamata in attesa.

Se superiore ad una soglia X si vuole far apparire un avviso nella parte alta dell’operatore che invita a prestare attenzione sulla operatività di un determinato Gruppo di lavoro.

 

L’esempio SDK è già stato aggiornato per supportare un tale scenario.

  1. Si attiva in AgentDesktop Manager nell’elenco dei Widget del Profilo il Sample AGENTDESKTOP_WIDGET_SAMPLE

  2. Si accede alla sezione “Get Scalar”.

  3. Nella modalità predefinita AgentDesktop richiederà periodicamente i seguenti Scalar per tutte le Code dove risulta loggato l’operatore: Contatti Accodati, Agenti Loggati, in Pausa e Disponibili.

  4. Vogliamo monitorare lo Scalar 30130 (tempo di attesa della chiamata entrata in coda da piu' tempo) e fornire un allarme visivo nel caso si superi una soglia massima per esempio di 5 sec.

  5. Click su “Add Scalar” per aggiungere lo Scalar 30130 all’elenco delle Code monitorate.

  6. Click su “Bind Monitor Callback” per agganciarsi una propria funzione che elaborerà i dati in tempo reale.

  7. Alla callback personalizzata nel Widget verrà passata una struttura di tipo Hash Table contenente una struttura di chiavi duplice [ResourceID][ScalarID]:

  8. All’interno della funzione di callback si analizzerà la HahTable e si provvederà a costruire un HTML che avvisa l’utente con un messaggio personalizzato.

  9. Quando si vorrà fare scomparire il riquadro di avviso è sufficiente richiamare la API con stringa vuota come di seguito: AGENTDESKTOP.WIDGET.refreshMonitorScalarView("");

Di seguito il codice custom di analisi e valutazione degli Scalar

function MonitorScalar_callback(jQuery_eventType, data) { // 30130 : Si vuole monitorare il tempo di attesa della chiamata entrata in coda da piu' tempo. var keys = Object.keys(data); var sHTML = ""; console.log("[DEBUG SDK]", data); for (var i = 0; i < keys.length; i++) { if (typeof data[ keys[i] ][30130] !== "undefined") { if (data[ keys[i] ][30130].type === "time") { // Tempo di attesa in Coda > 10 sec if ( TimeStringToSecs( data[ keys[i] ][30130].value ) > 5 ) { sHTML = "<p style='color: #d9534f;'><span class='fa fa-exclamation-triangle fa-3x' style='animation: text_blink 3s linear infinite'></span>" + "&nbsp;<strong style='font-size: 12px; position: absolute;'>" + "Chiamata in attesa da pi&ugrave; di 5 sec sul Gruppo <br>" + AGENTDESKTOP.UTILS.GetResourceDevice(keys[i]) + "</strong></p>"; AGENTDESKTOP.WIDGET.refreshMonitorScalarView(sHTML); } else { AGENTDESKTOP.WIDGET.refreshMonitorScalarView(""); } } } } };, function TimeStringToSecs(str) { var p = str.split(":"); var s = 0; var m = 1; while (p.length > 0) { s += m * parseInt(p.pop(), 10); m *= 60; } return s; }