

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 顧客が Amazon Connect でチャットの会話を再開できるようにする
<a name="chat-persistence"></a>

チャットを開始したお客様は、一旦会話から離れ、後から戻ってきてチャットを続けることがよくあります。このようなことは、数日、数か月、さらには数年の間に何度も起こるかもしれません。このような長時間のチャットをサポートするには、永続チャットを有効にします。

永続チャットでは、顧客はコンテキスト、メタデータ、トランスクリプトを引き継いで前の会話を再開できます。顧客はチャットに戻った際に以前の会話を繰り返す必要がなくなり、エージェントは会話履歴全体にアクセスできます。

## チャットのリハイドレート
<a name="rehydration"></a>

永続的なチャットは、チャットの復元と呼ばれるプロセスを通じて実現されます。このプロセスにより、チャットのトランスクリプトを以前のチャットコンタクトから取得して表示できます。顧客とエージェントは中断したところから会話を簡単に続けることができます。

**重要**  
トランスクリプトの生成は非同期的に発生するため、新しいチャットセッションにリハイドレートできるのは、終了しているチャットセッションのみです。  
ユーザーは、以前終了したチャットからリハイドレートを試みる前に、30～60 秒待つ必要があります。

Amazon Connect は 2 種類のリハイドレーションをサポートしています。
+ `ENTIRE_PAST_SESSION`: 新しいチャットセッションを開始し、過去のチャットセッションのすべてのチャットセグメントをリハイドレートします。
+ `FROM_SEGMENT`: 新しいセッションを開始し、指定された過去のチャットセグメントからリハイドレートします。

これらのさまざまなリハイドレートモードを示すユースケースについては、「[ユースケースの例](#persistentchatscenario)」を参照してください。

## RelatedContactId
<a name="relatedcontactid"></a>

新しいコンタクトは、`RelatedContactId` を介して既存のコンタクトに関連付けることができます。この新しい問い合わせには、関連する問い合わせの[問い合わせプロパティ](connect-attrib-list.md)のコピーが含まれています。

`RelatedContactId` が問い合わせレコードでどのようにモデル化されるかについての詳細については、「[Amazon Connect の問い合わせレコードのデータモデル](ctr-data-model.md)」を参照してください。

永続チャットの場合、`RelatedContactId` はソースチャットのリハイドレーションに使用される `contactId` を示しています。

## 常設チャットを有効にする方法
<a name="enable-persistent-chat"></a>

永続的なチャットを有効にするには、次の 2 つの方法があります。
+ 新しいチャットを作成するときに、以前のコンタクト ID を指定します。手順については、「[新しいチャットコンタクトを作成する際に永続的なチャットを有効にする](#enable-persistent-chat-creating-new-chat-contact)」を参照してください。
+ フローに[常設コンタクト関連付けの作成](create-persistent-contact-association-block.md)ブロックを追加します。手順については、「[フローで永続的なチャットを有効にする](#enable-persistent-chat-within-contact-flow)」を参照してください。

**注記**  
チャットを持続させるには、どちらかの方法を選ぶことができますが、両方を選ぶことはできません。つまり、新しいチャットで `SourceContactID` の永続化を有効にできるのは 1 度だけです。

永続的なチャットエクスペリエンスを提供するには、新しいチャットを開始する際、または[常設コンタクト関連付けの作成](create-persistent-contact-association-block.md)フローブロックを使用する際に、以前のコンタクト ID を指定する必要があります。これは自動的には行われません。コンタクトレコードデータを保存するためのリポジトリを作成することをお勧めします。リポジトリは、顧客ごとにこのデータを取り出すことができます。

 リポジトリにエントリを作成する方法は 2 つあります。
+ [チャットメッセージストリーミング](https://docs.aws.amazon.com/connect/latest/adminguide/chat-message-streaming.html)を使用して、チャットが終了したときにエントリを作成します。
+ [コンタクトイベント](https://docs.aws.amazon.com/connect/latest/adminguide/contact-events.html#contact-events-data-model)を調べ、 [AWS Lambda 関数](https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html)を使用してリポジトリにエントリを作成します。

リポジトリのセットアップ後、顧客の以前のコンタクト ID を取得して、新しいチャットを開始する際、または[常設コンタクトの関連付けの作成](create-persistent-contact-association-block.md)フローブロック内で指定できます。

また、インスタンスの Amazon S3 バケットから過去のチャットのトランスクリプトを取得できるようにしてください。以下に挙げる 2 つのことは、Amazon Connect がトランスクリプトを取得するのを妨げ、またチャットを永続させません。
+ 複数のチャット記録のバケットを使用している。
+ Amazon Connect が生成したチャット記録のファイル名を変更する。

### 新しいチャットコンタクトを作成する際に永続的なチャットを有効にする
<a name="enable-persistent-chat-creating-new-chat-contact"></a>

新しいチャットコンタクトを作成する際に永続的なチャットエクスペリエンスを設定するには、[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API の `SourceContactId` パラメータに以前の `contactId` を指定します。これにより、以前のコンタクトのチャット記録を復元することができます。記録は、顧客とエージェントの両方のチャットに表示されます。例については、[ユースケースの例](#persistentchatscenario)を参照してください。

### フローで永続的なチャットを有効にする
<a name="enable-persistent-chat-within-contact-flow"></a>

フローで永続的なチャットエクスペリエンスを設定する方法: 

1. チャットコンタクトを作成したら、[常設コンタクト関連付けの作成](create-persistent-contact-association-block.md)ブロックをフローに追加します。

1. ユーザー定義属性を使用して、ソースコンタクト ID を指定します。

または、[CreatePersistentContactAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreatePersistentContactAssociation.html) API を使用して、現在のチャットを永続化するためのソースコンタクト ID を指定することもできます。

復元は、フローブロックまたは API を使用している場合、チャットの開始後に始まります。復元が完了すると、復元イベントが発行され、通知が届きます。

## ユースケースの例
<a name="persistentchatscenario"></a>

例えば、顧客がチャットセッションを開始するとします。

1. エージェント a1 がチャットを受け入れ、顧客とエージェント a1 の間で会話が開始されます。これは、現在のチャットセッションで作成された最初の問い合わせです。例えば、`contactId` **C1** を 11111111-aaaa-bbbb-1111-1111111111111 とします。

1. その後、エージェント a1 はチャットをエージェント a2 に転送します。これにより、別の問い合わせが作成されます。例えば、`contactId` **C2** を 2222222-aaaa-bbbb-2222-222222222222222 とします。

1. エージェント a2 がチャットを終了します。

1. カスタマーは、別の問い合わせが作成されるチャット後の調査の切断フローに転送されます。例えば、`contactId` **C3** を 33333333-aaaa-bbbb-3333-3333333333333 とします。

1. チャット後の調査が表示され、チャットセッションが終了します。

1. 顧客は、後から戻って、過去のチャットセッションの再開することを希望しています。

この時点で、顧客にとって 2 つの異なるユースケースが考えられます。以下は、顧客が利用できる永続チャットのユースケースと、それらを提供するための Amazon Connect の設定方法です。

### ユースケース 1
<a name="persistentchatscenario-usecase1"></a>

顧客は過去のチャットセッションを継続し、チャット後の調査を非表示にすることを希望しています。このエクスペリエンスを提供するには、次の設定を使用します。

**リクエスト**:

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat" : {
       "SourceContactId":"2222222-aaaa-bbbb-2222-222222222222222" 
       "RehydrationType":"FROM_SEGMENT"
   }
}
```

#### 設定
<a name="usecase1-configuration"></a>
+ SourceContactId = 2222222-aaaa-bbbb-2222-222222222222222 (C2 の contactId)
+ RehydrationType = "`FROM_SEGMENT`"

#### 予想される動作
<a name="usecase1-behavior"></a>
+ この設定によって、指定した過去に終了した問い合わせ (例えば、2222222-aaaa-bbbb-2222-222222222222222) から永続チャットセッションが開始されます。

  過去のチャットセッション C2 (2222222-aaaa-bbbb-2222-222222222222222) と C1 (11111111-aaaa-bbbb-1111-1111111111111) のトランスクリプトには、現在の永続チャットセッションからアクセスできます。チャットセグメント C3 (33333333-aaaa-bbbb-3333-3333333333333) が永続チャットセッションから削除されていることに注意してください。
+ この場合、[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) 応答は C2 (2222222-aaaa-bbbb-2222-222222222222222) を「ContinuedFromContactId」として返します。
+ この永続チャットセッションの `RelatedContactId` は 2222222-aaaa-bbbb-2222-222222222222222 (C2) です。

### ユースケース 2
<a name="persistentchatscenario-usecase2"></a>

顧客は、過去のチャットセッションを継続し、過去のエンゲージメント全体のトランスクリプトを参照することを希望しています (また、チャット後の調査を非表示にしたくありません)。このエクスペリエンスを提供するには、次の設定を使用します。

**注記**  
 `ENTIRE_PAST_SESSION` リハイドレーションタイプの場合、過去のチャットセッションの最初の問い合わせ (最初の `contactId`) を `SourceContactId` 属性として指定します。

**リクエスト**:

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat":{
        "SourceContactId":"11111111-aaaa-bbbb-1111-1111111111111" // (first contactId C1)
        "RehydrationType":"ENTIRE_PAST_SESSION"
   }
}
```

#### 設定
<a name="usecase2-configuration"></a>
+ SourceContactId = `11111111-aaaa-bbbb-1111-1111111111111` (C1)
+ RehydrationType = "E`NTIRE_PAST_SESSION`"

#### 予想される動作
<a name="usecase2-behavior"></a>
+ これにより、最後に終了したチャット問い合わせ (C3) から永続チャットセッションが開始されます。過去のチャットセッション C3、C2、C1 のトランスクリプトには、現在の永続チャットセッションでアクセスできます。
+ この場合、[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) 応答は 33333333-aaaa-bbbb-3333-3333333333333 (C3) を「ContinuedFromContactId」として返します。
+ この永続チャットセッションの `RelatedContactId` は 33333333-aaaa-bbbb-3333-3333333333333 (C3) です

**注記**  
チャットの関連付けは累積的です。チャットセッションがリンクされると、引き継がれます。  
例えば、過去のチャットセッションに属する問い合わせ (`contactId` C2) が別の過去のチャットセッションの問い合わせ (`contactId` C1) にリンクされている場合、C2 をリンクして新しい永続チャットセッションを作成すると、C1 も暗黙的に関連付けられます。新しい永続チャットセッションでは、C3 → C2 → C1 という関連付けが作成されます。  
[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API 応答の `ContinuedFromContactId` フィールドには、永続チャットセッションの継続元の過去の contactId が公開されます。これは、問い合わせの[問い合わせレコード](ctr-data-model.md#ctr-ContactTraceRecord)の RelatedContactId フィールドでも公開されます。

## 永続チャットの過去のチャット問い合わせのトランスクリプトにアクセスする方法
<a name="access-past-chat-transcript"></a>

永続チャットの過去のチャットのトランスクリプトにアクセスするには、既存の `NextToken` ページ分割モデルを使用します。新たに開始された永続チャットセッションの [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) への最初の呼び出しでは、過去のチャットメッセージが存在する場合、応答に `NextToken` が含まれます。過去のチャットトランスクリプトにアクセスするには、後続の [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) 呼び出しで `ScanDirection` を `BACKWARD` に設定して過去のチャットメッセージを取得するとともに、`NextToken` を使用する必要があります。

過去のチャットメッセージが複数ある場合は、[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) によって新しい `NextToken` が返され、同じプロセスを繰り返して過去のチャット履歴をさらに取得できます。

## サポート対象外: 永続チャットでの `StartPosition` および `contactId` フィルターの使用
<a name="startposition"></a>

Amazon Connect は、過去のチャットからのトランスクリプト項目属性の [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) 呼び出しでの `StartPosition`および `contactId`フィルターの使用をサポートしていません。