# エンゲージメントデータを連携する

### 概要

Zoom コンタクトセンターは、通話レコーディング、文字起こし、エージェントのメモ、処理結果を含む、あらゆる顧客とのやり取りの最中に価値あるエンゲージメントデータを生成します。読み進めて、Zoom コンタクトセンターを使用する際に、エンゲージメントデータを外部システム（たとえば CRM やその他の記録システム）に保存し、統合された顧客ビューを作成したり、効果的なエージェントコーチングを有効にしたり、コンプライアンス要件を満たしたりする方法を確認してください。

さまざまな連携方法を整理し、エージェントがより高い効率で作業できるようにするにはどの方法が最適かを、選択しやすくします。

最適な方法は、主に 1 つの重要な要素によって決まります: **エージェントがやり取りを処理しているアプリケーション**。検討する 2 つの選択肢は次のとおりです:

1. CRM 内ですぐに使える ZCC CRM CTI コネクタを使用するエージェント。
2. Zoom Workplace アプリで作業するエージェント。これには、ZCC API と Webhook を使ったカスタムソリューションが必要です。

***

### すぐに使える CRM CTI コネクタ連携

これが最も簡単な方法です。エージェントが ZCC CRM CTI コネクタを使用している場合、ほとんどのエンゲージメントデータは Zoom プラットフォームと適切な CRM の間で自動的に同期できます。

#### <mark style="color:青;">仕組み</mark>

CTI コネクタは、ZCC のエージェントインターフェースを CRM に直接埋め込みます。エンゲージメントが終了すると、レコーディング、文字起こし、メモ、処理結果などのデータは Zoom に自動的に保存され、CRM 内の関連レコード（たとえば、チケットや連絡先）にリンクされます。

#### <mark style="color:青;">セットアップ要件</mark>

Zoom と CRM 間でデータを同期する機能は「すぐに使える」状態で提供されますが、ZCC 管理ポータルでの有効化が必要です。

次の手順を完了します:

{% stepper %}
{% step %}
**ZCC 管理ポータルで有効にする**

Zoom 管理ポータルに管理者としてログインし、コンタクトセンター管理 > 連携 > アプリケーション に移動します。

該当する CRM 連携を見つけ、CRM へのデータ保存を許可するための適切な設定を有効にします。
{% endstep %}

{% step %}
**CRM の権限**

次を確認し、従ってください [CRM 連携のセットアップガイド](https://support.zoom.com/) を参照して、CRM 連携ユーザーが関連するすべてのオブジェクトに対して必要な書き込み権限を持っていることを確認します。
{% endstep %}
{% endstepper %}

#### <mark style="color:青;">サポートされている CRM プラットフォーム</mark>

この機能は、エージェントが次の CRM を使用する場合に ZCC CRM CTI コネクタを通じて利用できます:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

CRM CTI コネクタでは特別な設定は不要で、連携はデフォルトでエンゲージメントデータを CRM に保存します。

***

### API によるカスタム連携

エージェントがネイティブの Zoom Workplace アプリまたは ZCC Smart Embed を使用している場合、エンゲージメントデータを転送するためのカスタムソリューションが必要です。これを行う主な方法は Zoom コンタクトセンター API を使用することです。

API 経由でエンゲージメントデータにアクセスするには、主に 2 つの方法があります:

* **ポーリング:** 新しいエンゲージメントデータが利用可能かどうかを確認するために、定期的に Zoom API を照会します。
* **Webhook:** 文字起こしが準備でき次第、Zoom からリアルタイムの通知を受け取ります。

さらに 3 つ目の方法として **Flow Events 連携**もあり、これは特定のデータ型で機能します。

#### <mark style="color:青;">Zoom コンタクトセンター API をポーリングする</mark>

エンゲージメントデータをダウンロードするには、適切な ZCC API エンドポイントを照会する必要があります。データの種類によって取得元の API が異なるため、関連する各エンドポイントごとにポーリングロジックを構築する必要がある可能性が高いことに注意してください。

| このデータを取得するには...                             | この API をポーリング...                                                                                                                                                                                                                                                                                                               | このフィールドを使用...  | 注:                             |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | ------------------------------ |
| <p>レコーディングメディアファイル</p><p>（音声およびビデオチャネル）</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">レコーディングの一覧</a> または</p><p>キューレコーディングの一覧</p>                                                                                                                                                                       | `download_url` | キューでコールレコーディングを有効にする必要があります。   |
| <p>録音の文字起こし</p><p>（音声およびビデオチャネル）</p>        | [エンゲージメント一覧](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                               | `文字起こし_url`    | 文字起こしを有効にしたコールレコーディングが必要です。    |
| <p>文字起こし</p><p>（メッセージ チャネル）</p>             | [エンゲージメント一覧](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                               | `文字起こし_url`    | 文字起こしは、メッセージ チャネルではデフォルトで有効です。 |
| <p>処理</p><p>（すべてのチャネル）</p>                  | [エンゲージメント一覧](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                               | `処理結果`         | 処理オブジェクトの配列。                   |
| <p>ノート</p><p>（すべてのチャネル）</p>                 | [エンゲージメント一覧](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                               | `ノート`          | ノートオブジェクトの配列。                  |
| <p>ボイスメールメディアファイル</p><p><br><br></p>        | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">アカウントのインボックスメッセージを一覧表示します</a> <strong>または</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">インボックスのメッセージを一覧表示します</a></p> | `download_url` | コンタクトセンターのインボックスに残されたボイスメール用。  |
| ボイスメール文字起こし                                 | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">アカウントのインボックスメッセージを一覧表示します</a> <strong>または</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">インボックスのメッセージを一覧表示します</a></p> | `文字起こし_url`    | インボックスで文字起こしを有効にする必要があります。     |

{% hint style="danger" %}
**警告**

ダウンロードURL（`download_url`, `文字起こし_url`, `playback_url`、など）は、これらのZoom APIによって提供される **されません** 公開リンクです。これらはプログラムによるアクセス向けに設計されており、関連ファイルをダウンロードするにはAPI認証（たとえば、Authorizationヘッダー内のアクセス トークン）が必要です。

これは次のことを意味します：

* これらのURLを、ユーザーがクリックできるようにCRMに直接保存することはできません。ユーザーがブラウザでリンクをクリックしても認証されず、ダウンロードは失敗します。
* 正しい方法は、バックエンドサービスがこのURLを使ってファイルを取得することです。その後、サービスはファイルを独自のシステム（Amazon S3、Azure Blob Storage、またはCRMのファイルストレージなど）に保存し、そこからユーザーに安全なリンクを提供できます。
  {% endhint %}

{% hint style="warning" %}
**注意**

**処理の遅延 - 音声 & ビデオ録画：**

このデータは通話が終了した瞬間には利用できません。まずオーディオを処理してアップロードする必要があり、長い通話では数分かかることがあります。録画を見逃さないようにするには、 `query_date_type` 〜へのパラメータ `録音終了時刻` List recordings API をポーリングする場合。これは、通話が終了した時点ではなく、処理が完了した時点に基づいてデータを取得します。
{% endhint %}

Zoom コンタクトセンター API の詳細については、をご覧ください [コンタクトセンター API](https://developers.zoom.us/docs/api/contact-center/) ドキュメント。

#### <mark style="color:青;">Webhookをリアルタイムイベントに使用する</mark>

より即時的でイベント駆動型のアプローチとして、ZCC の webhook を購読できます。これは、ほぼリアルタイムの連携に最も効率的な方法です。

**仕組み**

1. Zoom App Marketplace で適切なイベントを購読してください。
2. イベントが発生すると、Zoom はあなたの Webhook URL（または Websocket 接続）に通知を送信します。
3. イベント ペイロードには、必要なデータが直接含まれているか、フォローアップの API 通話用の URL/ID が含まれています。

**エンゲージメントデータの一般的なWebhookイベント**

* **音声/ビデオ録音:** 連絡先\_center.recording\_completed（aを提供する `download_url`)
* **音声/ビデオ文字起こし:** 連絡先センター.recording\_文字起こし\_completed（aを提供する `文字起こし_url`)
* **メッセージの文字起こし:** 連絡先\_center.engagement\_メッセージ\_文字起こし\_completed（提供する `文字起こし_url`)
* **注:** 連絡先\_center.engagement\_note\_added（提供する `メモ` ノートデータのフィールド)
* **処理:** 連絡先\_center.engagement\_処理\_added（次を提供する `処理_name` 処理データのフィールド)

{% hint style="warning" %}
**注意**

* **複数イベントに注意:** この `note_added` および `処理_added` イベントは、1つのエンゲージメントに対して複数回発火することがあります（たとえば、エージェントが複数のノートを保存した場合や、通話が転送された場合など）。アプリケーションのロジックはこれを処理できる必要があります。
* **冗長性を組み込む:** イベント配信は常に100%保証されるわけではありません（たとえば、エンドポイントまたはWebSocket接続が一時的にダウンしている場合があります）。
* **バックアップ戦略:** 見逃したイベントを捕捉するために、ポーリングAPIを使用した夜間の照合スクリプトの実行を推奨します。
  {% endhint %}

Zoom コンタクトセンターの Webhook/Websocket イベントの詳細については、を参照してください [コンタクトセンター Webhooks](https://developers.zoom.us/docs/api/contact-center/events/) ドキュメント。

#### <mark style="color:青;">Flow Events 連携</mark>

特定のデータ型では、ZCC Flow エディターから JavaScript イベント スクリプトを使用して、外部システムにデータを直接送信できます。

**サポートされているデータと制限事項:**

* **処理:** 「を使用して、すべての着信エンゲージメントチャネルタイプでアクセスできます `global_system.Engagement.処理` 変数。
* **文字起こし:** global\_system.Engagement.文字起こし を使用する、着信メッセージ対応（たとえば、Web チャット）でのみ利用できます。 `global_system.Engagement.文字起こし` 変数。
* **複数のフロー:** 設定で複数のフローを扱う場合、特に 1 つのフローが `RouteTo` ウィジェットを使用して別のフローに接続する場合は、すべてのフローで同一の イベント スクリプトとトリガーが適切に設定されていることを確認することが重要です。

この方法は、メッセージ フローで最も強力であり、1 つのイベントで文字起こしと処理の両方を組み合わせることができます。

**設定手順**

フローを設定するには、次の手順に従ってください。

{% stepper %}
{% step %}
**イベントスクリプトを追加**

ZCCフロー（たとえば、Web チャットフロー）で、Startウィジェットをクリックします。

イベントスクリプトを見つけて、Engagement Closed や 処理 Saved などのイベント用にイベントスクリプトを追加します。

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

{% step %}
**カスタムJavaScriptを追加**

以下の例では、処理と文字起こしの両方を取得し、それらをまとめて外部APIに送信します。

```javascript
async function main () { 
  try {
    // 変数から処理オブジェクトを取得する
    const 処理_data = var_get()['global_system.Engagement.処理'];
    
    // 完全な文字起こしオブジェクトを取得する
    const 文字起こし_data = await req.get(var_get()['global_system.Engagement.文字起こし']);

    // 送信したいすべてのデータを含むペイロードを準備する
    const payload_to_send = {
      処理: 処理_data.data.result,
      文字起こし: 文字起こし_data.data.result.文字起こし
    };

    // データの送信先を定義する
    const external_api_url = '<replace-with-your-api-エンドポイント>';
    
    // 結合したデータを外部システムに送信する
  	const response = await req.post(external_api_url, payload_to_send);
    
    // トラブルシューティングのために外部システムからの応答をログに記録します
    log.debug("外部APIの応答: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("文字起こし イベント スクリプトでエラーが発生しました: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### 要約と推奨事項

エージェントのワークフローと技術リソースに最も適した連携方法を選択してください。

| エージェントが使用しているものが...の場合             | 最適な選択肢は...です                     | 主な考慮事項:                                                                                    |
| ---------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------ |
| サポートされているCRM内のZCC CTI コネクタ         | 組み込みの連携                          | <ul><li>最も簡単な方法</li><li>コード不要</li><li>エンゲージメントデータの同期は組み込み済みです</li></ul>                    |
| Zoom Workplace アプリまたはSmart Embed   | 照合のための夜間ポーリングジョブを使用したAPI Webhook | <ul><li>最も堅牢なカスタムソリューション</li><li>信頼性の高いバックアッププロセスにより、ほぼリアルタイムのデータを提供します</li></ul>          |
| 着信 メッセージ フロー（およびデータをプッシュする必要がある場合） | フロー イベント スクリプト                   | <ul><li>ニッチですが、強力です</li><li>JavaScriptが必要です</li><li>メッセージの文字起こしとディスポジションの送信に最適です</li></ul> |

これらの異なる方法を理解することで、顧客とのやり取りを完全に把握できる、堅牢で信頼性の高い連携を構築できます。


---

# 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/ja/bijinesusbisu/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.
