# Implementatieopties voor agentdesktop

<figure><img src="https://3901650588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FctBXUMeBy4rtLMmMkKRG%2Fuploads%2Fgit-blob-293887229ce00b96a3ceaafd7dba2abb0458565f%2Fimage.png?alt=media" alt="A woman smiling, wearing a headset and working at a computer."><figcaption></figcaption></figure>

Zoom CX biedt meerdere implementatie-opties voor de agentdesktop om te voldoen aan uw Zoom Contact Center zakelijke eisen. Veelvoorkomende contactcenterfuncties, zoals screen pop en oproeplogging, zijn beschikbaar voor alle implementatie-opties.

Of u nu een eenvoudige integratie met uw CRM nodig hebt, een aangepaste webapplicatie ingebed in de agentdesktop, of geavanceerde gebeurtenisgestuurde integraties met Flow Events of API-webhooks, Zoom CX heeft de flexibiliteit om in uw behoeften te voorzien.

Door uw specifieke eisen te begrijpen en de juiste tools en integraties te benutten, kunt u een naadloze en efficiënte contactcenterervaring creëren voor uw agenten en klanten.

## Integratievoorbeelden

Een veelgestelde vraag van onze klanten is: "*Kan Zoom Contact Center integreren met mijn \[vul hier systeem in]?*" Het antwoord is meestal niet eenvoudig ja of nee.

Hier zijn enkele voorbeelden van klantintegraties:

* Ik heb mijn menselijke agent nodig om binnen een andere applicatie te werken
* Ik wil dat mijn menselijke agenten screen pops en click-to-call-mogelijkheden hebben met mijn CRM
* Ik wil dat mijn spraak-IVR een database-opvraag doet in mijn systeem en zelfbedieningsinformatie verstrekt
* Ik moet creditcardbetalingen afhandelen en integreren met mijn banksysteem
* Ik wil dat mijn AI-chatbot specifieke details over mijn bedrijf begrijpt
* Wanneer een agent met een klant praat, wil ik dat het contactcentersysteem automatisch contextuele informatie weergeeft om de agent te helpen

Elk van deze voorbeelden vereist een andere benadering van integratie. Het is cruciaal om de zakelijke vereisten te begrijpen om vragen te beantwoorden en het juiste Contact Center voor uw organisatie te ontwerpen. Welke functie(s) is/zijn vereist voor uw integratie?

Zoom CX biedt vier implementatie-opties voor de agentdesktop: Zoom Workplace App, Progressive Web App (PWA), CRM CTI-connectoren en ZCC Smart Embed-integratie.

## Ondersteunde functies

De onderstaande tabel vermeldt de kanaalondersteuning voor elke implementatie-optie.

| Implementatie-opties                   | Ondersteund OS | Ondersteunde ZCC-kanalen                                                                                        | AI Companion                | AI Expert Assist                                                     |
| -------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------- | -------------------------------------------------------------------- |
| Zoom Workplace-desktopapp              | Windows, Mac   | <ul><li>Spraak</li><li>Video</li><li>SMS</li><li>Webchat</li><li>Sociale berichtgeving</li><li>E-mail</li></ul> | Opgenomen in alle licenties | Opgenomen bij Elite- en AI Expert Assist-add-onlicentie              |
| CRM CTI-integraties                    | Web            | <ul><li>Spraak</li><li>Video</li><li>SMS</li><li>Webchat</li><li>Sociale berichtgeving</li></ul>                | Op de roadmap               | Op de roadmap. Vereist een Elite- of AI Expert Assist-add-onlicentie |
| Zoom Contact Center Smart Embed (CCSE) | Web            | <ul><li>Spraak</li><li>Video</li><li>Webchat</li></ul>                                                          | Niet beschikbaar            | Niet beschikbaar                                                     |

## Zoom Workplace App

Onze standaard agentdesktop is de standaardinterface ingebouwd in de Zoom Workplace App, dezelfde applicatie die u kent om deel te nemen aan Zoom Meetings of Zoom Phone-oproepen te plaatsen. Agenten met de Zoom Contact Center-licentie hebben toegang tot het Contact Center-tabblad (hieronder weergegeven), waar ze hun Zoom Contact Center-opdrachten afhandelen.

{% hint style="info" %}
**Opmerking**

Voor meer informatie over het configureren van Contact Center-gegevens, zie [Zoom Support](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0058394).
{% endhint %}

<figure><img src="https://media.zoom.com/images/assets/wpapp.png/Zz0wM2E5YWZhNjU0YzYxMWVmYmYzOGVlMmZlM2E4NDQ4Yg==" alt="Contact Center tab in Zoom Workplace application"><figcaption></figcaption></figure>

### **Browser Screen Pops**

U kunt de [Start-URL](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0058616\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311) functie in de app gebruiken om een dynamische web-URL te construeren op basis van variabele gegevens, die vervolgens in de systeembrowser op de computer van de agent verschijnt. De URL-screenpop kan standaardvariabelen bevatten, zoals het telefoonnummer van de beller, maar kan ook aangepaste gegevens bevatten die door de Flow/IVR zijn verzameld, zoals zaak- of ticketnummers.

<figure><img src="https://media.zoom.com/images/assets/Browser-screen-popup.png/Zz1jMGQ0Y2I0MjU0YzYxMWVmYTdkNzQyMjc2NTZiOWM0Mg==" alt="Custom URL screen pops"><figcaption></figcaption></figure>

### **Zoom-apps**

U kunt het Zoom App Framework gebruiken om webapplicaties te integreren in de Zoom Contact Center-agentdesktop. Zoom Apps worden aan agenten aan de rechterkant van een opdracht weergegeven op basis van de administratieve configuratie voor elke wachtrij. Dit stelt elke wachtrij in staat te bepalen welke Zoom Apps aan de agent worden weergegeven.

Het Zoom App Framework ondersteunt zowel publieke apps, zoals de PCI Pal-app hieronder weergegeven, als privé-apps. Privé-apps zijn over het algemeen gericht op interne use cases en zijn alleen beschikbaar voor het Zoom-account waarvoor de app is gemaakt. Als u de middelen heeft om uw eigen webapp (HTML, CSS of JavaScript) te bouwen, kunt u deze naadloos integreren in de Zoom Workplace App.

<figure><img src="https://media.zoom.com/images/assets/Zoom+Apps.png/Zz1iNGJhMGExZTU0YzgxMWVmYTEzMTM2ZTI5YjBmM2E2Mw==" alt="Zoom App Framework with PCI Pal"><figcaption></figcaption></figure>

De Zoom Apps JavaScript SDK ondersteunt zowel events als API's, waardoor uw app engagementupdates kan ontvangen en kan polsen voor gegevens.

{% hint style="info" %}
Voor meer informatie, zie de [Zoom Apps op de Zoom Developer-site](https://developers.zoom.us/docs/contact-center/apps/?optimizely_user_id=efe7866fa2ae9ac46f7e6b8bb8e98da9\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311).
{% endhint %}

## Progressive Web App (PWA)

De webclient is beschikbaar voor klanten die er de voorkeur aan geven dat hun agenten inloggen op Zoom Contact Center met een webbrowser, zoals Chrome. De functiereeksen zijn vergelijkbaar met die in de Zoom Workplace App.

{% hint style="info" %}
**Opmerking**

Voor meer informatie over de Progressive Web App, zie de [Zoom Blog](https://www.zoom.com/en/blog/how-to-use-zoom-on-a-chromebook/).
{% endhint %}

<div data-full-width="false"><figure><img src="https://media.zoom.com/images/assets/Progressive+Web+App/Zz1iY2E0YmJhZTU0ZDAxMWVmYWZiMzdlNGQxM2VlNzY4ZA==" alt="Browser-based Zoom Contact Center"><figcaption></figcaption></figure></div>

## CRM CTI-connectoren

Als u er de voorkeur aan geeft dat uw agenten binnen uw CRM werken, kunt u de ZCC CRM CTI-connectoren gebruiken, die de volgende CRM's ondersteunen:

* Salesforce
* Zendesk
* ServiceNow
* Hubspot
* Microsoft Dynamics 365

Als u een van deze integraties gebruikt, verwerken agenten opdrachten binnen het CRM met behulp van de ingebedde Zoom Contact Center-integratie. De screenpop- en oproeplogfuncties zijn standaard inbegrepen.

{% hint style="info" %}
**Opmerking**

Voor meer informatie over CRM CTI-connectoren, zie [Zoom Support](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0078354).
{% endhint %}

<figure><img src="https://media.zoom.com/images/assets/CRM-Int.png/Zz04YzczZTEzNDU0ZDExMWVmYjk1MmEyZTlmMWU2MmE2YQ==" alt="Zoom Contact Center within SalesForce"><figcaption></figcaption></figure>

Het standaardgedrag voor de integraties is om te screenpopen op basis van de Caller ID (spraak/SMS-kanalen) of e-mail (webchat/videokanalen), maar u kunt configureren om te screenpopen op basis van aanvullende gegevens die in de Flow worden verzameld, zoals een zaak- of ticketnummer. Laten we die configuratie bekijken.

{% hint style="info" %}
**Opmerking**

De opties die op het scherm Kanaalconfiguratie worden weergegeven, variëren afhankelijk van het CRM en het gebruikte ZCC-kanaal.
{% endhint %}

<figure><img src="https://media.zoom.com/images/assets/voice-channel.png/Zz1kMDVlNjhkODU0ZDExMWVmODg5N2IyNTcwYTNhNmUzYw==" alt="Voice Channel Configuration screen"><figcaption></figcaption></figure>

## Zoom Contact Center Smart Embed (CCSE) Integratie

Zoom CCSE is een flexibele oplossing waarmee ontwikkelaars snel de Agent kunnen insluiten in hun eigen webapplicatie met behulp van HTML iFrame-configuraties. Uw webontwikkelingsteam voegt extra JavaScript-code toe aan uw webapp om oproep- ringing/verbonden gebeurtenissen te ontvangen, die kunnen worden gebruikt om screen pops en/of oproeplogging binnen uw webapplicatie te activeren.

<figure><img src="https://media.zoom.com/images/assets/ZCC+Smart+Embed+Integration.png/Zz0xNjkwNjhhNDU0ZDQxMWVmOTRmZjJlODViYTAxOGVmNA==" alt="Phone screen"><figcaption></figcaption></figure>

{% hint style="info" %}
**Opmerking**

Voor meer over Smart Embed, bekijk de [ontwikkelaarsdocumentatie](https://developers.zoom.us/docs/contact-center/smart-embed/?optimizely_user_id=efe7866fa2ae9ac46f7e6b8bb8e98da9\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311).
{% endhint %}

## Partneroplossingen

Als u op zoek bent naar een agentsoplossing die hierboven niet is behandeld, zijn er extra integraties beschikbaar en worden deze geleverd door Zoom Innovative Solutions Vendor (ISV)-partners. Het ISV-partnerprogramma omvat oplossingen voor banken, kredietunies, verzekeringen, gezondheidszorg en meer.

{% hint style="info" %}
**Opmerking**

Voor meer informatie, zie [Zoom ISV-partners voor Contact Center](https://partner.zoom.us/solutions/?filter-types=ISV\&filter-products=Contact+Center).
{% endhint %}

Meer geavanceerde agentdesktopintegraties kunnen gebruikmaken van Zoom CX Flow-events of Zoom App Marketplace API-events (webhooks/WebSockets). Met deze opties zal het Zoom CX-platform HTTPS-verzoeken naar externe API-eindpunten sturen op basis van Zoom Contact Center-gebeurtenissen.

Afhankelijk van uw integratievereisten kunt u ervoor kiezen Flow-events, API-events of beide te gebruiken.

U kunt een integratie ontwerpen om te screenpopen of oproepen te loggen bij het ontvangen van deze events. Zowel de Flow Events als Zoom App Marketplace-events zijn beschikbaar voor alle hierboven genoemde agentimplementatie-opties.

| Type event                                                          | Ondersteunde opdrachten | Payload-type    |
| ------------------------------------------------------------------- | ----------------------- | --------------- |
| [ZCX Flow Event-scripts](#flow-event-script)                        | Alleen inkomend         | Aangepaste JSON |
| [Zoom App Marketplace API-events](#zoom-app-marketplace-api-events) | Inkomend en uitgaand    | Vaste JSON      |

Flow Event-scripts worden geactiveerd wanneer bepaalde acties plaatsvinden binnen Zoom Contact Center. Wanneer dat event wordt geactiveerd, wordt de bijbehorende event-scriptscode uitgevoerd in de context van de opdracht, wat betekent dat het script toegang heeft tot de variabelen van de opdracht.

## Flow Event Scripts

Laten we eens kijken naar twee veelvoorkomende Flow Event-scripts.

| Eventnaam                                                       | Event-trigger                                                       |
| --------------------------------------------------------------- | ------------------------------------------------------------------- |
| [Opdracht geaccepteerd](#engagement-accepted-event-script-code) | Wanneer een agent de oproep accepteert.                             |
| [Dispositie opgeslagen](#disposition-saved-event-script-code)   | De agent heeft een dispositie opgeslagen en de opdracht afgesloten. |

{% hint style="info" %}
**Opmerking**

Een volledige lijst met event-scripts is beschikbaar in de [. Voor meer informatie over gebruikersgroepen, raadpleeg ons](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0059146\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311).
{% endhint %}

Laten we een voorbeeld bekijken van hoe u de bovenstaande events zou kunnen gebruiken om HTTP-verzoeken naar een extern systeem te verzenden. Wanneer het externe systeem deze events ontvangt, kunnen de gegevens worden gebruikt voor logging, screen pops of andere use cases. De exacte mogelijkheden worden bepaald door de mogelijkheden van het externe systeem.

### **Voorbeeldconfiguratie**

In de Flow beginnen we met het configureren van de event-scripts op de Start-widget. In de afbeelding hieronder ziet u dat de Start-widget de twee event-scripts heeft geconfigureerd.

<figure><img src="https://media.zoom.com/images/assets/agent-manage/Zz1hN2QxZDBjMDU1NzcxMWVmYmIyYmUyNzgyODUwNDI1OQ==" alt="Event Script Flow example"><figcaption></figcaption></figure>

Om de event-scriptscode te maken, voegt u een nieuw event-script toe aan de Start-widget en schrijft u vervolgens de code rechtstreeks in de flow-editor, zoals hieronder weergegeven.

<figure><img src="https://media.zoom.com/images/assets/asset-management.png/Zz1hN2JhYzVlYzU1NzcxMWVmYjE3ZTM2ZTI5YjBmM2E2Mw==" alt="Code sample in Flow editor"><figcaption></figcaption></figure>

Zowel het Engagement Accepted- als het Disposition Saved-event gebruiken vergelijkbare code. Het zijn beide JavaScript-codeblokken die de ingebouwde HTTP-functie gebruiken om een uitgaande HTTPS POST-aanvraag te genereren.

### Eventscriptcode voor Engagement Accepted

In dit codevoorbeeld voegen we de engagement-ID, het telefoonnummer van de beller, het e-mailadres van de agent en de naam van de wachtrij toe. De code wordt uitgevoerd wanneer de agent de opdracht beantwoordt en begint te spreken met de consument.

Dit is een voorbeeld van wat waarschijnlijk de minimale hoeveelheid informatie is die nodig is om een screenpop te genereren of om het loggen van de nieuwe oproep te starten. Het is het vermelden waard dat als uw ZCC Flow-configuratie gegevens over de beller verzamelt in de Flow/IVR, het net zo eenvoudig is als het toevoegen van extra variabelen aan de `request_body` variabele om extra gegevens op te nemen in dit HTTP-verzoek.

{% code overflow="wrap" %}

```javascript
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);
    }
}
```

{% endcode %}

### Eventscriptcode voor Disposition Saved

Voor het Disposition Saved-event hergebruiken we de code uit het vorige voorbeeld, met toevoeging van de `disposition` variabele. Deze code wordt uitgevoerd wanneer de agent de dispositie voor de oproep selecteert, wat gebeurt als de laatste actie die door de agent in de opdracht wordt uitgevoerd. Door dit verzoek te verzenden kan het externe systeem bijhouden dat de agent de dispositie van de opdracht heeft voltooid.

Net als bij het Engagement Accepted-event kunnen extra variabelen worden opgenomen, afhankelijk van uw gebruiksscenario.

{% code overflow="wrap" %}

```javascript
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);
    }
}
```

{% endcode %}

Afhankelijk van uw oplossing kan blijken dat de Flow Event-scripts voldoende zijn, of dat u enkele van de Zoom App Marketplace API-events nodig heeft om alle vereiste use cases van uw integratie te dekken.

U kunt bijvoorbeeld de twee gebeurtenissen in de flow hierboven aanvullen door u te abonneren op Zoom App Marketplace API-events voor hold-, resume-, mute- en unmute-events. Deze aanvullende events zouden uw toepassing inzicht geven in hoe vaak agenten gesprekken in de wacht zetten of dempen.

Zowel de bovenstaande flow event-scripts als de Zoom App Marketplace webhook/WebSocket-events zijn beschikbaar voor uw oplossing.

## Zoom App Marketplace API-events

Net als bij andere Zoom-producten heeft Zoom CX API-webhook/WebSocket-events beschikbaar binnen de Zoom App Marketplace.

Events zijn beschikbaar om agentactiviteit te volgen, zoals in-/uitloggen, zich aanmelden/afmelden voor een wachtrij en statuswijzigingen. Engagement-events kunnen opdrachten in het systeem volgen, inclusief events zoals engagement gestart, engagement beantwoord, engagement gedempt/ongedempt, DTMF verzonden, overdracht gestart, beëindigd, notitie toegevoegd, dispositie toegevoegd. Door engagement-events te volgen, krijgt u inzicht in gedetailleerde gegevens op engagementniveau.

Zie de [Zoom Developer-site](https://developers.zoom.us/docs/api/rest/reference/contact-center/methods/?optimizely_user_id=efe7866fa2ae9ac46f7e6b8bb8e98da9#overview) voor meer informatie over de Contact Center-API's.
