In de Flow beginnen we met het configureren van de eventscripts op de Start-widget. Hieronder kunnen we zien dat de Start-widget de twee eventscripts heeft geconfigureerd.
Om de code van het eventscript te maken, voeg je een nieuw eventscript toe aan de Start-widget en vervolgens kan de code direct in de flow-editor geschreven worden, zoals hieronder getoond.
Zowel de gebeurtenissen Opdracht geaccepteerd als Dispositie opgeslagen gebruiken vergelijkbare code. Het zijn allebei eenvoudige Javascript codeblokken die de ingebouwde HTTP-functie gebruiken om een uitgaand HTTPS POST-verzoek te genereren.
Scriptcode voor Opdracht geaccepteerd
In dit codevoorbeeld nemen we de opdracht-ID, het telefoonnummer van de beller, het e-mailadres van de medewerker en de naam van de wachtrij op. Deze code wordt uitgevoerd wanneer de medewerker de opdracht beantwoordt en met de consument begint te praten. Dit is een voorbeeld van wat waarschijnlijk de minimale hoeveelheid informatie is die nodig is om een pop-upscherm te genereren of om de registratie van de nieuwe oproep te starten. Het is de moeite waard om te vermelden dat als je ZCC Flow-configuratie gegevens over de beller in de Flow/IVR verzamelt, zoals hun accountnummer, case-/ticketnummer, enzovoort, het zo eenvoudig is als extra variabelen toevoegen aan de request_body-variabele om extra gegevens in dit HTTP-verzoek op te nemen.
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); }
Scriptcode voor Beschikking opgeslagen
Voor het event Beschikking opgeslagen hergebruiken we de code die in het vorige voorbeeld is gebruikt, met de toevoeging van de beschikkingsvariabele die in regel 9 is toegevoegd. Dit codeblok wordt uitgevoerd wanneer de medewerker de beschikking voor de oproep selecteert, wat gebeurt als laatste actie die door de medewerker in de opdracht wordt uitgevoerd. Door dit verzoek te verzenden, kan het externe systeem bijhouden dat de medewerker de beschikking van de opdracht heeft voltooid. Net als bij de bovenstaande event Opdracht geaccepteerd, kunnen aanvullende variabelen naar behoefte worden opgenomen, afhankelijk van je gebruikssituatie.
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); }}
Afhankelijk van je oplossing kan het zijn dat de bovenstaande Flow-eventscripts voldoende zijn of dat je enkele van de Zoom App Marketplace API-events nodig hebt om alle vereiste gebruikssituaties van je integratie te dekken. Je kunt bijvoorbeeld de twee flow-events hierboven aanvullen door je in te schrijven voor de Zoom App Marketplace API-events voor hold/resume/mute/unmute-events (in de wacht/hervatten/dempen/dempen opheffen). Deze extra events zouden je applicatie inzicht geven in de frequentie waarmee medewerkers oproepen in de wacht zetten of dempen.
Zowel de bovenstaande flow-eventscripts als de Zoom App Marketplace Webhook/Websocket-events zijn beschikbaar voor je oplossing.