# Integrar dados de engajamento

### Visão geral

O Zoom central de contato gera dados valiosos de engajamento durante cada interação com o cliente, incluindo gravações de chamadas, transcrições, notas do agente e desfechos. Continue lendo para saber como armazenar dados de engajamento em sistemas externos (por exemplo, CRM e outros sistemas de registro) para criar uma visão unificada do cliente, Habilitar coaching eficaz de agentes ou atender aos requisitos de conformidade ao usar o Zoom central de contato.

Vamos dividir os diferentes métodos de Integrações para ajudá-lo a Escolher a melhor abordagem com base em como seus agentes podem trabalhar com maior eficiência.

O melhor método depende principalmente de um fator-chave: **o aplicativo em que os agentes estão lidando com suas interações**. As duas opções que discutiremos são:

1. Agentes usando o Conector ZCC CRM CTI pronto para uso dentro do CRM.
2. Agentes trabalhando no aplicativo Zoom Workplace, o que requer uma solução personalizada com APIs e Webhooks do ZCC.

***

### Integração do Conector CTI de CRM Pronto para Uso

Este é o método mais direto. Se seus agentes estiverem usando um Conector ZCC CRM CTI, a maioria dos dados de engajamento pode ser sincronizada automaticamente entre a plataforma Zoom e o CRM apropriado.

#### <mark style="color:azul;">Como Funciona</mark>

O Conector CTI incorpora a interface do agente ZCC diretamente no CRM. Quando um atendimento termina, dados como gravações, transcrições, notas e disposições são salvos automaticamente no Zoom e vinculados ao registro relevante (por exemplo, um ticket ou contato) no seu CRM.

#### <mark style="color:azul;">Requisitos de Configuração</mark>

A funcionalidade que permite a sincronização de dados entre o Zoom e o CRM vem "pronta para uso", mas requer ativação no portal de administração do ZCC.

Conclua as etapas a seguir:

{% stepper %}
{% step %}
**Habilitar no Portal de Administração do ZCC**

Faça login no portal de administração do Zoom como administrador e navegue até Gestão da Central de Contato > Integrações > Aplicativos.

Encontre a Integração de CRM relevante e habilite as Configurações apropriadas para permitir o armazenamento de dados no seu CRM.
{% endstep %}

{% step %}
**Permissões do CRM**

Revise e siga o [Guias de configuração de Integrações de CRM](https://support.zoom.com/) para verificar se o usuário de Integrações do seu CRM tem as permissões de gravação necessárias para todos os objetos relevantes.
{% endstep %}
{% endstepper %}

#### <mark style="color:azul;">Plataformas de CRM suportadas</mark>

Esta funcionalidade está acessível por meio do Conector ZCC CRM CTI quando os agentes usam os seguintes CRMs:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Com os Conectores CRM CTI, nenhuma configuração especial é necessária, e a Integrações salvará os dados de engajamento no CRM por padrão.

***

### Integração personalizada via APIs

Se os seus agentes usarem o aplicativo nativo Zoom Workplace ou o ZCC Smart Embed, você precisará de uma solução personalizada para transferir dados de engajamento. A principal forma de fazer isso é com as APIs do central de contato Zoom.

Há duas abordagens principais para Acessar dados de engajamento via a API:

* **Polling:** Consultar periodicamente a API do Zoom para ver se novos dados de engajamento estão Disponíveis.
* **Webhooks:** Receber uma notificação em tempo real do Zoom assim que uma transcrição estiver pronta.

Também há uma terceira abordagem, **Integrações de eventos de fluxo**, que funciona para determinados tipos de dados.

#### <mark style="color:azul;">Consultando as APIs do Zoom Central de contato</mark>

Para baixar dados de engajamento, você deve consultar os pontos de extremidade apropriados da API do ZCC. É importante observar que diferentes tipos de dados vêm de diferentes APIs, portanto, provavelmente você precisará criar lógica de consulta para cada ponto de extremidade relevante.

| Para obter estes dados...                                        | Consultar esta API...                                                                                                                                                                                                                                                                                                                                                           | Usando este campo... | Observações:                                                                 |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------- |
| <p>Arquivo de mídia da gravação</p><p>(Canal de voz e vídeo)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Listar gravações</a> ou</p><p>Listar gravações da fila</p>                                                                                                                                                                                                        | `download_url`       | Requer que a gravação de chamada esteja ativada para a fila.                 |
| <p>Transcrição da gravação</p><p>(Canal de voz e vídeo)</p>      | [Lista de interações](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                                                       | `transcrição_url`    | Requer gravação de chamada com transcrição ativada.                          |
| <p>Transcrição</p><p>(Canal de mensagem)</p>                     | [Lista de interações](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                                                       | `transcrição_url`    | A transcrição está ativada por padrão para canais de mensagem.               |
| <p>Disposições</p><p>(Todos os canais)</p>                       | [Lista de interações](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                                                       | `disposições`        | Uma matriz de objetos de disposição.                                         |
| <p>Notas</p><p>(Todos os canais)</p>                             | [Lista de interações](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                                                       | `notas`              | Uma matriz de objetos de nota.                                               |
| <p>Arquivo de mídia do correio de voz</p><p><br><br></p>         | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Listar as mensagens da caixa de entrada de uma conta</a> <strong>ou</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Listar as mensagens de uma caixa de entrada</a></p> | `download_url`       | Para correios de voz deixados em uma caixa de entrada da central de contato. |
| Transcrição do correio de voz                                    | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Listar as mensagens da caixa de entrada de uma conta</a> <strong>ou</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Listar as mensagens de uma caixa de entrada</a></p> | `transcrição_url`    | Requer que a transcrição esteja ativada para a caixa de entrada.             |

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

As URLs de download (`download_url`, `transcrição_url`, `playback_url`, e assim por diante) fornecidas por estas APIs do Zoom são **não** links públicos. Elas são projetadas para acesso programático e exigem autenticação da API (por exemplo, token de acesso no cabeçalho Authorization) para baixar o arquivo associado.

Isso significa:

* Você não pode salvar essas URLs diretamente em um CRM para um usuário clicar. Um usuário que clicar no link no seu navegador não estará autenticado, e o download falhará.
* O método correto é o seu serviço de backend usar a URL para buscar o arquivo. Seu serviço pode então armazenar o arquivo no seu próprio sistema (como Amazon S3, Azure Blob Storage ou o armazenamento de arquivos do seu CRM) e fornecer um link seguro aos seus usuários a partir daí.
  {% endhint %}

{% hint style="warning" %}
**Atenção**

**Atrasos no processamento - gravações de voz e vídeo:**

Esses dados não estão Disponível no instante em que uma ligar termina. O áudio deve ser processado e carregado primeiro, o que pode levar vários minutos em ligações longas. Para garantir que você não perca gravações, defina o `query_date_type` parameter to `recording_end_time` ao consultar a API List recordings. Isso busca dados com base em quando o processamento terminou, não em quando a ligar terminou.
{% endhint %}

Para mais informações sobre as APIs do Zoom central de contato, consulte [APIs da central de contato](https://developers.zoom.us/docs/api/contact-center/) documentação.

#### <mark style="color:azul;">Use Webhooks para Eventos em Tempo Real</mark>

Para uma abordagem mais imediata e orientada por Evento, você pode assinar webhooks do ZCC. Este é o método mais eficiente para Integrações em quase tempo real.

**Como Funciona**

1. Assine os eventos apropriados no Zoom App Marketplace.
2. Quando um Evento ocorre, o Zoom envia uma notificação para a sua URL do webhook (ou para a sua conexão WebSocket).
3. A carga útil do Evento contém os dados de que você precisa, seja diretamente ou como uma URL/ID para um ligar de acompanhamento à API.

**Eventos comuns de webhook para dados de engajamento**

* **Gravação de voz/vídeo:** contato\_center.recording\_completed (fornece um `download_url`)
* **Transcrição de voz/vídeo:** contato\_center.gravação\_transcrição\_concluída (fornece um `transcrição_url`)
* **Transcrição da mensagem:** contato\_center.engagement\_mensagem\_transcrição\_completed (fornece um `transcrição_url`)
* **Observações:** contato\_center.engagement\_note\_added (fornece um `nota` campo com os dados da nota)
* **disposição:** contato\_center.engagement\_disposição\_added (fornece um `disposição_name` campo com os dados da disposição)

{% hint style="warning" %}
**Atenção**

* **Tenha em atenção vários eventos:** O `note_added` e `disposição_adicionada` Eventos podem disparar várias vezes para um único engajamento (por exemplo, se um agente salvar várias notas ou uma ligação for transferida). A lógica do seu aplicativo deve ser capaz de lidar com isso.
* **Crie redundância:** A entrega de Eventos nem sempre é garantida em 100% (por exemplo, seus pontos de extremidade ou conexão websocket podem estar temporariamente indisponíveis).
* **Estratégia de backup:** Recomendamos executar um script de reconciliação noturna usando APIs de polling para capturar Eventos perdidos.
  {% endhint %}

Para mais informações sobre eventos de Zoom Central de Contato Webhook/Websocket, consulte [Webhooks da Central de Contato](https://developers.zoom.us/docs/api/contact-center/events/) documentação.

#### <mark style="color:azul;">Integrações de Eventos de Fluxo</mark>

Para certos tipos de dados, você pode enviar dados diretamente para um sistema externo do editor de Fluxo do ZCC usando um Script de Evento JavaScript.

**Dados e limitações suportados:**

* **disposição:** Pode ser acessado em todos os tipos de canal de engajamento Recebidas usando a `global_system.Engagement.disposição` variável.
* **Transcrição:** Acessível apenas para engajamentos de mensagem Recebidas (por exemplo, Chat na Web) usando a `global_system.Engagement.transcrição` variável.
* **Vários Fluxos:** Ao trabalhar com vários Fluxos na sua configuração, especialmente quando um Fluxo usa a `RouteTo` widget para ligar a outro Flow, é essencial garantir que os Scripts de Evento idênticos e os acionadores estão devidamente configurados em todos os Flows.

Este método é mais eficaz num Flow de mensagem, onde pode combinar tanto a transcrição como a disposição num único Evento.

**Passos de Configuração**

Siga estes passos para Configurar o seu fluxo:

{% stepper %}
{% step %}
**Adicionar um Script de Evento**

No seu Flow ZCC (por exemplo, um fluxo de Web chat), clique no widget Start.

Localize os Scripts de Evento e Adicionar um Script de Evento para eventos, como Engagement Closed e/ou Disposição Guardada.

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

{% step %}
**Adicionar o seu JavaScript personalizado**

O exemplo abaixo obtém tanto a disposição como a transcrição e, em seguida, envia-as em conjunto para uma API externa.

```javascript
async function main () { 
  try {
    // Obtenha o objeto de disposição a partir da sua variável
    const disposição_data = RVA_get()['global_system.Engagement.disposição'];
    
    // Obtenha o objeto de transcrição completo
    const transcrição_data = await req.get(var_get()['global_system.Engagement.transcrição']);

    // Prepare uma carga útil com todos os dados que você deseja enviar
    const payload_to_send = {
      disposição: disposição_data.data.result,
      transcrição: transcrição_data.data.result.transcrição
    };

    // Defina o destino dos seus dados
    const external_api_url = '<substitua-pelo-seu-ponto-de-extremidade-da-API>';
    
    // Envie os dados combinados para o seu sistema externo
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Registre a resposta do sistema externo para solução de problemas
    log.debug("Resposta da API Externa: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Ocorreu um erro no script do Evento de transcrição: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Resumo e Recomendações

Escolher o método de Integrações que melhor se alinha ao fluxo de trabalho dos seus agentes e aos recursos técnicos.

| Se os seus agentes usam...                                     | Então sua melhor opção é...                                           | Principais Considerações:                                                                                                                  |
| -------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| O Conector ZCC CTI em um CRM compatível                        | As Integrações incorporadas                                           | <ul><li>Caminho mais fácil</li><li>Nenhum código necessário</li><li>A Sincronizar de dados de engajamento é incorporada</li></ul>          |
| O aplicativo Zoom Workplace ou Smart Embed                     | Webhooks da API com um trabalho de polling noturno para reconciliação | <ul><li>Solução personalizada mais robusta</li><li>Fornece dados quase em tempo real com um processo de backup confiável</li></ul>         |
| Um fluxo de mensagem Recebidas (e necessidade de enviar dados) | Scripts de Evento do fluxo                                            | <ul><li>Nicho, mas poderoso</li><li>Requer JavaScript</li><li>Funciona melhor para enviar transcrições de mensagem e disposições</li></ul> |

Ao compreender esses diferentes caminhos, você pode construir uma Integrações robusta e confiável que lhe dê uma visão completa das interações com seus clientes.


---

# Agent Instructions: 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:

```
GET https://library.zoom.com/technical-library/pt/servicos-corporativos/zoom-contact-center/expert-insights/integrate-engagement-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
