ストアリリース 2.0.x で利用可能な仮想エージェント API 機能

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:23分
  • 仮想エージェント API バージョン 2.0.x では、仮想エージェントおよびエージェントチャットで利用可能な同じ機能の多くにアクセスできます。これには、リッチコントロールのサポートや通知が含まれます。

    追加のリッチコントロールのサポート

    仮想エージェント API は、次のリッチコントロールをサポートするようになりました。

    ブールコントロール
    ブールコントロールは、ローカリゼーションを容易にするために応答を文字列 (Yes または No のいずれか) として返します。

    トピックのローカリゼーションの詳細については、「仮想エージェントの会話のローカライズ」を参照してください。

    仮想エージェント API は、ブールコントロール用の次の JSON 例を送信します。
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "7a36412253a13010ff59ddeeff7b12fb",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "Boolean",
          "group": "DefaultPicker",
          "required": true,
          "nluTextEnabled": false,
          "label": "Sample Response for boolean control",
          "options": [
            {
              "label": "Yes"
            },
            {
              "label": "No"
            }
          ]
        }
      ],
      "score": 1
    }
    カスタムコントロール
    カスタムコントロールを使用するトピックがサポートされるようになりました。カスタムコントロールの詳細については、「カスタムコントロールを使用した仮想エージェントのカスタマイズ」を参照してください。
    テーブルボット応答コントロール
    テーブルボット応答コントロールを使用するトピックがサポートされるようになりました。詳細については、「テーブルボット応答コントロール」を参照してください。

    すべてのレコードが仮想エージェント API から一度に返されます。仮想エージェントは、API クライアントからの応答を待って次のコントロールを送信します。paginationBreak プロパティを使用して、レコードをチャンクでユーザーに表示します。たとえば、paginationBreak が 10 に設定されている場合、ユーザーには一度に 10 件のレコードが表示されます。クライアントが次のコントロールに移動する準備ができたら、「DONE」を送信する必要があります。

    仮想エージェント API は、テーブルボット応答コントロール用の次の JSON 例を送信します。
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Yes",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "OutputTable",
          "group": "DefaultOutputTable",
          "label": "Sample Table Rich control",
          "headers": [
            "Number",
            "Short description"
          ],
          "data": [
            [
              "INC0000005",
              "CPU load high for over 10 minutes"
            ],
            [
              "INC0000015",
              "I can't launch my VPN client since the last software update"
            ],
            [
              "INC0000025",
              "Need to add more memory to laptop"
            ],
            [
              "INC0000035",
              "Reset my password"
            ],
            [
              "INC0000055",
              "SAP Sales app is not accessible"
            ],
            [
              "INC0009005",
              "Email server is down."
            ]
          ],
          "paginationBreak": 10,
          "totalSearchResultsCount": 6,
          "navigationBtnLabel": "Click for more"
        }
      ],
      "score": 1
    }
    HTML ボット応答コントロール
    HTML ボット応答コントロールを使用するトピックがサポートされるようになりました。詳細については、「HTML ボット応答コントロール」を参照してください。
    仮想エージェント API は、HTML ボット応答コントロール用の次の JSON 例を送信します。
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Yes",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "OutputHtml",
          "group": "DefaultOutputHtml",
          "style": "inline",
          "height": 100,
          "width": 100,
          "value": "<html> <body> Sample Response for Html control </body> </html> ",
          "imageUrl": null,
          "imageHeight": 0,
          "imageWidth": 0,
          "links": null
        },
        {
          "uiType": "InputText",
          "group": "DefaultText",
          "required": true,
          "nluTextEnabled": false,
          "label": "some text",
          "maskType": "NONE"
        }
      ],
      "score": 1
    }
    複数回答ボット応答コントロール
    複数回答ボット応答コントロールを使用するトピックがサポートされるようになりました。詳細については、「複数回答ボット応答コントロール」を参照してください。
    仮想エージェントAPI は、複数回答ボット応答コントロールに次の JSON 例を送信します。
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Done",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "MultiPartOutput",
          "group": "DefaultMultiPartOutput",
          "navigationBtnLabel": "Click for more",
          "content": {
            "uiType": "OutputText",
            "value": "Text response from multiflow control example",
            "maskType": "NONE"
          }
        }
      ],
      "score": 1
    }
    リッチテキストのサポート
    リッチテキストを使用するトピックがサポートされるようになりました。リッチテキストには、太字または斜体のテキスト、ハイパーリンク、箇条書き、絵文字が含まれます。

    その他の エージェントチャット の機能

    仮想エージェント API は、エージェントチャットへの転送時に次の機能をサポートするようになりました。

    エージェント名とアバターを渡す
    プライマリボットがライブエージェントにチャットを転送すると、仮想エージェントは、エージェント名とアバターをプライマリボットに送信できます。これをアクティブにするには、エージェントチャット設定で [エージェントの名前とアバター] をアクティブ化します。
    メッセージペイロードの例は次のようになります。
    { 
    "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c", 
    "clientSessionId":"U94CSJLEN", 
    "message":{ 
    "text":"Live Agent support.", 
    "typed":true 
    }, 
    "userId":"U94CSJLEN", 
    "body":[ 
    { 
    "uiType":"OutputText", 
    "group":"DefaultText", 
    "agentInfo":{ 
    "sentFromAgent":true, 
    "agentName":"Beth Anglin", 
    "agentAvatar":"ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small" 
    }, 
    "value":"Thank you for contacting support. I am looking into your question now and will be with you shortly." 
    } 
    ], 
    "agentChat":true, 
    "score":1 
    }

    詳細については、「エージェントチャットの構成」を参照してください。

    ライブエージェント待機時間
    ライブエージェントへの転送時、プライマリボットは待機時間を受信してユーザーに表示できます。これを有効にするには、エージェントチャット設定の [ライブチャットの待機ステータス] フィールドで [待機時間] を選択します。spinnerType の値が wait_time に設定されます。[ライブチャットの待機ステータス][なし] に設定されている場合、spinnerType の値は none になります。
    仮想エージェント API は、ペイロードの body パラメーターで次の JSON 例を送信します。
    {
    "uiType":"ActionMsg",
    "actionType":"StartSpinner",
    "spinnerType":"wait_time",
    "message":"Routing you to a live agent...",
    "waitTime":"8 Seconds"
    }
    

    詳細については、「エージェントチャットの構成」を参照してください。

    プライマリボットから仮想エージェントへのチャット履歴の送信
    プライマリボットは、チャット履歴をライブエージェントに渡して、エージェントによる会話のコンテキストの確認を可能にできます。
    仮想エージェントは、メッセージ履歴を HTML に変換してから画像に変換します。
    • 変換された画像は、チャットの最初のメッセージとしてライブエージェントに送信されます。
    • プライマリボットは、最初の要求でメッセージ履歴を送信する必要があります。最初の要求の後の他の要求では、メッセージ履歴ペイロードは無視されます。
    • テキストメッセージのみがサポートされます。
    • プライマリボットは任意の URL をテキストメッセージの値として渡すことができますが、ライブエージェントはそれを画像の一部としてのみ表示できます。ライブエージェントではリンクをクリックできなくなります。
    メッセージ ペイロードの例:
    {​ 
          "value": "Help me with password reset",​ 
          "displayName": "able",​ 
          "type": "text"​ 
          "isBotMessage": false,​ 
        } 
    注:
    前の例で、type は大文字と小文字を区別するため、text の値を指定する必要があります。

    プライマリボットからの強化された要求

    仮想エージェント API は、プライマリボットからの次の要求をサポートするようになりました。

    システムパラメーターとコンテキスト変数
    プライマリボットはシステムパラメーターとコンテキスト変数を入力として渡すことができ、仮想エージェントはこれらのパラメーターを受け入れます。liveagent_devicetypeliveagent_requester_session_languageliveagent_topictopiclive_agent_onlyliveagent_devicetimezone などのシステムパラメーターがサポートされます。カスタムコンテキスト変数とエージェントチャットコンテキスト変数もサポートされます。
    メッセージ ペイロードの例:
    {​ 
    "requestId": "f42f3550-5b44-4cde-aa52-xxxxxxxxxx",​ 
    "clientSessionId": "xxxxxxxxxx",​ 
    "token": "abcd",​ 
    "message": {​ 
        "text": "Test",​ 
        "typed": true​ 
    },​ 
    "contextVariables": {​ 
           "requester_session_language": "es"​ 
    },​ 
    "userId": ""abel.tuter",​ 
    "emailId": "abel.tuter@example.com"​ 
    }​ 
    

    詳細については、「ライブエージェントチャットのコンテキスト変数」と「チャット関連情報を保存するためのコンテキスト変数を設定」を参照してください。

    ユーザーのタイムゾーン
    ユーザーのタイムゾーンを要求ペイロードに渡して設定します。一度設定すると、そのタイムゾーン設定はリセットされるまで保持されます。
    メッセージ ペイロードの例:
    {​ 
    
        "requestId": "xxxxxx-xxxxxx-xxxx-xxxx-xxxxxxxxxx",​ 
        "clientSessionId": "xxxxxxxx-xxxx",​ 
        "token": "xxxxx",​ 
        "action" : "SET_USER_TIMEZONE",​ 
        "userId": "able.tuter",​ 
        "emailId": "abel.tuter@example.com",​ 
         "timezone":"Asia/Kolkata"​ 
    } 
    この機能を使用する場合は、次の点を考慮してください。
    • 日付と時刻をユーザーのタイムゾーンに変換するには、会話がオープン (現在) である必要があります。
    • プライマリボットは、次のいずれかの形式で日付と時刻を送信する必要があります。
      • タイムゾーン名。たとえば、Asia/KolkataAmerica/New_York などです。
      • 日時 24 時間形式。例: YYYY-MM-DD HH:MM:SS
    • 仮想エージェント API は、設定するタイムゾーンが [sys_user] テーブルに格納されている値と異なる場合でも、プライマリボットによって指定されたタイムゾーンを使用します。
    • ユーザーのタイムゾーンを設定するには、SET_TIMEZONE アクションを送信します。タイムゾーン名が有効でない場合、タイムゾーン値はデフォルトで UTC 時間に設定されます。2021-02-16 20:13:13 など。

    ノードスキップのサポート

    トピックでそのように設定されている場合、仮想エージェント API はノードのスキップをサポートします。たとえば、 仮想エージェントデザイナー では、ユーザー入力コントロールをスキップ可能として指定できます 詳細 > このノードを非表示またはスキップ プロパティシートの領域。

    図 : 1. ユーザーがノードをスキップできる条件またはスクリプト
    この例では、[スクリプト] オプションが選択されており、ユーザーがいつノードをスキップできるかを定義しています。

    ノードをスキップ可能として定義する詳細については、「仮想エージェントデザイナーユーザー入力コントロール」を参照してください。

    ノードがスキップ可能としてマークされている場合、ボットはそのオプションをユーザーに提示します。ユーザーがスキップした場合、次の例に示すように、プライマリボットがスキップコマンドを渡します。
    {
    "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
    "clientSessionId": "835607",
    "token": "snow",
    "message": {
    "text": "_skip_",
    "typed": false
    },
    "emailId": "beth.anglin@example.com",
    "userId": "beth.anglin"
    }

    同期ハンドシェイクのサポート

    注:
    これらの要件は、仮想エージェント API のバージョン 2.0.x に適用されます。同期ハンドシェイク機能を強化するには、ライブエージェント転送やその他の拡張機能をサポートするバージョン 3.0.x にアップグレードします。詳細については、「同期ハンドシェイクの機能拡張」を参照してください。
    有効にすると、仮想エージェントはプライマリボットに応答を同期的に配信します。同期モードで仮想エージェントとの通信を有効にするには、ハンドシェイクを機能させるために次の機能を手動でオフにする必要があります。
    • エージェントチャット
    • 通知
    • 入力インジケーター
    注:
    次の機能を使用するトピックは、同期モードではサポートされていません: ファイルアップロードアクション ユーティリティ、および一時停止トピックブロック
    これらの機能を無効にして同期サポートを有効にするには、次の手順を実行します。
    1. エージェントチャットからボット間チャネルを除外します。
      1. [すべて] に移動してから、フィルターに「sys_properties.list」と入力します。
      2. com.glide.cs.exclude.liveagent.support システムプロパティを選択して開きます。
      3. Bot To Bot」を [値] フィールドに追加します。
        図 : 2. エージェントチャットからのボット間チャネルの除外
        システムプロパティの [値] フィールドに「Alexa,Google Assistant,Bot to Bot」が含まれています。これらのチャネルはサポート エージェントチャットから除外されます。
      4. [更新] をクリックします。
    2. [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
    3. [ボット間 (Bot to Bot)] レコードを選択します。
    4. 無効にするには、[通知の有効化] チェックボックスをオフにします。
    5. 無効にするには、[入力インジケーターをサポート] チェックボックスをオフにします。
    6. [同期] チェックボックスをオンにします。
      図 : 3. 同期サポートを有効にしたボット間チャネル
      同期モードのボット間チャネル構成では、[通知を有効にする] および [入力インジケーターをサポート] ボックスが未選択として表示されます。[同期] ボックスが選択されます。
      注:
      [同期] フィールドが非表示の場合は、フォームレイアウトを設定して表示することができます。
    7. [更新] をクリックします。

    通知サポート

    非同期モードで有効になっている場合、仮想エージェント API を使用して、ボット間チャネルで次のタイプの通知を送信します。
    • 簡易:テキストのみの通知。簡易通知は、到着するとすぐに配信されます。
    • 画像カード:サーバーにアップロードされた画像、または URL で指定された画像。
    • レコードカード:テーブル内のレコードから指定された列。
    • アクション可能:ユーザーに特定のアクションを実行する機会を提供します。アクション可能な通知がキューに格納されます。ユーザーは Show Notification コマンドを送信することで、オンデマンドでそれらを取得できます。

    詳細については、「仮想エージェント通知の設定」を参照してください。

    仮想エージェント API は、簡易通知用に次の JSON の例を送信します:
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Done",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "OutputCard",
          "group": "DefaultOutputCard",
          "templateName": "Notification",
          "data": "{\"sys_id\":null,\"recordDisplayValue\":null,\"messageHeading\":\"[Heading]A notification has arrived. You can continue the conversation after viewing the notification.\",\"imageUrl\":null,\"tableLabel\":null,\"enableLink\":false,\"message\":\"[message]A notification has arrived. You can continue the conversation after viewing the notification.\",\"fields\":[],\"table_name\":null,\"url\":\"http://192.168.1.9:8080/null.do?sys_id=null\"}"
        }
      ],
      "completed": true,
      "score": 1
    }
    仮想エージェント API は、画像カード通知用に次の JSON の例を送信します:
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Done",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "OutputCard",
          "group": "DefaultOutputCard",
          "templateName": "Notification",
          "data": "{\"sys_id\":null,\"recordDisplayValue\":null,\"messageHeading\":\"[Heading]A notification has arrived. You can continue the conversation after viewing the notification.\",\"imageUrl\":\"http://xxxxxx.service-now.com/2b2d0d2653a13010ff59ddeeff7b120d.iix\",\"tableLabel\":null,\"enableLink\":false,\"message\":\"[message]A notification has arrived. You can continue the conversation after viewing the notification.\",\"fields\":[],\"table_name\":null,\"url\":\"http://192.168.1.9:8080/null.do?sys_id=null\"}"
        }
      ],
      "completed": true,
      "score": 1
    }
    仮想エージェント API は、レコードカード通知用に次の JSON の例を送信します:
    {
      "requestId": "asd2423-wrr434-weruyt-1234567",
      "clientSessionId": "",
      "nowSessionId": "",
      "message": {
        "text": "Done",
        "typed": false,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "body": [
        {
          "uiType": "OutputCard",
          "group": "DefaultOutputCard",
          "templateName": "Notification",
          "data": "{\"sys_id\":\"552c48888c033300964f4932b03eb092\",\"recordDisplayValue\":\"INC0010112\",\"messageHeading\":\"[Heading]A notification has arrived. You can continue the conversation after viewing the notification.\",\"imageUrl\":null,\"tableLabel\":\"Incident\",\"enableLink\":true,\"message\":\"[message]A notification has arrived. You can continue the conversation after viewing the notification.\",\"fields\":[{\"fieldLabel\":\"Number\",\"fieldValue\":\"INC0010112\"},{\"fieldLabel\":\"Short description\",\"fieldValue\":\"Assessment : ATF Assessor\"}],\"table_name\":\"incident\",\"url\":\"http://192.168.1.9:8080/incident.do?sys_id=552c48888c033300964f4932b03eb092\"}"
        }
      ],
      "completed": true,
      "score": 1
    }
    ボット間チャネルの通知はデフォルトで無効になっています。これらを有効にするには、次の操作を実行します。
    1. [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
    2. ボット間レコードを開きます。

      プロンプトが表示されたら、レコードの編集を有効にします。

    3. [通知を有効にします] チェック ボックスをオンにします。
    4. [更新] をクリックします。

    アドミニストレーターは、com.glide.cs.per_notification_user_limit プロパティを変更することで、通知ごとの受信者数を制限できます。デフォルト値は 1,000 です。

    トピック名を使用したトピックの切り替え

    トピック ID またはトピックインテント ID を使用してトピックを切り替えるだけでなく、トピックまたはトピックインテント名を使用することもできます。トピック ID またはトピック名のいずれかのみを送信することをお勧めします。現在、いずれかが正しくない場合、またはボットが指定されたトピックに既に存在する場合、仮想エージェントは応答を送信しません。使用法は、使用しているモードによって次のように異なります。
    • NLU トピックディスカバリー:トピックインテント名または ID を使用します。
    • キーワードトピックディスカバリー:トピック名または ID を使用します。

    プライマリボットは、トピック名とともに SWITCH アクションを送信して、特定のトピックに直接切り替えることができます。

    メッセージペイロードの例:
    {​ 
       "requestId": "xxxx-xxxx-xxxx-xxxx",
       "clientSessionId": "xxx-xxx-xxx-xxx",
       "action":"SWITCH",
       "topic":{
    ​      "name": "Topic Name"​
       },​
       "userId": "beth"​  
    } 

    入力インジケーターのサポート

    ユーザーおよびライブエージェントの入力インジケーターを有効にすることができます。現在、入力インジケーターは次のように表示されます。
    • ユーザーが入力しているときにエージェントに表示される
    • ボットが応答を準備しているときにユーザーに表示される
    入力インジケーターが有効な場合、仮想エージェント API は StartTypingIndicator および EndTypingIndicator アクションを応答ペイロードで送信します。例:
    {​ 
            "uiType":"ActionMsg",​ 
            "actionType":"StartTypingIndicator"​ 
    } ​ 
    ユーザー入力インジケーターをライブエージェントに送信するには、クライアントが TYPING アクションを送信する必要があります。ユーザーが入力を終えたら、クライアントは VIEWING アクションを送信する必要があります。​例:
    {​ 
        "requestId": "xxxxxx-xxxxxx-xxxx-xxxx-xxxxxxxxxx",​ 
        "clientSessionId": "xxxxxxxx-xxxx",​ 
        "action": "TYPING/VIEWING",​ 
        "userId": "able.tuter",​ 
        "emailId": "abel.tuter@example.com",​ 
        "timezone":"Asia/Kolkata"​ 
    }​ 
    入力インジケーターを有効にするには、次の手順に従います。
    1. [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
    2. [ボット間 (Bot to Bot)] レコードを選択します。
    3. [入力インジケーターをサポート] チェックボックスをオンにします。
    4. [更新] をクリックします。