> For the complete documentation index, see [llms.txt](https://library.zoom.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://library.zoom.com/technical-library/it/servizi-business/zoom-contact-center/expert-insights/integrate-engagement-data.md).

# Integra i dati di coinvolgimento

### Panoramica

Zoom centro di contatto genera dati preziosi di coinvolgimento durante ogni interazione con il cliente, incluse le registrazioni delle chiamate, le trascrizioni, le note dell'agente e le disposizioni. Continua a leggere per scoprire come archiviare i dati di coinvolgimento in sistemi esterni (ad esempio, CRM e altri sistemi di registrazione) per creare una vista unificata del cliente, Abilita un coaching efficace degli agenti o soddisfare i requisiti di conformità quando si utilizza Zoom centro di contatto.

Ti spiegheremo i diversi metodi di Integrazioni; Scegli il miglior approccio in base a come i tuoi agenti possono lavorare con maggiore efficienza.

Il metodo migliore dipende principalmente da un fattore chiave: **l'applicazione in cui gli agenti gestiscono le loro interazioni**. Le due opzioni che discuteremo sono:

1. Agenti che utilizzano il Connettore ZCC CRM CTI pronto all'uso all'interno del CRM.
2. Agenti che lavorano nell'app Zoom Workplace, che richiede una soluzione personalizzata con le API e i webhook di ZCC.

***

### Integrazioni del Connettore CRM CTI pronto all'uso

Questo è il metodo più semplice. Se i tuoi agenti utilizzano un Connettore ZCC CRM CTI, la maggior parte dei dati di coinvolgimento può essere sincronizzata automaticamente tra la piattaforma Zoom e il CRM appropriato.

#### <mark style="color:blu;">Come funziona</mark>

Il Connettore CTI incorpora l'interfaccia dell'agente ZCC direttamente nel CRM. Quando un'interazione termina, i dati come registrazioni, trascrizioni, note e esiti vengono salvati automaticamente all'interno di Zoom e collegati al registrare pertinente (ad esempio, un ticket o un contatto) nel tuo CRM.

#### <mark style="color:blu;">Requisiti di configurazione</mark>

La funzionalità per consentire la sincronizzazione dei dati tra Zoom e il CRM è disponibile "out of the box", ma richiede l'attivazione all'interno del portale amministratori ZCC.

Completa i seguenti passaggi:

{% stepper %}
{% step %}
**Abilita nel portale amministratori ZCC**

Accedi al portale amministratori Zoom come amministratore e vai a Gestione del centro di contatto > Integrazioni > Applicazioni.

Trova la relativa integrazione CRM nella sezione Integrazioni e abilita le Impostazioni appropriate per consentire l'archiviazione dei dati nel tuo CRM.
{% endstep %}

{% step %}
**Autorizzazioni CRM**

Rivedi e segui il [Guide di configurazione delle Integrazioni CRM](https://support.zoom.com/) per verificare che il tuo utente di Integrazioni CRM disponga dei necessari permessi di scrittura per tutti gli oggetti pertinenti.
{% endstep %}
{% endstepper %}

#### <mark style="color:blu;">Piattaforme CRM supportate</mark>

Questa funzionalità è accessibile tramite il Connettore ZCC CRM CTI quando gli agenti utilizzano i seguenti CRM:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Con il Connettore CRM CTI, non è richiesta alcuna configurazione speciale e i dati di engagement verranno salvati nel CRM dalle Integrazioni, per impostazione predefinito.

***

### Integrazione personalizzata tramite API

Se i vostri agenti utilizzano l'app nativa Zoom Workplace o ZCC Smart Embed, avrete bisogno di una soluzione personalizzata per trasferire i dati di engagement. Il modo principale per farlo è con le API di Zoom centro di contatto.

Esistono due approcci principali per accedere ai dati di engagement tramite l'API:

* **Interrogazione periodica:** Interrogare periodicamente l'API Zoom per vedere se nuovi dati di engagement sono disponibili.
* **Webhook:** Ricevere una notifica in tempo reale da Zoom non appena una trascrizione è pronta.

Esiste anche un terzo approccio, **Integrazioni Flow Events**, che funziona per alcuni tipi di dati.

#### <mark style="color:blu;">Interrogazione delle API di Zoom centro di contatto</mark>

Per scaricare i dati di engagement, devi interrogare gli endpoint API ZCC appropriati. È importante notare che diversi tipi di dati provengono da API diverse, quindi probabilmente dovrai creare una logica di polling per ciascun endpoint pertinente.

Molte API correlate all'engagement all'interno di Reports V2 (CX analisi) ora supportano il filtraggio in base all'orario di fine con `end_time_from` e `end_time_to`. Preferisci questi parametri quando sono disponibili, così i tuoi job di polling recupereranno le interazioni in base a quando sono effettivamente terminate. Questo aiuta a ridurre i record mancanti perché i dati completi di engagement (inclusi i dati di report V2) vengono finalizzati alla fine dell'interazione.

| Per ottenere questi dati...                                             | Interroga questa API...                                                                                                                                                                                                                                                                                                                                                         | Usando questo campo... | Note:                                                                                   |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------- |
| <p>File multimediale di registrazione</p><p>(Canale vocale e video)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/get/contact_center/recordings">Elenca le registrazioni</a> o</p><p>Elenca le registrazioni di interazioni</p>                                                                                                                                                                                    | `download_url`         | Richiede che la registrazione chiamata sia abilitata per la coda.                       |
| <p>Trascrizione della registrazione</p><p>(Canale vocale e video)</p>   | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Elenca le registrazioni</a> o</p><p>Elenca le registrazioni di interazioni</p>                                                                                                                                                                                    | `trascrizione_url`     | Richiede che la registrazione chiamata con trascrizione sia abilitata.                  |
| <p>Trascrizione</p><p>(Canale di messaggistica)</p>                     | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ottieni un'interazione</a> o</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Elenca i dati storici del registro delle interazioni</a></p> | `trascrizione_url`     | La trascrizione è abilitata per impostazione predefinita per i canali di messaggistica. |
| <p>Disposizioni</p><p>(Tutti i canali)</p>                              | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ottieni un'interazione</a> o</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Elenca i dati storici del registro delle interazioni</a></p> | `disposizioni`         | Un array di oggetti disposizione.                                                       |
| <p>Note</p><p>(Tutti i canali)</p>                                      | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ottieni un'interazione</a> o</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Elenca i dati storici del registro delle interazioni</a></p> | `note`                 | Un array di oggetti nota.                                                               |
| <p>File multimediale della segreteria telefonica</p><p><br><br></p>     | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Elenca i messaggi della posta in arrivo di un account</a> <strong>o</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Elenca i messaggi di una posta in arrivo</a></p>    | `download_url`         | Per le segreterie telefoniche lasciate in una posta in arrivo del centro di contatto.   |
| Trascrizione della segreteria telefonica                                | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Elenca i messaggi della posta in arrivo di un account</a> <strong>o</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Elenca i messaggi di una posta in arrivo</a></p>    | `trascrizione_url`     | Richiede che la trascrizione sia abilitata per la posta in arrivo.                      |

{% hint style="danger" %}
**Avviso**

Gli URL di download (`download_url`, `trascrizione_url`, `playback_url`, e così via) forniti da queste API Zoom non sono **non** link pubblici. Sono progettati per l'accesso programmatico e richiedono l'autenticazione API (ad esempio, un token di accesso nell'intestazione Authorization) per scaricare il file associato.

Ciò significa:

* Non puoi salvare direttamente questi URL in un CRM affinché un utente possa fare clic. Un utente che fa clic sul link nel proprio browser non sarà autenticato e il download non riuscirà.
* Il metodo corretto consiste nel far usare al tuo servizio backend l'URL per recuperare il file. Il tuo servizio può quindi archiviare il file nel tuo sistema (come Amazon S3, Azure Blob Storage o l'archiviazione file del tuo CRM) e fornire da lì un link sicuro ai tuoi utenti.
  {% endhint %}

{% hint style="warning" %}
**Attenzione**

**Ritardi di elaborazione - Registrazioni vocali e video:**

Questi dati non sono Disponibile nell'istante in cui una chiamare termina. L'audio deve prima essere elaborato e caricato, operazione che può richiedere diversi minuti per le chiamate lunghe. Per assicurarti di non perdere registrazioni, imposta il `query_date_type` parametro su `recording_end_time` durante l'interrogazione dell'API Elenca le registrazioni. In questo modo i dati vengono recuperati in base al termine dell'elaborazione, non a quando la chiamare è terminata.

Per i processi di riconciliazione incentrati sulle interazioni di Reports V2 (CX Analisi), utilizza finestre temporali sovrapposte con `end_time_from` e `end_time_to` per fornire un margine di sicurezza per l'elaborazione ritardata e i problemi transitori di consegna.
{% endhint %}

Per ulteriori informazioni sulle API Zoom centro di contatto, vedi [API centro di contatto](https://developers.zoom.us/docs/api/contact-center/) documentazione.

#### <mark style="color:blu;">Utilizza i webhook per gli Eventi in tempo reale</mark>

Per un approccio più immediato e basato su Evento, puoi iscriverti ai webhook ZCC. Questo è il metodo più efficiente per un'Integrazioni quasi in tempo reale.

**Come funziona**

1. Iscriviti agli eventi appropriati nel Zoom App Marketplace.
2. Quando si verifica un Evento, Zoom invia una Notifica al tuo URL webhook (o alla tua connessione Websocket).
3. Il payload dell'Evento contiene i dati di cui hai bisogno, direttamente oppure come URL/ID per chiamare successivamente l'API.

**Eventi webhook comuni per i dati di engagement**

* **Dati di fine engagement pronti:** contatto\_center.cx\_engagement\_end\_data\_ready (indica che i dati del report V2 di fine engagement sono pronti per essere recuperati)
* **Registrazione audio/video:** contatto\_center.recording\_completed (fornisce un `download_url`)
* **Trascrizione audio/video:** contatto\_center.recording\_trascrizione\_completed (fornisce un `trascrizione_url`)
* **Trascrizione messaggistica:** contatto\_center.engagement\_messaggistica\_trascrizione\_completed (fornisce un `trascrizione_url`)
* **Note:** contatto\_center.engagement\_note\_added (fornisce un `nota` campo con i dati della nota)
* **Disposizione:** contatto\_center.engagement\_disposizione\_added (fornisce un `disposizione_name` campo con i dati della disposizione)

**Schema consigliato: attiva il recupero quando i dati dell'interazione sono pronti**

Quando ricevi `contatto_center.cx_engagement_end_data_ready`, trattalo come il segnale che i dati del report V2 di fine engagement sono completi per quell'engagement. A quel punto, chiamare l'API dei dati del log dell'engagement storico e qualsiasi altra API pertinente per raccogliere il set di dati finale. In questo caso, usa `engagement_id` come chiave di ricerca e poi recupera gli artefatti completi dell'engagement dagli endpoint richiesti.

{% hint style="warning" %}
**Attenzione**

* **Tieni presente più eventi:** Il `nota_aggiunta` e `disposizione_aggiunta` gli eventi possono attivarsi più volte per un singolo engagement (ad esempio, se un agente salva diverse note o una chiamata viene trasferita). La logica della tua applicazione deve essere in grado di gestirlo.
* **Integra ridondanza:** La consegna degli Eventi non è sempre garantita al 100% (ad esempio, il tuo endpoint o la connessione websocket potrebbero essere temporaneamente non disponibili).
* **Strategia di backup:** Consigliamo di eseguire uno script di riconciliazione utilizzando API di polling con `end_time_from` e `end_time_to` finestre per intercettare gli Eventi persi e colmare le lacune nei dati.
  {% endhint %}

Per ulteriori informazioni sugli Eventi webhook/websocket di Zoom centro di contatto, vedere [Webhook del centro di contatto](https://developers.zoom.us/docs/api/contact-center/events/) documentazione.

#### <mark style="color:blu;">Integrazioni degli Eventi di Flusso</mark>

Per alcuni tipi di dati, puoi inviare i dati direttamente a un sistema esterno dall'editor del flusso ZCC utilizzando uno script Evento JavaScript.

**Dati supportati e limitazioni:**

* **Disposizione:** Può essere accessibile su tutti i tipi di canale di engagement In entrata utilizzando il `global_system.Engagement.disposizione` variabile.
* **trascrizione:** Accessibile solo per interazioni di messaggistica In Entrata (ad esempio, Web chat) usando il `global_system.Engagement.trascrizione` variabile.
* **Più Flussi:** Quando lavori con più Flussi nella tua configurazione, in particolare quando un Flusso usa il `RouteTo` widget per connettersi a un altro Flusso, è essenziale assicurarsi che Script di Evento e trigger identici siano configurati correttamente in tutti i Flussi.

Questo metodo è il più potente in un Flusso di messaggistica, dove puoi combinare sia la trascrizione che la disposizione in un singolo Evento.

**Passaggi di configurazione**

Segui questi passaggi per Configura il tuo flusso:

{% stepper %}
{% step %}
**Aggiungi uno Script Evento**

Nel tuo flusso ZCC (ad esempio, un flusso Web chat), fai clic sul widget Start.

Individua gli Script Evento e aggiungi uno Script Evento per gli Eventi, come Engagement Closed e/o Disposizione Saved.

<div align="left"><figure><img src="/files/558844e1d477e95ab045efcb2e1c44f9186eb878" alt="Flow screen showing a welcome message and events."><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Aggiungi il tuo JavaScript personalizzato**

L'esempio seguente recupera sia la disposizione sia la trascrizione, quindi li invia insieme a una API esterna.

```javascript
async function main () { 
  try {
    // Ottieni l'oggetto disposizione dalla sua variabile
    const disposizione_data = var_get()['global_system.Engagement.disposizione'];
    
    // Ottieni l'oggetto completo della trascrizione
    const trascrizione_data = await req.get(var_get()['global_system.Engagement.trascrizione']);

    // Prepara un payload con tutti i dati che desideri inviare
    const payload_to_send = {
      disposizione: disposizione_data.data.result,
      trascrizione: trascrizione_data.data.result.trascrizione
    };

    // Definisci la destinazione per i tuoi dati
    const external_api_url = '<sostituisci-con-il-tuo-endpoint-api>';
    
    // Invia i dati combinati al tuo sistema esterno
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Registra la risposta dal sistema esterno per la risoluzione dei problemi
    log.debug("Risposta della API esterna: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Si è verificato un errore nello script evento della trascrizione: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Riepilogo e raccomandazioni

Scegli il metodo di Integrazioni che meglio si allinea al flusso di lavoro dei tuoi agenti e alle risorse tecniche.

| Se i tuoi agenti usano...                                                | Allora la tua migliore opzione è...                                       | Considerazioni chiave:                                                                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Il Connettore ZCC CTI in un CRM supportato                               | Le Integrazioni integrate                                                 | <ul><li>Percorso più semplice</li><li>Nessun codice richiesto</li><li>La Sincronizza dei dati di engagement è integrata</li></ul>                                                                                                                                                       |
| L'app Zoom Workplace o Smart Embed                                       | Webhook API più riconciliazione del polling filtrato per il tempo di fine | <ul><li>Usa <code>contatto\_center.cx\_engagement\_end\_data\_ready</code> come trigger di recupero</li><li>Quindi riconcilia con <code>end\_time\_from</code>/<code>end\_time\_to</code> finestre</li><li>Migliora l'efficienza riducendo al contempo gli engagement mancati</li></ul> |
| Un flusso di messaggistica In Entrata (e la necessità di inviare i dati) | Script Evento del flusso                                                  | <ul><li>Di nicchia, ma potente</li><li>Richiede JavaScript</li><li>Funziona meglio per inviare trascrizioni di messaggistica e disposizioni</li></ul>                                                                                                                                   |

Comprendendo questi diversi percorsi, puoi creare un'Integrazioni robusta e affidabile che ti offre una visione completa delle interazioni con i clienti. La combinazione del recupero attivato dagli eventi con la riconciliazione filtrata per il tempo di fine ti aiuta a ridurre le chiamate API non necessarie migliorando al contempo la completezza.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://library.zoom.com/technical-library/it/servizi-business/zoom-contact-center/expert-insights/integrate-engagement-data.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
