スキルとライブ・エージェントの統合

スキルを既存のOracle B2C Serviceインタフェースに統合するためのおおまかなステップを次に示します。各ステップの詳細は、その次のトピックで説明します。

  1. エージェント統合チャネルの作成: このチャネルにより、スキルはOracle B2C Serviceと通信できるようになります。
  2. インサイトの有効化: スキルの「設定」「設定」アイコンページで、「インサイトの有効化」オプションを「オン」に切り替え、フレームワークでライブ・エージェントに会話履歴を渡せるようにします。
  3. エージェント転送ダイアログ・フローの構成:エージェント開始およびエージェント会話コンポーネントをダイアログ・フローに追加します。(ビジュアル・フロー・デザイナでは、これらのコンポーネントは「エージェント通信」テンプレートを介して使用できます。)
    • エージェント開始コンポーネントは、Oracle B2C Serviceへのハンドオフを開始します。
    • エージェントの会話コンポーネントは、スキルとエージェントの間のやり取りを処理します。

エージェント統合チャネルの作成

エージェント統合チャネルを使用して、スキルとライブ・エージェント・システムの間の接続を構成します。

開始する前に、次の権限を持つプロファイルに関連付けられているOracle B2C Serviceスタッフの資格情報を取得します:

  • 目的のOracle B2C Serviceインタフェースへのアクセス
  • 公開SOAP APIのアカウント認証およびセッション認証
  • エージェント・ブラウザ・ユーザー・インタフェースのアカウント認証

これらの情報がない場合は、Oracle B2C Service管理者に連絡してください。

また、Oracle B2C Service Account Managerでチャット・カスタム・インタフェースAPIおよびチャット・サード・パーティ・キュー統合APIが有効になっていることを確認する必要もあります。

  1. サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、「開発」「チャネル」の順に選択します。

  2. 「エージェント統合」をクリックし、「+エージェント統合の追加」をクリックします。
  3. このチャネルの名前と説明(オプション)を入力します。

    ダイアログ・フローでエージェント開始コンポーネントおよびエージェント会話コンポーネントを使用してOracle B2C Serviceとの間の遷移を有効にする場合は、この名前をagentChannelプロパティで使用する必要があります。

  4. 「統合タイプ」メニューから「Service Cloud」を選択します。

  5. 必要なプロファイル権限を持つOracle B2C Serviceスタッフのユーザー名とパスワードを入力します。

  6. ドメイン名とホスト名の接頭辞を定義します。

    Oracle B2C Serviceへのアクセス権がある場合、エージェント・ブラウザ・ユーザー・インタフェースの起動に使用するURLからこれらの値を導出できます。たとえば、URLがsitename.exampledomain.comの場合、ホスト名の接頭辞はsitenameで、ドメイン名はexampledomain.comです。

    チャネルがOracle B2C Serviceバージョン19A以降に接続していて、複数のインタフェースがある場合は、インタフェースIDをホスト(サイト)名に含める必要があります。たとえば、IDが2のインタフェースでは、sitename-2.exampledomain.comなどを使用します

  7. (オプション)「セッションの有効期限」(分)を増減します。この値は、エージェント会話ダイアログ・フロー・コンポーネントがagentLeftおよびexpiredアクションをトリガーする時期を決定するために使用されます。

    Oracle B2C ServiceのCS_IDLE_TIMEOUT「セッションの有効期限」の値以上である場合、エンドユーザーもエージェントもセッションの有効期限内にメッセージを送信しないと、expiredがトリガーされます。CS_IDLE_TIMEOUT「セッションの有効期限」の値より小さい場合、Oracle B2C Serviceはチャットを終了し、かわりにagentLeftアクションをトリガーします。

    インスタンスがOracle Cloud Platformにプロビジョニングされている場合(バージョン19.4.1のすべてのインスタンスと同様に)、サービスは「セッションの有効期限」設定ではなく15分を使用します。

    デフォルトでは、CS_IDLE_TIMEOUTは10分です。Oracle B2C Serviceインスタンスの設定を表示または変更するには、Oracle B2C Serviceデスクトップ・サービス・コンソールを開いて、「ナビゲーション」、メニューの最初の「構成」項目、「構成設定」の順にクリックします。次に、Chatフォルダ内のCS_IDLE_TIMEOUTを検索します。

  8. 「作成」をクリックします。

  9. スキルがエージェント・フレームワークと対話できるようにするには、「対話が有効」をオンに切り替えてチャネルを有効にします。

会話履歴の転送の有効化

ライブ・エージェント転送フレームワークを有効にして会話履歴をライブ・エージェントに渡すには、ロギングを有効にする必要があります。このオプションを有効にすると、エージェントのチャット・コンソールに、エージェントに渡される前に行われた顧客の会話が表示されます。

  1. スキルの左側のナビゲーション・バーで、「設定」「設定」アイコンをクリックします。
  2. 「一般」タブで、「インサイトの有効化」スイッチを「オン」に設定します。
ノート

会話履歴は4000文字を超えると切り捨てられます。

エージェント転送ダイアログ・フローの構成

ダイアログ・フローで顧客をライブ・エージェントに誘導する方法はいくつかあります。例:

  • エージェントと対話するための特定のオプションを指定できます。
  • エージェントに顧客を誘導する前に必要な顧客情報を収集するパスを実行できます。
  • 顧客をエージェントに転送する未解決インテントのハンドラを作成できます。
  • エージェント転送インテントを作成できます。

次に、ダイアログ・フローを構成するための基本ステップを示します:

  1. エージェント開始およびエージェント会話コンポーネントをフローに追加します。スキルがビジュアル・ダイアログ・モード(デフォルト)の場合は、これらのコンポーネントの両方を含むエージェント通信テンプレートを使用します。
  2. エージェント開始状態の「エージェント統合チャネル」プロパティに、ライブ・エージェント・システム用に構成したエージェント統合チャネルの名前を設定して、ライブ・エージェント転送を開始します。

    エージェント統合チャネルが接続を確立し、Oracle B2C Serviceがチャット・リクエストをそのキューに送信した後(つまり、ヘルプ・チケットを作成した後)、エージェント統合コンポーネントによって次の状態への遷移が可能になります。これは通常、エージェント会話コンポーネントに定義されます。

  3. コンポーネントのリソース・バンドル・エントリで、コンポーネントが使用するメッセージ(待機メッセージや再開メッセージなど)を微調整します。これらのエントリにアクセスするには、「リソース・バンドル」アイコンをクリックしてスキルの「リソース・バンドル」ページを開き、「構成」タブを選択して、フィルタ・フィールドにagentiと入力します。

    ヒント:

    顧客のリクエストがエージェントのチャット・コンソールのキューにすでに入っていても、顧客はライブ・チャットを繰り返し要求できます。この場合、systemComponent_AgentInitiation_resumedMessageリソース・バンドル・エントリの値を、誤解を招く可能性のあるエージェントとのチャットの再開メッセージから、より適切なものに変更できます。
  4. エージェント会話コンポーネントを構成します。

    ダイアログ・エンジンがこのコンポーネントに定義された状態になっている間、スキルは顧客とエージェントの間でメッセージを受け渡します。スキルは、顧客入力の終了キーワード(byeなど)をリスニングします。これらのキーワードのいずれかがスキルによって検出されると、コンポーネントはライブ・チャット・セッションを終了し、そのnext遷移をトリガーします。

    終了キーワードと、コンポーネントのリソース・バンドル・エントリでコンポーネントが使用する標準メッセージ(有効期限やエラー・メッセージなど)を編集できます。これらのエントリにアクセスするには、「リソース・バンドル」アイコンをクリックしてスキルの「リソース・バンドル」ページを開き、「構成」タブを選択して、フィルタ・フィールドにagentcと入力します。

エージェントによる遷移アクションの指定の有効化

ライブ・チャット・セッションの終了後に遷移する状態をエージェントが指定できるようにする場合は、エージェント開始コンポーネントの「エージェント・アクション」プロパティを使用して、エージェントが送信できるサポート対象アクションをリストし、エージェント会話コンポーネントを使用してそのアクションを状態にマップします。

エージェントがチャット・リクエストを受け入れると、チャット・コンソールに、それぞれの先頭にスラッシュが付いたサポート対象アクション(これらはスラッシュ・アクションと呼ばれます)が表示されます。

サポート対象アクションのリストが表示されているエージェント・コンソール。

エージェントがいずれかのスラッシュ・アクションを送信すると、そのアクションがライブ・エージェント転送フレームワークに送信され、スキルによってライブ・チャットが終了します。エージェント会話コンポーネントにそのアクションのトランジションがある場合、フローは指定された状態に遷移します。エージェントがスラッシュ・アクションを送信した場合、結論メッセージ(systemComponent_AgentConversation_conclusionMessageリソース・バンドル・エントリに格納)は出力されません。

エージェントが/Orderを送信し、チャットが終了したことを示すチャット・コンソール。
  1. エージェント開始状態で、「エージェント・アクション」プロパティを使用して、サポートされているアクションをリストします。
  2. next遷移の状態を追加します。この状態は、ユーザーが終了キーワードを使用して会話を終了したときに到達した後、次の遷移アクションを追加します:
    • エージェント会話コンポーネントの「エージェント・アクション」プロパティにリストされている各アクション。
    • エージェントがスラッシュ・アクションを使用せずにライブ・チャットを終了したか、セッションがタイムアウトした場合のagentLeftアクション。エージェント会話の遷移アクションを参照してください。
    • セッションが期限切れになった場合のexpiredアクション。エージェント会話の遷移アクションを参照してください。
    • チャネル接続に失敗した場合のerrorアクション。エージェント会話の遷移アクションを参照してください。

キューでの順番および待機時間メッセージの上書き

デフォルトでは、チャット・リクエストが送信されると、スキルで出力されるキューでの順番と待機時間に関するメッセージがサービスによって返されます。たとえば、次のようなメッセージが表示されることがあります:

You are in position {0} in our queue. Expected wait time is {1} minute(s) {2} second(s)
エージェント会話コンポーネントのB2C待機メッセージのオーバーライドプロパティを使用して、独自のカスタム・メッセージを定義できます。次のスニペットに示すように、system.message.messagePayload.positionおよびsystem.messagePayload.waitTimeプロパティをそれぞれ使用して、キューと待機時間のステータスを返すメッセージを作成できます:
"You are at number ${system.message.messagePayload.position} in the queue. Your wait time is ${system.message.messagePayload.waitTime}."
メッセージ・コンテンツは、これらのプロパティを組込みのApache FreeMarker操作(次のスニペットのthen操作など)と組み合せて、カスタマイズできます。ここでは、分または秒に特化したコンテンツをスキルで出力できます。待機時間が60秒またはそれ以上の場合(waitTime>60)、スキルによって次が出力されます: You are at number 9 in the queue.Your wait time is 1 mins.それ以外の場合は、次が出力されます: You are at number 9 in the queue.Your wait time is 55 seconds.

エージェント開始拒否とシステム・エラーの処理

ダイアログ・フローでは、エージェントの起動中に発生する可能性のあるエラーを処理する必要があります。エージェント開始コンポーネントがライブ・エージェント・システムへの接続を開始しようとしたときに、errorまたはrejectedアクションが返される場合があります。また、開発者が原因で問題が発生した場合は、システム・エラーが呼び出されることがあります。

  • rejectedアクション:このアクションは、Oracle B2C Serviceが接続リクエストを拒否したときにトリガーされます。接続リクエストが拒否される理由として、次のようなものがあります:

    • 構成済の営業時間外である
    • 休日である
    • チャット・サーバーに問題がある
    • 使用可能なエージェントがありません(「次の場合に転送を許可」および「キューID」プロパティが必要です)
      ノート

      使用可能なエージェントがない場合に接続を拒否するには、「次の場合に転送を許可」および「キューID」プロパティを設定する必要があります。それ以外の場合、転送は待機状態のままになります。

    Oracle B2C Serviceが接続要求を拒否すると、スキルによって拒否メッセージが表示されます。これは、デフォルトで「Agent rejected」です。その後、rejectedアクションにマップされている状態に遷移します。systemComponent_AgentInitiation_rejectedMessageリソース・バンドル・エントリを使用して、カスタム・メッセージを指定できます。このエントリにアクセスするには、「リソース・バンドル」アイコンをクリックしてスキルの「リソース・バンドル」ページを開き、「構成」タブを選択し、フィルタ・フィールドにagentiと入力して、systemComponent_AgentInitiation_rejectedMessageキーを選択します。

    ヒント:

    Oracle B2C Serviceデスクトップ・サービス・コンソールへの管理者アクセス権がある場合、運用時間および休日を表示できます。ナビゲーション・ペインで、「構成」「サイト構成」の順にクリックし、「インタフェース」をダブルクリックして、「チャット利用時間」をクリックします。
  • errorアクション:このアクションは、Oracle B2C Serviceとの接続の確立に問題がある場合にトリガーされます。たとえば、エージェント統合チャネルのパスワードが有効でなくなった場合や、Oracle B2C Serviceサーバーに問題がある場合などです。

    このタイプのエラーが発生すると、スキルによってデフォルトで次のメッセージが表示され、errorアクションにマップされている状態に遷移します。

    Error transferring to agent, the reason is: <reason>

    メッセージは、systemComponent_AgentInitiation_errorMessageリソース・バンドル・エントリを編集することで変更できます。

  • システム・エラー: エージェント統合チャネルが存在しないか無効になっている場合、スキルはシステム・エラーを呼び出します。デフォルトでは、スキルには「問題の箇所が見つかりました。後で再試行してください...」というメッセージが表示されます。残念ながら、開発者が問題を修正するまで、ボット・ユーザーが再試行するのに役立ちません。したがって、error遷移を追加し、より有用な顧客向けのメッセージを出力する状態に移行することにより、ダイアログ・フローでこれらのエラーをより適切に処理できます。(これはerror actionとは異なります)。または、「設定」→「構成」に移動し、「予期しないエラー・プロンプト」を編集して、デフォルト・メッセージを変更できます。ただし、この変更はスキルにグローバルに影響します。

    ダイアログ・フローを検証すると、バリデータによってエージェント統合チャネルが見つからないか無効になっているかが通知されるため、スキルをテストする前または公開する前に、必ず実行してください。

    次に、システム・エラーを診断する方法をいくつか示します:

    • スキルで「検証」をクリックして、ダイアログ・フローを検証します。

    • プレビューでスキルを実行します。エラーが発生すると、「会話」タブにエラー状態およびメッセージ(理由)が表示されます。

    • error遷移によるフローのルーティング先となる状態で、Freemarkerテンプレート${system.errorAction}を含む文字列を出力し、エラー・メッセージ(理由)を出力します。