ストアリリース 2.0.x で利用可能な仮想エージェント API 機能
仮想エージェント 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_devicetype、liveagent_requester_session_language、liveagent_topic、topic、live_agent_only、liveagent_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/Kolkata、America/New_York などです。
- 日時 24 時間形式。例: YYYY-MM-DD HH:MM:SS
- 仮想エージェント API は、設定するタイムゾーンが [sys_user] テーブルに格納されている値と異なる場合でも、プライマリボットによって指定されたタイムゾーンを使用します。
- ユーザーのタイムゾーンを設定するには、SET_TIMEZONE アクションを送信します。タイムゾーン名が有効でない場合、タイムゾーン値はデフォルトで UTC 時間に設定されます。2021-02-16 20:13:13 など。
ノードスキップのサポート
トピックでそのように設定されている場合、仮想エージェント API はノードのスキップをサポートします。たとえば、 仮想エージェントデザイナー では、ユーザー入力コントロールをスキップ可能として指定できます プロパティシートの領域。
ノードをスキップ可能として定義する詳細については、「仮想エージェントデザイナーユーザー入力コントロール」を参照してください。
{
"requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId": "835607",
"token": "snow",
"message": {
"text": "_skip_",
"typed": false
},
"emailId": "beth.anglin@example.com",
"userId": "beth.anglin"
}同期ハンドシェイクのサポート
- エージェントチャット
- 通知
- 入力インジケーター
- エージェントチャットからボット間チャネルを除外します。
- [すべて] に移動してから、フィルターに「sys_properties.list」と入力します。
- com.glide.cs.exclude.liveagent.support システムプロパティを選択して開きます。
- 「Bot To Bot」を [値] フィールドに追加します。
図 : 2. エージェントチャットからのボット間チャネルの除外 - [更新] をクリックします。
- [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
- [ボット間 (Bot to Bot)] レコードを選択します。
- 無効にするには、[通知の有効化] チェックボックスをオフにします。
- 無効にするには、[入力インジケーターをサポート] チェックボックスをオフにします。
- [同期] チェックボックスをオンにします。
図 : 3. 同期サポートを有効にしたボット間チャネル 注:[同期] フィールドが非表示の場合は、フォームレイアウトを設定して表示することができます。 - [更新] をクリックします。
通知サポート
- 簡易:テキストのみの通知。簡易通知は、到着するとすぐに配信されます。
- 画像カード:サーバーにアップロードされた画像、または URL で指定された画像。
- レコードカード:テーブル内のレコードから指定された列。
- アクション可能:ユーザーに特定のアクションを実行する機会を提供します。アクション可能な通知がキューに格納されます。ユーザーは Show Notification コマンドを送信することで、オンデマンドでそれらを取得できます。
詳細については、「仮想エージェント通知の設定」を参照してください。
{
"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
}{
"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
}{
"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
}- [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
- ボット間レコードを開きます。
プロンプトが表示されたら、レコードの編集を有効にします。
- [通知を有効にします] チェック ボックスをオンにします。
- [更新] をクリックします。
アドミニストレーターは、com.glide.cs.per_notification_user_limit プロパティを変更することで、通知ごとの受信者数を制限できます。デフォルト値は 1,000 です。
トピック名を使用したトピックの切り替え
- NLU トピックディスカバリー:トピックインテント名または ID を使用します。
- キーワードトピックディスカバリー:トピック名または ID を使用します。
プライマリボットは、トピック名とともに SWITCH アクションを送信して、特定のトピックに直接切り替えることができます。
{
"requestId": "xxxx-xxxx-xxxx-xxxx",
"clientSessionId": "xxx-xxx-xxx-xxx",
"action":"SWITCH",
"topic":{
"name": "Topic Name"
},
"userId": "beth"
} 入力インジケーターのサポート
- ユーザーが入力しているときにエージェントに表示される
- ボットが応答を準備しているときにユーザーに表示される
{
"uiType":"ActionMsg",
"actionType":"StartTypingIndicator"
} {
"requestId": "xxxxxx-xxxxxx-xxxx-xxxx-xxxxxxxxxx",
"clientSessionId": "xxxxxxxx-xxxx",
"action": "TYPING/VIEWING",
"userId": "able.tuter",
"emailId": "abel.tuter@example.com",
"timezone":"Asia/Kolkata"
} - [すべて] に移動し、ナビゲーションフィルターに「sys_cs_channel.list」と入力します。
- [ボット間 (Bot to Bot)] レコードを選択します。
- [入力インジケーターをサポート] チェックボックスをオンにします。
- [更新] をクリックします。