# Opzioni di deployment del desktop agente

<figure><img src="https://2272214008-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 offre diverse opzioni di distribuzione della postazione agente per soddisfare i requisiti aziendali del tuo Zoom Contact Center. Funzioni comuni del contact center, come lo screen pop e la registrazione delle chiamate, sono disponibili per tutte le opzioni di distribuzione.

Che tu abbia bisogno di una semplice integrazione con il tuo CRM, di un'applicazione web personalizzata incorporata nella postazione agente o di integrazioni avanzate basate su eventi tramite Flow Events o API Webhook, Zoom CX ha la flessibilità per supportare le tue esigenze.

Comprendendo i tuoi requisiti specifici e sfruttando gli strumenti e le integrazioni appropriati, puoi creare un'esperienza di contact center fluida ed efficiente per i tuoi agenti e clienti.

## Esempi di integrazione

Una domanda molto comune che i nostri clienti pongono è, "*Zoom Contact Center può integrarsi con il mio \[inserisci qui il sistema]?*" La risposta di solito non è semplicemente sì o no.

Ecco alcuni esempi di integrazioni dei clienti:

* Ho bisogno che il mio agente umano operi all'interno di un'altra applicazione
* Ho bisogno che i miei agenti umani abbiano screen pop e funzionalità click-to-call con il mio CRM
* Ho bisogno che il mio IVR vocale effettui una consultazione del database nel mio sistema e fornisca informazioni self-service
* Devo gestire pagamenti con carta di credito e integrarmi con il mio sistema bancario
* Ho bisogno che il mio chatbot AI comprenda dettagli specifici sulla mia attività
* Quando un agente parla con un cliente, voglio che il sistema del contact center visualizzi automaticamente informazioni contestuali per aiutare l'agente

Ognuno di questi esempi richiede un approccio diverso all'integrazione. È fondamentale comprendere i requisiti aziendali per poter rispondere alle domande e progettare il Contact Center giusto per la tua azienda. Quale/i funzionalità è/sono necessaria/e per la tua integrazione?

Zoom CX offre quattro opzioni di distribuzione della postazione agente: Zoom Workplace App, Progressive Web App (PWA), connettori CRM CTI e integrazione Smart Embed di ZCC.

## Funzionalità supportate

La tabella seguente elenca il supporto dei canali per ciascuna opzione di distribuzione.

| Opzioni di distribuzione               | OS supportati | Canali ZCC supportati                                                                                         | AI Companion                | AI Expert Assist                                                      |
| -------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------- |
| App desktop Zoom Workplace             | Windows, Mac  | <ul><li>Voce</li><li>Video</li><li>SMS</li><li>Chat web</li><li>Messaggistica social</li><li>E-mail</li></ul> | Incluso in tutte le licenze | Incluso con la licenza Elite e l'add-on AI Expert Assist              |
| Integrazioni CRM CTI                   | Web           | <ul><li>Voce</li><li>Video</li><li>SMS</li><li>Chat web</li><li>Messaggistica social</li></ul>                | In programma                | In programma. Richiederà la licenza Elite o l'add-on AI Expert Assist |
| Zoom Contact Center Smart Embed (CCSE) | Web           | <ul><li>Voce</li><li>Video</li><li>Chat web</li></ul>                                                         | Non disponibile             | Non disponibile                                                       |

## Zoom Workplace App

La nostra postazione agente predefinita è l'interfaccia standard integrata nell'app Zoom Workplace, la stessa applicazione con cui sei abituato a partecipare alle riunioni Zoom o effettuare chiamate Zoom Phone. Gli agenti con la licenza Zoom Contact Center avranno accesso alla scheda Contact Center (mostrata di seguito), dove gestiranno i loro incarichi del Zoom Contact Center.

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

Per ulteriori informazioni sulla configurazione delle informazioni del Contact Center, consulta [Supporto Zoom](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>

### **Screen Pop del browser**

Puoi usare la [URL di avvio](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0058616\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311) funzionalità nell'app per costruire un URL web dinamico basato su dati variabili, che quindi viene aperto nel browser di sistema sul computer dell'agente. Lo screen pop dell'URL può includere variabili standard, come il numero di telefono del chiamante, ma può anche includere dati personalizzati raccolti dal Flow/IVR, come numeri di caso o ticket.

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

### **App Zoom**

Puoi sfruttare lo Zoom App Framework per integrare applicazioni web nella postazione agente di Zoom Contact Center. Le Zoom App sono visualizzate agli agenti sul lato destro di un incarico in base alla configurazione amministrativa per ciascoda. Questo consente a ogni coda di controllare quali Zoom App vengono visualizzate all'agente.

Lo Zoom App Framework supporta sia app pubbliche, come l'app PCI Pal mostrata di seguito, sia app private. Le app private sono generalmente destinate a casi d'uso interni e sono disponibili solo per l'account Zoom per il quale l'app è stata creata. Se hai le risorse per costruire la tua app web (HTML, CSS o JavaScript), puoi integrarla senza soluzione di continuità nell'app Zoom Workplace.

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

Lo Zoom Apps JavaScript SDK supporta sia eventi che API, consentendo alla tua app di ricevere aggiornamenti sull'incarico e di interrogare i dati.

{% hint style="info" %}
Per ulteriori informazioni, consulta [Zoom Apps sul sito per sviluppatori Zoom](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)

Il client web è disponibile per i clienti che preferiscono che i loro agenti effettuino l'accesso a Zoom Contact Center tramite un browser web, come Chrome. Le funzionalità sono simili a quelle disponibili sull'app Zoom Workplace.

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

Per ulteriori informazioni sulla Progressive Web App, consulta il [Blog di Zoom](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>

## Connettori CRM CTI

Se preferisci far lavorare i tuoi agenti integrati all'interno del tuo CRM, puoi sfruttare i connettori ZCC CRM CTI, che supportano i seguenti CRM:

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

Se stai utilizzando una di queste integrazioni, gli agenti gestiranno gli incarichi all'interno del CRM utilizzando l'integrazione incorporata di Zoom Contact Center. Le funzioni di screen pop e registrazione delle chiamate sono incluse out of the box.

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

Per ulteriori informazioni sui connettori CRM CTI, consulta [Supporto Zoom](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>

Il comportamento predefinito per le integrazioni è effettuare lo screen pop in base al Caller ID (canali voce/SMS) o all'email (canali chat web/video), ma puoi configurarlo per aprire lo screen pop in base ai dati aggiuntivi raccolti nel Flow, come un numero di caso o di ticket. Vediamo quella configurazione.

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

Le opzioni visualizzate nella schermata di configurazione del canale variano a seconda del CRM e del canale ZCC utilizzato.
{% endhint %}

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

## Integrazione Zoom Contact Center Smart Embed (CCSE)

Zoom CCSE è una soluzione flessibile che consente agli sviluppatori di incorporare rapidamente l'agente nella propria applicazione web utilizzando configurazioni HTML iFrame. Il tuo team di sviluppatori web aggiungerà codice JavaScript aggiuntivo alla tua app web per ricevere gli eventi di squillo/connessione della chiamata, che possono essere utilizzati per attivare screen pop e/o la registrazione delle chiamate all'interno della tua applicazione web.

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

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

Per maggiori informazioni su Smart Embed, consulta la [documentazione per sviluppatori](https://developers.zoom.us/docs/contact-center/smart-embed/?optimizely_user_id=efe7866fa2ae9ac46f7e6b8bb8e98da9\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311).
{% endhint %}

## Soluzioni partner

Se stai cercando una soluzione agente non coperta sopra, sono disponibili integrazioni aggiuntive fornite dai partner ISV (Innovative Solutions Vendor) di Zoom. Il programma partner ISV include soluzioni sviluppate per banche, cooperative di credito, assicurazioni, sanità e altro.

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

Per ulteriori informazioni, consulta [Partner ISV di Zoom per il Contact Center](https://partner.zoom.us/solutions/?filter-types=ISV\&filter-products=Contact+Center).
{% endhint %}

Integrazioni della postazione agente più sofisticate possono sfruttare gli eventi Flow di Zoom CX o gli eventi API del Marketplace delle App Zoom (webhook/WebSocket). Con queste opzioni, la piattaforma Zoom CX invierà richieste HTTPS a endpoint API esterni basate su eventi del Zoom Contact Center.

A seconda dei requisiti della tua integrazione, potresti scegliere di utilizzare eventi Flow, eventi API o entrambi.

Puoi progettare un'integrazione per aprire uno screen pop o registrare le chiamate al ricevimento di questi eventi. Sia gli eventi Flow che gli eventi del Marketplace delle App Zoom sono disponibili per tutte le opzioni di distribuzione agente sopra elencate.

| Tipo di evento                                                                | Incarichi supportati    | Tipo di payload     |
| ----------------------------------------------------------------------------- | ----------------------- | ------------------- |
| [Script evento ZCX Flow](#flow-event-script)                                  | Solo in ingresso        | JSON personalizzato |
| [Eventi API del Marketplace delle App Zoom](#zoom-app-marketplace-api-events) | In ingresso e in uscita | JSON fisso          |

Gli script degli eventi Flow vengono attivati quando si verificano azioni specifiche all'interno di Zoom Contact Center. Quando viene attivato quell'evento, il codice dello script evento associato viene eseguito nel contesto dell'incarico, il che significa che lo script ha accesso alle variabili dell'incarico.

## Flow Event Scripts

Diamo un'occhiata a due script eventi Flow comuni.

| Nome evento                                                  | Trigger dell'evento                                          |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Incarico accettato](#engagement-accepted-event-script-code) | Quando un agente accetta la chiamata.                        |
| [Disposizione salvata](#disposition-saved-event-script-code) | L'agente ha salvato una disposizione e ha chiuso l'incarico. |

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

Un elenco completo degli script evento è disponibile nel [a meno che un gruppo sottostante non abbia un'impostazione bloccata](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0059146\&ampDeviceId=178f00fc-724f-4a48-8bc8-2e79500f8f07\&ampSessionId=1745602375311).
{% endhint %}

Vediamo un esempio di come è possibile utilizzare gli eventi sopra per inviare richieste HTTP a un sistema esterno. Quando il sistema esterno riceve questi eventi, i dati possono essere utilizzati per fornire registrazioni, screen pop o altri casi d'uso. Le capacità esatte fornite saranno determinate dalle funzionalità del sistema esterno.

### **Configurazione di esempio**

Nel Flow iniziamo configurando gli script evento sul widget Start. Nell'immagine sottostante puoi vedere che il widget Start ha configurati i due script evento.

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

Per creare il codice dello script evento, aggiungi un nuovo script evento al widget Start e poi scrivi il codice direttamente nell'editor del flow, come mostrato di seguito.

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

Sia l'evento Engagement Accepted sia l'evento Disposition Saved utilizzano codice simile. Sono entrambi blocchi di codice JavaScript che utilizzano la funzione HTTP incorporata per generare una richiesta HTTPS POST in uscita.

### Codice script evento Engagement Accepted

In questo esempio di codice, includiamo l'ID dell'incarico, il numero di telefono del chiamante, l'email dell'agente e il nome della coda. Il codice viene eseguito quando l'agente risponde all'incarico e inizia a parlare con il consumatore.

Questo è un esempio di quella che probabilmente è la quantità minima di informazioni necessarie per generare uno screen pop o per avviare la registrazione della nuova chiamata. Vale la pena menzionare che se la configurazione del tuo ZCC Flow sta raccogliendo dati sul chiamante nel Flow/IVR, è sufficiente aggiungere ulteriori variabili al `request_body` variabile per includere dati aggiuntivi in questa richiesta HTTP.

{% code overflow="wrap" %}

```javascript
async function main() {
    async function main () {
        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));
    log.debug("External API response: " + JSON.stringify(response.data));
        log.debug("Received HTTP error " + error);
    }
}
```

{% endcode %}

### Codice script evento Disposition Saved

Per l'evento Disposition Saved, riutilizzeremo il codice dell'esempio precedente, con l'aggiunta della `disposition` variabile. Questo codice viene eseguito quando l'agente seleziona la disposizione per la chiamata, cosa che avviene come ultima azione eseguita dall'agente nell'incarico. Inviando questa richiesta, il sistema esterno può tracciare che l'agente ha completato la disposizione dell'incarico.

Come per l'evento Engagement Accepted, possono essere incluse variabili aggiuntive, a seconda del caso d'uso.

{% code overflow="wrap" %}

```javascript
async function main() {
    async function main () {
        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));
    log.debug("External API response: " + JSON.stringify(response.data));
        log.debug("Received HTTP error " + error);
    }
}
```

{% endcode %}

A seconda della tua soluzione, potresti scoprire che gli script evento Flow sono sufficienti, oppure potresti aver bisogno di alcuni degli eventi API del Marketplace delle App Zoom per coprire tutti i casi d'uso richiesti dalla tua integrazione.

Ad esempio, puoi integrare i due eventi flow sopra sottoscrivendoti agli eventi API del Marketplace delle App Zoom per hold, resume, mute e unmute. Questi eventi aggiuntivi fornirebbero alla tua applicazione informazioni sulla frequenza con cui gli agenti mettono le chiamate in attesa o disattivano l'audio.

Sia i due script evento flow sopra citati, sia gli eventi webhook/WebSocket del Marketplace delle App Zoom sono disponibili per la tua soluzione.

## Eventi API del Marketplace delle App Zoom

Come per altri prodotti Zoom, Zoom CX dispone di eventi webhook/WebSocket API disponibili nel Marketplace delle App Zoom.

Gli eventi sono disponibili per tracciare l'attività degli agenti come accesso/disconnessione, opt in/out dalla coda e eventi di cambio stato. Gli eventi di incarico possono tracciare il percorso degli incarichi nel sistema, inclusi eventi come incarico avviato, incarico risposto, incarico messo in mute/ripristinato, DTMF inviato, trasferimento avviato, terminato, nota aggiunta, disposizione aggiunta. Tracciando gli eventi di incarico, ottieni una panoramica dettagliata a livello di singolo incarico.

Vedi le [Sito per sviluppatori Zoom](https://developers.zoom.us/docs/api/rest/reference/contact-center/methods/?optimizely_user_id=efe7866fa2ae9ac46f7e6b8bb8e98da9#overview) per ulteriori informazioni sulle API del Contact Center.
