# Integrera engagemangsdata

### Översikt

Zoom Contact Center genererar värdefull engagemangsdata vid varje kundinteraktion, inklusive samtalsinspelningar, avskrifter, agentanteckningar och dispositioner. Fortsätt läsa för att lära dig hur du lagrar engagemangsdata i externa system (till exempel CRM och andra registersystem) för att skapa en enhetlig kundbild, möjliggöra effektiv coachning av agenter eller uppfylla efterlevnadskrav när du använder Zoom Contact Center.

Vi bryter ner de olika integrationsmetoderna för att hjälpa dig välja bästa tillvägagångssätt baserat på hur dina agenter kan arbeta med ökad effektivitet.

Den bästa metoden beror främst på en nyckelfaktor: **applikationen där agenterna hanterar sina interaktioner**. De två alternativen vi kommer att diskutera är:

1. Agenter som använder den färdigintegrerade ZCC CRM CTI Connector inom CRM:et.
2. Agenter som arbetar i Zoom Workplace-appen, vilket kräver en anpassad lösning med ZCC API:er och Webhooks.

***

### Färdigintegrerad CRM CTI Connector-integration

Detta är den enklaste metoden. Om dina agenter använder en ZCC CRM CTI Connector kan de flesta engagemangsdata synkroniseras automatiskt mellan Zoom-plattformen och lämpligt CRM.

#### <mark style="color:blå;">Hur det fungerar</mark>

CTI-connectorn bäddar in ZCC-agentgränssnittet direkt i CRM:et. När en interaktion avslutas sparas data som inspelningar, avskrifter, anteckningar och dispositioner automatiskt i Zoom och länkas till relevant post (till exempel ett ärende eller en kontakt) i ditt CRM.

#### <mark style="color:blå;">Installationskrav</mark>

Funktionalitet som möjliggör synkronisering av data mellan Zoom och CRM finns "färdigintegrerat", men kräver aktivering i ZCC-adminportalen.

Utför följande steg:

{% stepper %}
{% step %}
**Aktivera i ZCC Admin Portal**

Logga in i Zoom-adminportalen som administratör och navigera till Contact Center Management > Integrations > Applications.

Hitta relevant CRM-integration och aktivera lämpliga inställningar för att tillåta datalagring i ditt CRM.
{% endstep %}

{% step %}
**CRM-behörigheter**

Granska och följ [guiderna för CRM-integrationens installation](https://support.zoom.com/) för att verifiera att din CRM-integrationsanvändare har nödvändiga skrivbehörigheter för alla relevanta objekt.
{% endstep %}
{% endstepper %}

#### <mark style="color:blå;">Stödda CRM-plattformar</mark>

Denna funktionalitet är tillgänglig genom ZCC CRM CTI Connector när agenter använder följande CRM:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Med CRM CTI-connectorerna krävs ingen särskild konfiguration, och integrationen kommer som standard att spara engagemangsdata i CRM:et.

***

### Anpassad integration via API:er

Om dina agenter använder den inbyggda Zoom Workplace-appen eller ZCC Smart Embed behöver du en anpassad lösning för att överföra engagemangsdata. Huvudsättet för detta är att använda Zoom Contact Center API:er.

Det finns två huvudsakliga tillvägagångssätt för att komma åt engagemangsdata via API:et:

* **Polling:** Periodvis fråga Zoom-API:et för att se om ny engagemangsdata finns tillgänglig.
* **Webhooks:** Ta emot en realtidsavisering från Zoom så snart en avskrift är klar.

Det finns också ett tredje tillvägagångssätt, **Flow Events-integration**, som fungerar för vissa datatyper.

#### <mark style="color:blå;">Polling av Zoom Contact Center API:er</mark>

För att ladda ner engagemangsdata måste du fråga lämpliga ZCC API-endpoints. Det är viktigt att notera att olika typer av data kommer från olika API:er, så du kommer sannolikt behöva bygga pollinglogik för varje relevant endpoint.

| För att hämta dessa data...                               | Polla detta API...                                                                                                                                                                                                                                                                                                                          | Med detta fält... | Anteckningar:                                                 |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------- |
| <p>Inspelningsmediefil</p><p>(Röst- och videokanalen)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">List recordings</a> eller</p><p>List Queue Recordings</p>                                                                                                                                                                     | `download_url`    | Kräver att samtalsinspelning är aktiverad för kön.            |
| <p>Inspelningsavskrift</p><p>(Röst- och videokanalen)</p> | [List Engagements](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                      | `transcript_url`  | Kräver att samtalsinspelning med transkribering är aktiverad. |
| <p>Avskrift</p><p>(Meddelandekanal)</p>                   | [List Engagements](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                      | `transcript_url`  | Avskrift är aktiverat som standard för meddelandekanaler.     |
| <p>Dispositioner</p><p>(Alla kanaler)</p>                 | [List Engagements](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                      | `dispositions`    | En array av disposition-objekt.                               |
| <p>Anteckningar</p><p>(Alla kanaler)</p>                  | [List Engagements](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                      | `notes`           | En array av anteckningsobjekt.                                |
| <p>Röstbrevlådemediefil</p><p><br><br></p>                | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">List an account's inbox messages</a> <strong>eller</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">List an inbox's messages</a></p> | `download_url`    | För röstmeddelanden som lämnats i en Contact Center-inkorg.   |
| Röstbrevlådeavskrift                                      | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">List an account's inbox messages</a> <strong>eller</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">List an inbox's messages</a></p> | `transcript_url`  | Kräver att transkribering är aktiverad för inkorgen.          |

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

Nedladdnings-URL:erna (`download_url`, `transcript_url`, `playback_url`, och så vidare) som tillhandahålls av dessa Zoom-API:er är **inte** offentliga länkar. De är utformade för programmatisk åtkomst och kräver API-autentisering (till exempel åtkomsttoken i Authorization-headern) för att ladda ner den associerade filen.

Detta innebär:

* Du kan inte spara dessa URL:er direkt i ett CRM för att en användare ska klicka på dem. En användare som klickar på länken i sin webbläsare kommer inte att vara autentiserad, och nedladdningen kommer att misslyckas.
* Korrekt metod är att din backend-tjänst använder URL:en för att hämta filen. Din tjänst kan sedan spara filen i ditt eget system (som Amazon S3, Azure Blob Storage eller ditt CRM:s fillagring) och tillhandahålla en säker länk till dina användare därifrån.
  {% endhint %}

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

**Bearbetningsförseningar - röst- och videoinspelningar:**

Dessa data är inte tillgängliga i samma ögonblick som ett samtal avslutas. Ljudet måste först bearbetas och laddas upp, vilket kan ta flera minuter för långa samtal. För att säkerställa att du inte missar inspelningar, ställ in `query_date_type` parametern till `recording_end_time` när du pollar List recordings API. Detta hämtar data baserat på när bearbetningen avslutades, inte när samtalet avslutades.
{% endhint %}

För mer information om Zoom Contact Center API:er, se [Contact Center APIs](https://developers.zoom.us/docs/api/contact-center/) dokumentation.

#### <mark style="color:blå;">Använd Webhooks för realtids-händelser</mark>

För ett mer omedelbart, händelsestyrt tillvägagångssätt kan du prenumerera på ZCC-webhooks. Detta är den mest effektiva metoden för nära realtidsintegration.

**Hur det fungerar**

1. Prenumerera på lämpliga händelser i Zoom App Marketplace.
2. När en händelse inträffar skickar Zoom en avisering till din webhook-URL (eller till din Websocket-anslutning).
3. Händelsepayloaden innehåller den data du behöver, antingen direkt eller som en URL/ID för ett uppföljande API-anrop.

**Vanliga webhook-händelser för engagemangsdata**

* **Röst-/videoinspelning:** contact\_center.recording\_completed (tillhandahåller en `download_url`)
* **Röst-/videotranskript:** contact\_center.recording\_transcript\_completed (tillhandahåller en `transcript_url`)
* **Meddelandetranskript:** contact\_center.engagement\_messaging\_transcript\_completed (tillhandahåller en `transcript_url`)
* **Anteckningar:** contact\_center.engagement\_note\_added (tillhandahåller ett `note` fält med anteckningsdata)
* **Disposition:** contact\_center.engagement\_disposition\_added (tillhandahåller ett `disposition_name` fält med dispositionsdata)

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

* **Var medveten om flera händelser:** Den `note_added` och `disposition_added` händelser kan utlösas flera gånger för en enskild interaktion (till exempel om en agent sparar flera anteckningar eller ett samtal vidarekopplas). Din applikationslogik måste kunna hantera detta.
* **Bygg in redundans:** Händelseleverans är inte alltid 100 % garanterad (till exempel kan din endpoint eller websocket-anslutning vara tillfälligt nere).
* **Backup-strategi:** Vi rekommenderar att köra ett nattligt avstämningsskript med polling-API:er för att fånga upp missade händelser.
  {% endhint %}

För mer information om Zoom Contact Center Webhook/Websocket-händelser, se [Contact Center Webhooks](https://developers.zoom.us/docs/api/contact-center/events/) dokumentation.

#### <mark style="color:blå;">Flow Events-integration</mark>

För vissa datatyper kan du pusha data direkt till ett externt system från ZCC Flow-editor med ett JavaScript Event Script.

**Stödd data och begränsningar:**

* **Disposition:** Kan nås på alla inkommande engagemangskanaltyper med hjälp av `global_system.Engagement.disposition` variabeln.
* **Avskrift:** Endast tillgänglig för inkommande meddelandeengagemang (till exempel Web Chat) med hjälp av `global_system.Engagement.transcript` variabeln.
* **Flera Flöden:** När du arbetar med flera Flöden i din konfiguration, särskilt när ett Flöde använder `RouteTo` widgeten för att koppla till ett annat Flöde, är det viktigt att säkerställa att identiska Event Scripts och triggers är korrekt konfigurerade över alla Flöden.

Denna metod är mest kraftfull i ett meddelandeflöde, där du kan kombinera både avskrift och disposition i en enda händelse.

**Konfigurationssteg**

Följ dessa steg för att konfigurera ditt flöde:

{% stepper %}
{% step %}
**Lägg till ett Event Script**

I ditt ZCC Flow (till exempel ett Web Chat-flöde), klicka på Start-widgeten.

Hitta Event Scripts och lägg till ett Event Script för händelser, såsom Engagement Closed och/eller Disposition Saved.

<div align="left"><figure><img src="https://460446308-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 %}
**Lägg till din anpassade JavaScript**

Exemplet nedan hämtar både dispositionen och avskriften och skickar dem sedan tillsammans till en extern API.

```javascript
async function main () { 
  try {
    // Hämta disposition-objektet från dess variabel
    const disposition_data = var_get()['global_system.Engagement.disposition'];
    
    // Hämta det fullständiga avskriftsobjektet
    const transcript_data = await req.get(var_get()['global_system.Engagement.transcript']);

    // Förbered en payload med all data du vill skicka
    const payload_to_send = {
      disposition: disposition_data.data.result,
      transcript: transcript_data.data.result.transcript
    };

    // Definiera destinationen för din data
    const external_api_url = '<replace-with-your-api-endpoint>';
    
    // Skicka den kombinerade datan till ditt externa system
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Logga svaret från det externa systemet för felsökning
    log.debug("External API response: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Ett fel inträffade i avskrifts-händelseskriptet: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Sammanfattning och rekommendationer

Välj den integrationsmetod som bäst överensstämmer med din agentarbetsflöde och tekniska resurser.

| Om dina agenter använder...                               | Då är ditt bästa alternativ...                           | Viktiga överväganden:                                                                                                                           |
| --------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| ZCC CTI Connector i ett stödt CRM                         | Den inbyggda integrationen                               | <ul><li>Lättaste vägen</li><li>Ingen kod krävs</li><li>Synk av engagemangsdata är inbyggd</li></ul>                                             |
| Zoom Workplace-appen eller Smart Embed                    | API-webhooks med ett nattligt pollingjobb för avstämning | <ul><li>Mest robusta anpassade lösningen</li><li>Ger nära realtidsdata med en pålitlig backup-process</li></ul>                                 |
| Ett inkommande meddelandeflöde (och behov att pusha data) | Flow Event Scripts                                       | <ul><li>Nischat, men kraftfullt</li><li>Kräver JavaScript</li><li>Fungerar bäst för att skicka meddelandeavskrifter och dispositioner</li></ul> |

Genom att förstå dessa olika vägar kan du bygga en robust och pålitlig integration som ger dig en komplett bild av dina kundinteraktioner.
