Nel Flusso, iniziamo configurando gli script dell'evento sul widget Avvio. Di seguito possiamo vedere che il widget Avvio ha i due script dell'evento configurati.
Per creare il codice dello script dell'evento, è necessario aggiungere un nuovo script dell'evento al widget Avvio. Il codice quindi può essere scritto direttamente nell'editor del flusso, come mostrato di seguito.
Sia l'evento Impegno accettato che l'evento Disposizione salvata utilizzano un codice simile. Sono entrambi semplici blocchi di codice Javascript che utilizzano la funzione HTTP integrata per generare una richiesta HTTPS POST in uscita.
Codice dello script dell'evento accettato dal coinvolgimento
In questo esempio di codice, includiamo l'ID del coinvolgimento, il numero telefonico del chiamante, l'e-mail dell'agente e il nome della coda. Questo codice verrà eseguito quando l'agente risponderà al coinvolgimento e inizierà a parlare con il cliente. Questo è un esempio di quella che probabilmente è la quantità minima di informazioni necessarie per generare una notifica sullo schermo, o per avviare la registrazione della nuova chiamata. Vale la pena ricordare che se la configurazione del tuo Flusso ZCC raccoglie dati sul chiamante nel Flusso/IVR, come il numero di account, il numero di pratica/ticket, eccetera, è facile aggiungere variabili supplementari alla variabile request_body per includere dati aggiuntivi a questa richiesta HTTP.
async function main () { try { let request_body = { "engagementId": var_get()["global_system.Engagement.engagementId"], "caller_number": var_get()["global_system.Engagement.ANI"], "agent_email": var_get()["global_system.Agent.email"], "queue_name": var_get()["global_system.Engagement.queue"] } const result = await req.post('https://api.example.com/acceptedcall', request_body); let jsonResponseBody = result.data; log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody)); } catch (error) { log.debug("Received HTTP error " + error); }}
Disposizione script evento salvato Ccde
Per l'evento Disposizione salvata riutilizzeremo il codice utilizzato nell'esempio precedente, con l'aggiunta della variabile Disposizione aggiunta nella riga 9. Questo blocco di codice verrà eseguito quando l'agente seleziona la disposizione per la chiamata, che avviene come ultima azione eseguita dall'agente nel coinvolgimento. Questo blocco di codice verrà eseguito quando l'agente seleziona la disposizione per la chiamata, che avviene come ultima azione eseguita dall'agente nell'impegno. Inviando questa richiesta, il sistema esterno può verificare che l'agente abbia completato la disposizione del coinvolgimento. Come per l'evento Coinvolgimento accettato di cui sopra, puoi includere variabili aggiuntive in base alle esigenze del caso d'uso.
async function main () { try { let request_body = { "engagementId": var_get()["global_system.Engagement.engagementId"], "caller_number": var_get()["global_system.Engagement.ANI"], "agent_email": var_get()["global_system.Agent.email"], "queue_name": var_get()["global_system.Engagement.queue"], "disposition_name": var_get()["global_system.Engagement.disposition"] } const result = await req.post('https://api.example.com/dispositionedcall', request_body); let jsonResponseBody = result.data; log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody)); } catch (error) { log.debug("Received HTTP error " + error); }}
A seconda della tua soluzione, potresti scoprire che gli script degli eventi di Flusso di cui sopra sono sufficienti, oppure potresti aver necessità di alcuni API di Zoom App Marketplace per gli eventi per trattare tutti i casi d'uso necessari alla tua integrazione. Ad esempio, puoi integrare i due eventi di flusso di cui sopra iscrivendoti agli eventi API di Zoom App Marketplace per gli eventi di attesa/ripresa/disattivazione/riattivazione dell'audio. Questi eventi aggiuntivi fornirebbero all'applicazione informazioni dettagliate sulla frequenza con cui gli agenti mettono le chiamate in attesa o disattivano l'audio.
Sia gli script degli eventi di Flusso di cui sopra che gli eventi webhook/websocket di Zoom App Marketplace sono disponibili per la tua soluzione.