> 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/pt/servicos-corporativos/zoom-contact-center/expert-insights/integrate-engagement-data.md).

# Integrar dados de engajamento

Escrito por Justin Steinberg

### Visão geral

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

Vamos detalhar os diferentes métodos de Integrações para ajudar você 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 gerenciando suas interações**. As duas opções que discutiremos são:

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

***

### Integração do Conector CTI CRM pronto para uso

Este é o método mais simples. Se seus agentes estiverem usando um Conector CTI CRM ZCC, a maioria dos dados de interação poderá 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 uma interação termina, dados como gravações, transcrições, anotações 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 exige ativação no portal de administração do ZCC.

Conclua as seguintes etapas:

{% 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é Gerenciamento da Central de contato > Integrações > Aplicativos.

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

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

Revise e siga os [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 compatíveis</mark>

Essa funcionalidade está Acessar por meio do Conector CTI CRM ZCC quando os agentes usam os seguintes CRMs:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

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

***

### Integração personalizada por meio de APIs

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

Há duas abordagens principais para Acessar dados de interação por meio da API:

* **Consulta periódica:** Consulte periodicamente a API do Zoom para verificar se há novos dados de interação Disponível.
* **Webhooks:** Receba uma notificação em tempo real do Zoom assim que uma transcrição estiver pronta.

Há também uma terceira abordagem, **Integração de eventos de fluxo**, que funciona para determinados tipos de dados.

#### <mark style="color:azul;">Consulta periódica das APIs do Zoom Central de contato</mark>

Para baixar dados de interação, você deve consultar os pontos de extremidade apropriados da API do ZCC. É importante observar que diferentes tipos de dados vêm de APIs diferentes, portanto, provavelmente será necessário criar uma lógica de consulta periódica para cada ponto de extremidade relevante.

Muitas APIs relacionadas a interações nos Relatórios V2 (Análises de CX) agora oferecem suporte à filtragem por horário de término com `end_time_from` e `end_time_to`. Prefira esses parâmetros quando estiverem Disponível para que seus trabalhos de consulta periódica recuperem interações com base no momento em que elas realmente terminaram. Isso ajuda a reduzir registros perdidos, pois os dados completos da interação (incluindo dados do relatório V2) são finalizados ao término da interação.

| Para obter estes dados...                                           | Consulte periodicamente esta API...                                                                                                                                                                                                                                                                                                                                           | Usando este campo... | Observações:                                                                 |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------- |
| <p>Ficheiro multimédia de 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 de interação</p>                                                                                                                                                                                                 | `download_url`       | Requer gravação de chamada ativada para a fila.                              |
| <p>Transcrição 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 de interação</p>                                                                                                                                                                                                 | `transcrição_url`    | Requer gravação de chamada com transcrição ativada.                          |
| <p>transcrição</p><p>(Canal de mensagem)</p>                        | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obter um engajamento</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Listar dados históricos do registo de engajamento</a></p>   | `transcrição_url`    | A transcrição está ativada por padrão para canal de mensagem.                |
| <p>Disposições</p><p>(Todos os canal)</p>                           | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obter um engajamento</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Listar dados históricos do registo de engajamento</a></p>   | `disposição`         | Um array de objetos de disposição.                                           |
| <p>Notas</p><p>(Todos os canal)</p>                                 | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obter um engajamento</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Listar dados históricos do registo de engajamento</a></p>   | `notas`              | Um array 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">Liste 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">Liste 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">Liste 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">Liste 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**

Os URLs de download (`download_url`, `transcrição_url`, `playback_url`, e assim por diante) fornecidos por estas APIs do Zoom são **não** links públicos. Eles são projetados para acesso programático e exigem autenticação de 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 que um usuário clique. Um usuário que clicar no link em seu navegador não será autenticado, e o download falhará.
* O método correto é que seu serviço de backend use a URL para buscar o arquivo. Seu serviço pode então armazenar o arquivo em 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 ficam 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` parâmetro como `recording_end_time` ao consultar a API de List recordings. Isso busca dados com base em quando o processamento terminou, não em quando a ligar terminou.

Para tarefas de reconciliação centradas no envolvimento do Reports V2 (CX análises), use janelas de tempo sobrepostas com `end_time_from` e `end_time_to` para fornecer uma margem de segurança para processamento atrasado e problemas transitórios de entrega.
{% 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 os webhooks do ZCC. Este é o método mais eficiente para Integrações em tempo quase 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 URL do seu 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 ligar depois na API.

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

* **Dados de fim de engajamento prontos:** contato\_center.cx\_engagement\_end\_data\_ready (sinaliza que os dados do denunciar V2 de encerramento do engajamento estão prontos para serem recuperados)
* **Gravação de voz/vídeo:** contato\_center.recording\_completed (fornece uma `download_url`)
* **Transcrição de voz/vídeo:** contato\_center.recording\_transcrição\_completed (fornece uma `transcrição_url`)
* **Transcrição de mensagem:** contato\_center.engagement\_mensagem\_transcrição\_completed (fornece uma `transcrição_url`)
* **Observações:** contato\_center.engagement\_note\_added (fornece uma) `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)

**Padrão Recomendado: Acionar a Recuperação Quando os Dados de Engajamento Estiverem Prontos**

Quando você receber `contato_center.cx_engagement_end_data_ready`, trate isso como seu sinal de que os dados do denunciar V2 de fim de engajamento estão completos para esse engajamento. Nesse ponto, ligar para a API de dados do registro Histórico de Engajamento e quaisquer outras APIs relevantes para coletar o conjunto final de dados. Neste Evento, use `id_do_engajamento` como sua chave de pesquisa e depois recupere os artefatos completos de engajamento dos pontos de extremidade necessários.

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

* **Esteja ciente de Vários Eventos:** O `nota_adicionada` e `disposição_adicionada` os Eventos podem ser disparados várias vezes para um único engajamento (por exemplo, se um agente salvar várias notas ou um ligar for transferido). Sua lógica do aplicativo deve ser capaz de lidar com isso.
* **Inclua redundância:** A entrega do Evento nem sempre é garantida em 100% (por exemplo, seu ponto de extremidade ou conexão websocket pode estar temporariamente indisponível).
* **Estratégia de backup:** Recomendamos executar um script de reconciliação usando APIs de sondagem com `end_time_from` e `end_time_to` janelas para capturar eventos perdidos e fechar lacunas de dados.
  {% endhint %}

Para mais informações sobre os eventos de webhook/websocket da central de contato Zoom, 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 a partir do editor de Fluxo ZCC usando um Script de Evento em JavaScript.

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

* **Disposição:** Pode ser acessado em todos os tipos de canal de engajamento Recebidas usando o `global_system.Engagement.disposição` variável.
* **Transcrição:** Apenas acessível para engajamentos de mensagem Recebidas (por exemplo, Web Chat) usando o `global_system.Engagement.transcrição` variável.
* **Múltiplos Fluxos:** Ao trabalhar com múltiplos Fluxos na sua configuração, particularmente quando um Fluxo usa o `RouteTo` widget para conectar a outro Fluxo, é essencial garantir que Scripts de Evento idênticos e gatilhos estejam devidamente configurados em todos os Fluxos.

Este método é mais poderoso em um Fluxo de mensagem, onde você pode combinar tanto a transcrição quanto a disposição em um único Evento.

**Etapas de configuração**

Siga estas etapas para Configurar o seu fluxo:

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

No seu Fluxo ZCC (por exemplo, um fluxo de chat web), clique no widget Iniciar.

Localize os Scripts de Evento e Adicionar um Script de Evento para eventos, como Engajamento Fechado e/ou disposição Salva.

<div align="left"><figure><img src="https://1821044411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FctBXUMeBy4rtLMmMkKRG%2Fuploads%2Fgit-blob-608a0caccf5697f0cda911a59ba832b2f5cf3fd6%2Fimage.png?alt=media" alt="Flow screen showing a welcome message and events."><figcaption></figcaption></figure></div>
{% endstep %}

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

O exemplo abaixo recupera tanto a disposição quanto a transcrição e depois os envia juntos para uma API externa.

```javascript
async function main () { 
  try {
    // Obtenha o objeto de disposição 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 um payload com todos os dados que pretende 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-pelos-seus-pontos de extremidade da API>';
    
    // Envie os dados combinados para o seu sistema externo
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Registar a resposta do sistema externo para resoluçã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 com o fluxo de trabalho do seu agente e os recursos técnicos.

| Se os seus agentes usarem...                            | Então, a sua melhor opção é...                                      | Considerações principais:                                                                                                                                                                                                                                                            |
| ------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| O ZCC CTI Conector num CRM suportado                    | A funcionalidade de Integrações incorporada                         | <ul><li>O caminho mais fácil</li><li>Nenhum código necessário</li><li>A Sincronizar dos dados de engajamento é integrado</li></ul>                                                                                                                                                   |
| O aplicativo Zoom Workplace ou Smart Embed              | API Webhooks mais reconciliação de polling filtrada por tempo final | <ul><li>Use <code>contato\_center.cx\_engagement\_end\_data\_ready</code> como seu gatilho de recuperação</li><li>Depois, reconcilie com <code>end\_time\_from</code>/<code>end\_time\_to</code> janelas</li><li>Melhora a eficiência enquanto reduz engajamentos perdidos</li></ul> |
| Um fluxo de mensagem Recebidas (e precisa enviar dados) | Scripts de Evento de Fluxo                                          | <ul><li>De 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 criar uma solução de Integrações robusta e confiável que oferece uma visão completa das interações com seus clientes. Combinar a recuperação disparada por Evento com a reconciliação filtrada por tempo final ajuda você a reduzir chamadas de API desnecessárias, ao mesmo tempo em que melhora a completude.


---

# 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/pt/servicos-corporativos/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.
