

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

# カスタム参加者を統合して Amazon Connect でのチャットフローエクスペリエンスをカスタマイズする
<a name="chat-customize-flow"></a>

ボットなどの他のソリューションを Amazon Connect チャットと統合して、カスタマイズされたチャットフローエクスペリエンスを作成できます。

チャットフローエクスペリエンスをカスタマイズする方法に関する概要は次のとおりです。チャットの会話が開始されたら、各チャットセグメントについて以下の手順を実行します。チャットフローで API を呼び出すために [AWS Lambda 関数](invoke-lambda-function-block.md) ブロックを追加することをお勧めします。

**重要**  
[プロンプトの再生](play.md) ブロックを [AWS Lambda 関数](invoke-lambda-function-block.md) ブロックの前に追加します。これは、** AWS Lambda 呼び出し**ブロックがインバウンドチャットフローの最初のブロックである場合にのみ必要です。

1.  [チャットメッセージのリアルタイムストリーミングを有効にします](chat-message-streaming.md)。

1. Amazon Connect [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) API を呼び出して、チャット連絡先にカスタム参加者 (`ParticipantRole`=`CUSTOM_BOT`) を追加します。

   1. Amazon Connect API を呼び出すための SDK クライアントを作成する方法の詳細については、以下のトピックを参照してください。
      + [クラス AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html)
      + [サービスクライアントの作成](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html)

   1. [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) を呼び出すには、[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) から取得された `ParticipantToken` を保持します。`CreateParticipantConnection` は `ConnectionToken` を返します。これを使用して、他の Amazon Connect Participant API を呼び出すことができます。

      [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) を呼び出してカスタム参加者の接続を作成する場合:
      + `ConnectParticipant` を `True` に設定すると、カスタム参加者はメッセージストリーミングに接続済みとしてマークされます。
      + `Type` を `CONNECTION_CREDENTIALS` と渡して、以降の Amazon Connect Participant Service API を呼び出します。
      + `CreateParticipantConnection` は、`CreateParticipant` に電話をかけてから 15 秒以内に呼び出す必要があります。

1. 参加者が連絡先に追加された後、Amazon Connect Participant Service API を使用して顧客とメッセージを交換できます。

1. 参加者を接続解除するには、[DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html) API を呼び出します。

**注記**  
連絡先にエージェントまたは Amazon Lex ボットが既に存在する場合、カスタム参加者をチャットに追加することはできません。
エージェントまたは Amazon Lex ボットが連絡先に参加すると、カスタム参加者は接続が切断されます。
1 件の連絡先に登録できるカスタム参加者は 1 人だけです。
カスタム参加者は、顧客がアップロードする添付ファイルにアクセスすることはできません。

カスタム参加者が連絡先とチャットできる時間を設定することをお勧めします。
+ `ParticipantRole` = `CUSTOM_BOT` の [待機](wait.md) ブロックに **[タイムアウト]** プロパティを設定します。
+ タイムアウトまでにカスタムボットの参加者が接続解除されない場合、連絡先は **[期限切れ]** ブランチにルーティングされます。これにより、顧客のクエリを解決するために次に実行するブロックを決定できます。

**注記**  
連絡先が **[期限切れ]** ブランチにルーティングされても、連絡先との接続は切断されません。参加者を接続解除するには、[DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html) API を呼び出す必要があります。

## カスタム参加者に参加している顧客のタイマーをアクティブ化する
<a name="integrate-bot-extension-client"></a>

カスタムボットなどのカスタム参加者に参加している顧客のタイマーをアクティブ化できます。これにより、顧客が応答を停止したことを検出してボットの会話を終了し、フローの次のステップを実行することができます。アイドル状態の参加者を終了することで、応答しない顧客がカスタム参加者と関与しているオープンチャットの数を減らすことができます。

次のステップを実行して、アイドル状態の参加者カスタムボット拡張機能を統合し、オプションでカスタムタイマー値を設定します。これらのステップは、すでにチャットのカスタム参加者機能を使用していることを前提としています。

1. カスタム参加者がチャットに参加する前に、顧客の [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html) API を呼び出します。

   1. タイマーは顧客に対してのみアクティブ化されます。カスタム参加者には、アイドル状態の参加者タイマーや接続の自動解除タイマーはありません。

   1. API を呼び出す方法を選択できます。

   1. このステップで設定されたタイマー値は、チャットの有効期間中保持されます。**顧客とエージェント間の対話**に異なるタイマー値が必要な場合は、「ステップ 2」を参照してください。

   1. 顧客がすでにこのように設定されている場合、カスタム参加者を統合するために他の操作を実行する必要はありません。

1. (任意) **顧客とエージェントの対話**と**顧客とカスタム参加者の対話**にそれぞれ異なるタイマーとタイマー値を設定する方法: 
   + エージェントがチャットに参加する前に、必要な設定で [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html) API を再度呼び出します。

チャットのタイマーの詳細については、「[チャット参加者のチャットタイムアウトを設定する](setup-chat-timeouts.md)」を参照してください。

### タイマーの開始
<a name="starting-timers"></a>

カスタム参加者が [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html) API を使用して接続を確立した後にタイマーが開始します。

### 共存できない参加者がカスタム参加者のチャットに参加するとどうなるか
<a name="non-compatible-participants"></a>

エージェントまたは Lex ボット参加者がカスタム参加者のチャットに参加すると、共存できないため次のようなことが起こります。

1. カスタム参加者はチャットから自動的に切断されます。

1. それまでアクティブだったタイマーはすべて終了し、接続されている参加者のために新しいタイマーが作成されます (タイマーが設定されている場合）。

1. それぞれの新しいタイマーも最新の設定で更新されます (必要な場合）。これにより、チャットの新しいアクティブな参加者のグループの新しい「アイドルセッション」が確立されます。

### 待機ブロックタイマーとのやり取り
<a name="interaction-wait-block-timer"></a>

アイドルタイマーは、[待機](wait.md) ブロックの動作には影響しません。

チャットでの問い合わせが**待機**ブロックに入ったときに開始する**待機**ブロックタイマーは、引き続き機能します。**待機**ブロックタイマーの有効期限が切れると、アイドル状態の参加者タイマーがアクティブであるかどうかに関係なく、コンタクトはフローを再開し、**期限切れ**ブランチにルーティングされます。

## トラブルシューティングのヒント
<a name="ts-chat-custom-bot"></a>
+ `ResourceNotFoundException`: 

  `CreateParticipantConnection` API の呼び出し時にカスタム参加者に `ResourceNotFoundException` を取得した場合は、`CreateParticipantConnection` API が `CreateParticipant` API から 15 秒以内に呼び出されたかどうかを確認してください。
+ `AccessDeniedException`: 

  `AccessDeniedException` エラーが発生し、参加者ロールが CUSTOM\$1BOT の場合、ボットが添付ファイルにアクセスしようとしていることを示します。CUSTOM\$1BOT の参加者ロールは、顧客がアップロードする添付ファイルにアクセスすることはできません。