コンポーネント・テンプレート

様々なダイアログ・フロー・コンポーネント用に提供されているテンプレートの説明を次に示します。

メッセージを送信

これは、ユーザーに1つ以上のメッセージを表示するように設計された非常に単純なコンポーネントです。ユーザー入力を待機したり応答したりしません。

メッセージの送信コンポーネントには、次のプロパティがあります。

プロパティ 説明
メッセージ コンポーネントがコールされたときにユーザーに表示されるメッセージ。

質問の依頼

このコンポーネントは、ユーザー入力を要求し、その入力を格納して、他のコンポーネントで使用または処理できるように設計されています。

「質問をする」コンポーネントには、次のプロパティがあります。

名前 説明
質問 ユーザーに表示されるテキスト。
変数 質問に対するユーザーの回答を保持する変数。

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
cancel 有効な値を指定しようとする最大試行回数に達しました。
system.textReceived ユーザーがテキストを入力しました(たとえば、アクション・ボタンの選択)。

コンポジット・バッグの解決

このコンポーネントは、コンポジット・バッグ・エンティティの解決に使用できるエンティティの解決コンポーネントの簡易バージョンです。

このコンポーネントを使用するには、コンポジット・バッグ・エンティティとそのコンポジット・バッグのスキル変数が必要です。

コンポジット・バッグの解決コンポーネントには、次のプロパティがあります。

名前 説明
コンポジット・バッグ・エンティティ変数 ユーザーに表示されるテキスト。

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
cancel 有効な値を指定しようとする最大試行回数に達しました。
disambiguate どのエンティティ値が一致するかを判断するには、ユーザー入力を明確にする必要があります(ある場合)。
match ユーザー入力が有効なエンティティ値と一致します。

ユーザー・メッセージ・テンプレート

「ユーザー・メッセージング」カテゴリのテンプレートは、メッセージおよびプロンプトを表示し、ユーザー入力を受け入れるように設計されています。

「エンティティの解決」および「ユーザー・フィードバック」テンプレートを除き、これらのテンプレートはすべて共通レスポンス・コンポーネントに基づいており、特定の目的にあわせて調整されています。

共通応答コンポーネント・テンプレート

「ユーザー・メッセージング」カテゴリのテンプレートの大部分は、共通レスポンス・コンポーネントに基づいています。このコンポーネントでは、コンポーネント・プロパティおよびメタデータを使用して、テキスト、アクション・ボタン、イメージおよびカードを含む特殊なユーザー・インタフェースを作成できます。

「マルチメディア・メッセージの表示」サブカテゴリのテンプレートなど、多くの場合は、共通レスポンス・コンポーネントの「メタデータ」プロパティに主な違いがあります。

その他の場合(「表およびフォームの表示」サブカテゴリなど)、テンプレートは、変数の設定コンポーネントに先行する共通レスポンス・コンポーネントで構成されます。

「チャネル固有の機能」サブカテゴリには、SlackおよびMicrosoft Teamsチャネルで使用可能な拡張機能の使用例があります。

共通応答コンポーネント・テンプレートのプロパティ

「エンティティの解決」および「ユーザー・フィードバック」コンポーネントを除き、「ユーザー・メッセージング」カテゴリのテンプレートは、「共通レスポンス」コンポーネントに基づいています。そのため、それぞれは次の表(またはそのサブセット)のプロパティを使用します。

名前 説明
メタデータ このコンポーネントによって作成されるチャット・レスポンスは、メッセージ固有のResponseItemsメタデータによって駆動されます。「共通のレスポンス・コンポーネントのmetadataプロパティ」を参照してください。
プロセス・ユーザー・メッセージ

ユーザーがテキストを入力するかボタンをタップした後に状態に戻るようダイアログ・エンジンに指示するには、このプロパティをTrueに設定します。ユーザー入力が必要ではない(または予期されない)場合は、このプロパティをFalseに設定します。

ロケーションを設定するときは、このプロパティをTrueに設定します。

ターンを維持

ダイアログ・フローのスキルの制御を放棄(False)または保持(True)するためのブール値。ユーザーからの介入を受け入れずに一連のスキル・メッセージを中断せずに出力する場合は、Trueに設定します。

このプロパティは、「ユーザー・メッセージの処理」プロパティをFalseに設定した場合にのみ適用されます。

変数

この変数には、ユーザーがボタンのタップではなくフリー・テキストの入力によって応答したときに移入される変数の名前が保持されます。ボタンのペイロードによってどの変数の値が設定されるかが決まるため、ユーザーがボタンをタップした場合は、このプロパティは無視されます。ダイアログ・エンジンがこの状態になったときにvariableプロパティがすでに設定されていた場合、状態はスキップされます。

コンポジット・バッグ・エンティティの場合は、コンポジット・バッグ・エンティティ変数を参照します。ユーザーは、バッグ内の個別のエンティティ値を求められます。すべてのエンティティ値が設定されると、コンポーネントは次の状態に遷移します。

プロンプトの最大数

コンポーネントは、ユーザーが入力したテキストから、「変数」プロパティに対して指定した変数値への移入の前に、変数タイプに対して値が検証されます。これは、エンティティ・タイプの検証であるか、またはプリミティブ型の場合には、プリミティブ型に強制変換できる値です。

コンポーネントで値を検証できない場合、ダイアログ・エンジンはメッセージ・テキストおよびオプションを再度送信します。(このメッセージは、検証の失敗を反映するように変更できます。)ユーザーが有効な値を入力できないことが続いて無限ループになることを避けるには、このプロパティを使用して、ユーザーに与えられる試行回数に制限を設定します。ユーザーがこの割当てを超えると、コンポーネントはcancelアクションに遷移します。ユーザー・プロンプト数の制限を参照してください

コンポジット・バッグ・エンティティの作成の説明に従って、「最大ユーザー入力試行回数」オプションを設定すると、コンポジット・バッグ・エンティティ内の個々のエンティティはこの設定をオーバーライドできます。

複数値 エンティティ変数が、一致する値の配列を格納できるか、単一の一致値のみを格納できるかを示します。
ポリシーの取消 cancel遷移のタイミングを決定します:
  • 即時 - バッグ・アイテムの「最大ユーザー入力試行数」に設定された値に達した直後。この値が設定されていない場合、コンポーネント全体の「最大プロンプト数」値に達したときに、コンポーネントによってこの遷移が起動されます。

    これはデフォルト値です。

  • 最後のエンティティ— バッグ内の最後のエンティティが値と一致したとき。

エンティティ・イベント・ハンドラを項目レベルまたはイベント・レベルのmaxPromptsReachedハンドラに登録している場合、このプロパティは無視されます。
エンティティ完全一致の使用 Trueに設定すると、カスタム・エンティティ値がJSONオブジェクトとして格納されます(組込みエンティティ値のようになります)。これで、valueprimaryLanguageValueoriginalStringなどのプロパティにアクセスするための式を作成できます。これは、現在複数言語である(またはいずれ複数言語になる可能性がある)スキルにとって特に重要です。
共通レスポンス・コンポーネントの遷移
共通レスポンス・コンポーネントでは、次の表に示す遷移を使用します。ユーザー・メッセージ・コンポーネントのメッセージ処理では、これらの遷移がどのようにトリガーされます。
遷移 説明
cancel maxAttemptsプロパティによって設定された割当て済試行またはフローのリダイレクトをユーザーが超える場合にトリガーされます。
textReceived ユーザーがアクション・ボタンまたはリンクをタップするかわりにテキストまたは絵文字を送信したときにトリガーされます。
system.nonSequitur.onResume この遷移アクションを使用して、非シーケンサを処理した後で会話がその状態に戻ったときに、状態に対する代替ナビゲーションを提供します。これを使用すると、コンポーネントの状態をリフレッシュしたり、状態をバイパスしたり、状態によって表示される情報を再問合せしたりできます。特に、この遷移は、状態が新規データに依存する場合に役立ちます(つまり、ユーザーが戻った場合は常に再問合せする必要があります)。
system.outOfOrderMessage 予期しないユーザー動作を回避するために、これを設定します。具体的には、ユーザーが現在のメッセージ内のアクション・アイテムをタップせず、かわりにチャット・セッション内の古いメッセージに属するアクションをタップするときです。
コンポジット・バッグ遷移
共通レスポンス・コンポーネントは、ユーザー入力とcancelPolicyプロパティの構成で一致した値に基づいて、matchおよびcancelアクションをトリガーします。
アクション 説明 必須?
match コンポーネントは、バッグ内の少なくとも1つのエンティティがユーザー入力と一致した場合に、指定された状態に移動するためにこのアクションをトリガーします。 いいえ
cancel コンポーネントは、cancelPolicyプロパティの設定に基づいて、このアクションをトリガーして指定された状態にナビゲートします。 いいえ

エンティティの解決

プロパティ 説明
変数 このコンポーネントが移入するコンポジット・バッグ・エンティティ・ダイアログ・フロー変数を参照します。コンポジット・エンティティ変数のすべての子エンティティにすでに値がある場合、ダイアログ・フローはユーザーにメッセージを送信せずに次の状態に遷移します。
プロンプトの最大数 子エンティティ・タイプに一致する有効な値を入力するためにユーザーに割り当てられる試行回数を指定します。最初の子エンティティについて最大試行回数を超えた場合、このプロパティは0にリセットされ、ボットは次の子エンティティを要求するプロンプトを出力します。コンポジット・バッグ・エンティティの作成で説明されているように、「最大ユーザー入力試行回数」オプションが設定されている場合は、コンポジット・バッグ内の個々のエンティティはこの設定をオーバーライドできます。
複数値 エンティティ変数が、一致する値の配列を格納できるか、単一の一致値のみを格納できるかを示します。
エンティティ完全一致の使用 Trueに設定すると、カスタム・エンティティ値がJSONオブジェクトとして格納されます(組込みエンティティ値のようになります)。これで、valueprimaryLanguageValueoriginalStringなどのプロパティにアクセスするための式を作成できます。これは、現在複数言語である(またはいずれ複数言語になる可能性がある)スキルにとって特に重要です。
確認 ユーザーに組込みエンティティの入力を求めるテキスト。
明確化プロンプト 前のユーザー入力が組込みエンティティの複数の値と一致した場合のあいまい性の解除をユーザーに求めるテキスト。「複数値」プロパティがtrueに解決された場合、このプロパティは無視されます。
ヘッダー・テキスト コンポーネントがユーザーにバッグ内の次のアイテムを要求する前に表示されるメッセージ。このヘッダーを使用して、バッグ内の一致した(または更新された)前のエンティティに関するフィードバックを提供できます。例:
<#list system.entityToResolve.value.updatedEntities>I have updated <#items as ent>${ent.description}<#sep> and </#items>. </#list><#list system.entityToResolve.value.outOfOrderMatches>I got <#items as ent>${ent.description}<#sep> and </#items>. </#list>
フッター・テキスト テキストのみのチャネルでの出力を拡張します。たとえば、FreeMarker式を使用して、テキストのみのチャネルのフッター・テキストを条件化できます。
ポリシーの取消 cancel遷移のタイミングを決定します:
  • 即時 - バッグ・アイテムの「最大ユーザー入力試行数」に設定された値に達した直後。この値が設定されていない場合、コンポーネント全体の「最大プロンプト数」値に達したときに、コンポーネントによってこの遷移が起動されます。

    これはデフォルト値です。

  • 最後のエンティティ— バッグ内の最後のエンティティが値と一致したとき。

エンティティ・イベント・ハンドラを項目レベルまたはイベント・レベルのmaxPromptsReachedハンドラに登録している場合、このプロパティは無視されます。

ユーザー・フィードバック

ユーザー・フィードバック・コンポーネントを使用すると、トランザクション・フローの完了後に評価スケールをユーザーに提示することで、インサイトのフィードバック・データを収集できます。ユーザー・フィードバック・コンポーネントでは順不同の入力が許可されていないため、ユーザーは自分の評点を変更できません。21.10 SDK以降を使用している場合、このコンポーネントは水平星評価システムを出力します。

このコンポーネントの動作はコンポーネント・プロパティを使用して変更できますが、SDK (バージョン21.10以降)を使用するときにルック・アンド・フィールを変更できます。たとえば、フィードバック・ボタンに使用されるデフォルトの星アイコンを別のアイコンに置き換えることができます。

名前 説明
最大評価 ユーザーが送信できる最大評価。デフォルトでは、最大値は5です。この値は下方に調整できます。
しきい値 ブール(trueに設定すると、評価がthreshold値以下の場合にユーザーがテキスト・フィードバックを送信できるようになります)。デフォルトでは、このプロパティはfalse (有効なフィードバックなし)に設定されます。
テキスト・フィードバックの有効化 aboveアクションとbelowアクション間の遷移を評価するための値。デフォルトでは、正のフィードバックと負のフィードバックのしきい値は、デフォルトのmaxRating値(5)に対して2に設定されます。
フッター・テキスト フィードバック・ダイアログの下部に表示されるテキスト。

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
above ユーザー入力が「しきい値」値を上回る有効な値である場合に設定します。
below ユーザー入力が「しきい値」の値以下である有効な値の場合に設定します。)。
cancel ユーザーが「スキップ」をクリックして評価を却下するときに設定します。

遷移状態によって出力されるメッセージには、次のシステム変数を使用できます。

  • system.userFeedbackRating– ユーザーの評価を返します。
  • system.userFeedbackTextenableTextFeedbacktrueに設定されている場合、評価がthreshold値を下回ったときにスキルがフィードバックを要求できます。system.userFeedbackTextはユーザーの入力(${system.userFeedbackText.value})を返します。

コンポーネントの標準表示テキストは、リソース・バンドル・エントリに格納されます。これらのバンドル・エントリにはデフォルトのテキストがありますが、カスタマイズできます。このコンポーネントのエントリは次のとおりです。

リソース・バンドル・キー 説明
フィードバック- feedbackPrompt 会話の評価を選択するためにユーザーに表示されるプロンプト。
フィードバック- invalidValuePrompt ユーザーが評点に無効な値を入力した後に、会話の評点を選択するようにユーザーに表示されるプロンプト。
フィードバック- ratingButtonLabels 評価ボタンに表示されるラベルのカンマ区切りリスト。
フィードバック- skipLabel フィードバックをスキップするためのボタンのラベル。
フィードバック- textFeedbackPrompt 「しきい値」プロパティ値を下回る評価を入力するときに、テキスト・フィードバックの入力を求めるユーザーに表示されるプロンプト。
フィードバック- thankYouPrompt ユーザーが選択した遷移がダイアログ・フローで定義されていない場合にユーザーに表示されるプロンプト。

変数テンプレート

変数のコピー

変数間で値をコピーします。

プロパティ 説明
ソース変数 値をコピーする変数の名前。
宛先変数 ソース変数の値がコピーされる変数。

これらのプロパティの定義は、相互にミラー化する必要はありません。宛先変数とソース変数の両方を変数のリストとして定義できますが、ソース変数を単一の変数で定義し、宛先をリストとして定義することもできます。追加の宛先変数を設定すると、指定した続行ソース値の変数値が継承されます。

変数のリセット

このコンポーネントは、指定された変数の値をnullにリセットします。

プロパティ 説明
リセットする変数 リセットする必要がある変数。

変数を設定

変数の設定コンポーネントは、事前定義済の変数の値を設定します。

プロパティ 説明
変数 変数の名前
ターゲット値。リテラルとして、または別の変数を参照するFreeMarker式として定義できます。値は、宣言された変数のタイプと一致する必要があります。

カスタム・メトリックの設定

「ディメンション」をクリックして、ディメンションおよびディメンション値の名前と値のペアを追加します。
属性 説明
name カスタム・メトリック・レポートに表示されるディメンションの名前(50文字以下)。文字、数字およびスペースのみを使用してください。特殊文字は使用しないでください。
value ディメンション値は、FreeMarker式またはテキスト文字列として定義できます。

言語テンプレート

言語の検出

言語の検出コンポーネントは、翻訳サービスを使用して、ユーザー入力からユーザーの言語を検出します。

ノート

このコンポーネントは、翻訳サービスを使用するスキルを作成した場合(ネイティブ・サポート言語モードではない場合)にのみ使用できます。

このコンポーネントは、ロケール文字列を使用してprofile.languageTagという名前の変数を設定します。この変数を値式(${profile.languageTag})で使用すると、現在の言語で変数を設定できます。

ノート

profile.languageTagは、メッセンジャ・クライアントによって設定されるprofile.locale変数よりも優先されます。
プロパティ 説明
既存のプロファイル言語タグ 「True」に設定すると、スキルはデジタル・アシスタントによってすぐに検出された言語を使用します。(そうでない場合は、言語が(再)検出される前に、スキルではメッセージやプロンプトが英語で提示される可能性があります。)このプロパティは、翻訳サービスを使用するデジタル・アシスタントにあるスキルにのみ適用されます。

入力の翻訳

このコンポーネントは、指定されたテキストをスキルの翻訳サービスに送信し、英語翻訳を格納します。これは、翻訳サービスで構成されているスキルに依存します。翻訳サービスは、ユーザーの入力から言語を認識し、英語に翻訳します。このコンポーネントは、ネイティブ・サポート言語モードを使用するスキルでは機能しません。

このコンポーネントは、生の入力テキストを翻訳する前に処理する必要がある場合に使用します。たとえば、翻訳サービスに送信する前に、ユーザー入力から個人データを削除できます。

このコンポーネントは、ユーザーの言語をすでに検出している翻訳サービスを利用するため、このコンポーネントは言語を検出または設定する状態に従う必要はありません。

プロパティ 説明
英語に翻訳するテキスト値を指定するFreeMarker式。
変数 テキストの英語翻訳を保持する変数。この値が設定されていない場合、コンポーネントではユーザーの以前の入力が使用されます。

出力の変換

出力の翻訳コンポーネントを使用すると、指定したテキストをユーザーの言語に翻訳できます。このコンポーネントは、「式」プロパティに対して定義された値を取得します。スキルの翻訳サービスを使用して、テキストを言語の検出コンポーネントまたはprofile.locale変数によって検出された言語に翻訳し、「変数」プロパティで指定された変数に格納します。

このコンポーネントは、ネイティブ・サポート言語モードを使用するスキルでは機能しません。

プロパティ 説明
翻訳が必要な値を持つ変数を参照するFreeMarker式。
変数 翻訳済テキストを保持する変数。

エンティティの照合

「エンティティの照合」コンポーネントは、「ソース変数」プロパティに保持されているテキストからエンティティ情報を抽出するためにインテント・エンジンを呼び出します。変数のエンティティ・タイプに一致が存在する場合、「変数」プロパティで指定された変数にこのエンティティ値が設定されます。

プロパティ 説明
ソース変数 入力値を保持する変数。
変数 抽出されたエンティティの値で設定される変数の名前。この変数の値は、FreeMarker式を使用して特定のエンティティを抽出するために、後続の変数設定コンポーネントで使用できます。たとえば、EMAILエンティティ値を抽出するには: ${userInputEntities.value.entityMatches['EMAIL'][0]}

このコンポーネントには、matchおよびnomatchという2つの事前定義済の遷移もあります。

遷移 説明
match エンティティが一致した場合に、ある状態に移行することをダイアログ・エンジンに指定します。
nomatch エンティティが一致しない場合に、ある状態に移行するようにダイアログ・エンジンを定義します。
ノート

「エンティティの照合」コンポーネントは、単一の値のみを解決します。

セキュリティーテンプレート

OAuthアカウント・リンク

このコンポーネントを使用して、LinkedIn、Twitter、Google、Microsoftなど、認可コード権限付与フローによって保護されているサービスの認可コードを取得します。スキルのカスタム・コンポーネントは、認可コードをアクセス・トークンと交換でき、これを使用して終了サービスを起動します。

最初に、コンポーネントによってアイデンティティ・プロバイダのログイン・ページがユーザーに表示されます。ログインの成功後、コンポーネントによって認可コードが変数で返され、それを使用して認可コードをカスタム・コンポーネントに渡します。カスタム・コンポーネントAPIは、OAuthユーザー・アクセス・トークンの認可コード、クライアントIDおよびクライアント・シークレットを交換する必要があります。

認可を起動する前に必要な状態ごとに、その「認可が必要」設定をTrueに設定します。これを設定する手順については、User Authorizationを参照してください。

プロパティ 説明
変数 認可コードを格納するダイアログ・フロー変数を指定します。文字列またはサポートされている別の変数タイプとして宣言できます。ユーザー変数にすることもできます。
認可URL ログインURL。authorizeURLプロパティでは、このURLの構成方法について説明しています。
フッター・テキスト ログイン・オプションおよび取消オプションの下にテキストを追加することで、ログイン・ダイアログを拡張します。FreeMarker式を使用して、テキストのみのチャネルのフッター・テキストを条件化できます。
キャンセル・ラベルの表示 (オプション)「Cancel」ボタンを表示するかどうかを指定できます。デフォルトでは、このプロパティはTrueに設定されています。つまり、「Cancel」ボタンが表示されます。SMSチャネルなど、場合によってはこのボタンを表示しないこともあります。そのような動作は、次のような式を使用して構成できます:
${(system.message.channelConversation.channelType=='twilio')?then('false','true')}

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
fail ユーザーが取消しボタンをクリックしました。
pass 認可コードが正常に取得されました。
textReceived ユーザーが、取消しボタンをクリックするか正常に認証するかわりに、テキストを入力しました。

コンポーネントの標準表示テキストは、リソース・バンドル・エントリに格納されます。これらのバンドル・エントリにはデフォルトのテキストがありますが、カスタマイズできます。このコンポーネントのエントリは次のとおりです。

リソース・バンドル・キー 説明
OAuthAccountLink - cancelLabel 認証ダイアログを呼び出さずに状態を終了するためにユーザーがクリックできるボタンのラベルをオーバーライドする場合に使用します。デフォルトのラベルはCancelです。
OAuthAccountLink - linkLabel 認証ダイアログを呼び出すためにユーザーがクリックできるボタンのラベルをオーバーライドする場合に使用します。デフォルトのラベルはLog Inです。
OAuthAccountLink - プロンプト ユーザーにサインインを求めるために使用する文字列。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

ヒント:

構成バンドルの「その他 - oauthCancelPrompt」および「その他 - oauthSuccessPrompt」のメッセージも変更できます。

ダイアログ・エンジンがこのコンポーネントを検出すると、スキル・ボットが2つのリンク(LoginCancel)を使用してユーザーに入力を求めます。

このコンポーネントから遷移する方法はいくつかあります:

  • ユーザーが取消しボタンをクリックすると、コンポーネントはfailアクションによって指定された状態に遷移します。

  • ユーザーはボタンをクリックしませんが、かわりにテキストを入力します。コンポーネントはtextReceivedアクションによって指定された状態に遷移します。

  • ユーザーがログイン・リンクをクリックすると、次の例に示すように、チャネルによってアイデンティティ・プロバイダのログイン・ページまたは認証ダイアログがWebビューとしてレンダリングされます。認可が成功すると、コンポーネントはpassアクションによって指定された状態(または、passアクションがない場合は次の状態)に遷移します。これは通常、認可コードをアクセス・トークンと交換するカスタム・コンポーネントをコールします。

テスト・ウィンドウでWebビューがレンダリングされない場合は、リンク・テキストを切り取ってブラウザに貼り付けてください。

OAuth 2.0アカウント・リンク

このコンポーネントを使用して、OCI IAM、Oracle Access Manager (OAM)、Microsoft IDプラットフォームまたはGoogle OAuth 2.0認可によって保護されているリソース用のOAuth2ユーザー・アクセス・トークン(権限付与タイプが認可コード)を取得します。このコンポーネントは、3-legged OAuth2フローのすべてのステップを完了し、OAuth2アクセス・トークンを返します。

認可を起動する前に必要な状態ごとに、その「認可が必要」設定をTrueに設定します。これを設定する手順については、User Authorizationを参照してください。

クライアント・リソースにアクセスするために権限付与タイプがクライアント資格証明のアクセス・トークンを取得する必要がある場合は、OAuth 2.0クライアントを参照してください。

このコンポーネントをスキルで使用する前に、次のタスクを実行する必要があります:

  1. まだ登録されていない場合は、アイデンティティ・プロバイダ登録の説明に従って、クライアントをアイデンティティ・プロバイダに登録します。
  2. 認証サービスの説明に従って、アイデンティティ・プロバイダの認証サービスを追加します。

一部のアイデンティティ・プロバイダは、リフレッシュ・トークンを発行します。このコンポーネントを使用すると、デジタル・アシスタントにより、認証サービスに対して指定されている保持期間の間、リフレッシュ・トークンが格納されます。デジタル・アシスタント・バックエンドはリフレッシュ・トークンを使用して(使用可能な場合)、ユーザーが再度サインインしなくても新しいアクセス・トークンを取得できます。

プロパティ 説明
認証サービス OAuth2アイデンティティ・プロバイダの認証サービスUIで作成した認可コード・サービスの名前。
認証済ユーザー変数名 認証済ユーザー名(アイデンティティ・プロバイダに既知の名前)を格納する変数を指定します。変数がユーザー・スコープの場合は、スキル間で共有できます。
アクセス・トークン変数名 アクセス・トークンを格納する変数を指定します。変数がユーザー・スコープの場合は、スキル間で共有できます。
マルチスコープ・アクセス・トークン変数名 将来のマルチスコープアクセストークンのサポートのために予約されたフィールド。
フッター・テキスト ログイン・オプションおよび取消オプションの下にテキストを追加することで、ログイン・ダイアログを拡張します。FreeMarker式を使用して、テキストのみのチャネルのフッター・テキストを条件化できます。
取消オプションの表示 (オプション)「Cancel」ボタンを表示するかどうかを指定できます。デフォルトでは、このオプションはTrueに設定されています。つまり、「Cancel」ボタンが表示されます。SMSチャネルなど、場合によってはこのボタンを表示しないこともあります。そのような動作は、次のような式を使用して構成できます:
${(system.message.channelConversation.channelType=='twilio')?then('false','true')}
関連付けの承諾が必要 スキルがユーザーに通知コンポーネントを使用し、イベント・チャネルがTwilioまたはSlackのいずれかである場合に、セッションおよびチャネル間でユーザー・アイデンティティを保持する場合は、これを「True」に設定します。このプロパティでは、統合ユーザー識別子を使用して、サポートされているチャネル・アカウントをOAuth認証済OCI IAMアイデンティティ・ドメイン・アカウントにリンクできます。
ユーザー・プロファイルの更新 アイデンティティ・プロバイダがOCI IAMアイデンティティ・ドメインで、セッション中にIAMからユーザーのプロファイルを格納する場合は、このプロパティをTrueに設定します。ユーザーが認証を要求されたときに、このプロパティがtrueに設定されている場合、コンポーネントはアイデンティティ・プロバイダからユーザー・プロファイル・データをフェッチし、結果をuserProfile.<authorization service>マップに設定しようとします。Store User Profile for the Duration of the Sessionを参照してください。
シングル・サインオンの有効化 (Microsoft Teamsチャネルのみに適用されます) Microsoft Teamsシングル・サインオンを設定した場合、これをTrueに設定すると、Teamsにすでにサインインしているユーザーが、個別にスキルにサインインしなくても済むようになります。
リダイレクトURL 認証コードを受信するリダイレクトURL。
ノート

「統合ユーザーとの関連付け」プロパティは使用できなくなりました。サポートされているチャネルの統合ユーザー・アイデンティティへのリンクを有効にする場合は、インスタンス全体に対して有効にできます。チャネル・アカウント・リンクの有効化を参照してください。

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
fail ユーザーが取消しボタンをクリックしました。
pass アクセス・トークンが正常に取得されました。
textReceived ユーザーが、取消しボタンをクリックするか正常に認証するかわりに、テキストを入力しました。

コンポーネントの標準表示テキストは、リソース・バンドル・エントリに格納されます。これらのバンドル・エントリにはデフォルトのテキストがありますが、カスタマイズできます。このコンポーネントのエントリは次のとおりです。

リソース・バンドル・キー 説明
OAuth2AccountLink - cancelLabel 認証ダイアログを呼び出せずに状態を終了するためにユーザーがクリックできるボタンのラベルをオーバーライドする場合に使用します。デフォルトのラベルはCancelです。
OAuth2AccountLink - linkLabel 認証ダイアログを呼び出すためにユーザーがクリックできるボタンのラベルをオーバーライドする場合に使用します。デフォルトのラベルはLog Inです。
OAuthAccount2Link - プロンプト ユーザーにサインインを求めるために使用する文字列。
OAuthAccount2Link - consentNeverFinalConfirmationNoLabel ユーザーがチャネル・アカウントを統一アイデンティティと永続的に関連付けないようにオプトアウトすることを確認するプロンプトの後に表示される「いいえ」ボタンのラベル。デフォルトはCancelです。
OAuthAccount2Link - consentNeverFinalConfirmationPrompt チャネル・アカウントが統合アイデンティティに関連付けられていることをオプトアウトすることをユーザーに確認するように求めるプロンプト。
OAuthAccount2Link - consentNeverFinalConfirmationYesLabe プロンプトの後に表示される「はい」ボタンのラベルで、ユーザーが自分のアカウントを完全に統合アイデンティティに関連付けないようにオプトアウトすることを確認します。デフォルトはConfirmです。
OAuthAccount2Link - consentNeverFinalPrompt アカウントが統合アイデンティティに関連付けられていることを完全にオプトアウトしたことをユーザーに確認するメッセージ。
OAuthAccount2Link - consentNeverLabel ユーザーがチャネル・アカウント・データを統合アイデンティティに関連付けるかどうかを確認するプロンプトの後に表示される「なし」ボタンのラベル。デフォルトはNever link this accountです。
OAuthAccount2Link - consentNotifyPrompt チャネル・アカウントが認証済ユーザー・アイデンティティに関連付けられていることをユーザーに通知するメッセージ。
OAuthAccount2Link - consentNotNowFinalPrompt チャネル・アカウント・データの統合アイデンティティへの関連付けを一時的に拒否したことをユーザーに確認するメッセージ。
OAuthAccount2Link - consentNotNowLabel ユーザーがチャネル・アカウント・データを統合アイデンティティに関連付けるかどうかを確認するプロンプトの後に表示される「Not Now」ボタンのラベル。デフォルト値はNot at this timeです。
OAuthAccount2Link - consentPrompt チャネル・アカウントを認証済ユーザー・アイデンティティに関連付けることに同意するかどうかを選択するようユーザーに求めるプロンプト。
OAuthAccount2Link - consentYesLabel ユーザーがチャネル・アカウント・データを統合アイデンティティに関連付けるかどうかを確認するプロンプトの後に表示される「はい」ボタンのラベル。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

ヒント:

構成バンドルの「その他 - oauthCancelPrompt」および「その他 - oauthSuccessPrompt」のメッセージも変更できます。

ダイアログ・エンジンがコンポーネントを検出すると、スキル・ボットによって「アクセス・トークンの取得」「取消」という2つのリンクがユーザーに表示されます(linkLabelcancelLabelを使用してリンク・テキストを変更できます)。


oauth2accountlinksignin1.pngの説明が続きます
図oauth2accountlinksignin1.pngの説明

アクセス・トークンを取得するリンクをユーザーがクリックした場合は、認証サービスで指定されたアイデンティティ・プロバイダのログイン・ページまたは認証ダイアログを表示します。ログインが成功すると、アクセス・トークンを取得し、accessTokenVariableNameおよびauthenticatedUserVariableNameで指定された変数の値を設定し、passアクションによって指定された状態(またはpassアクションがない場合は次の状態)に移行します。ユーザーが取り消した場合、ポストバック・アクションはfailに設定されます。ユーザーがテキストを入力した場合、textReceivedアクションを返します。


oauth2accountlinksignin2.pngの説明が続きます
図oauth2accountlinksignin2.pngの説明

前述のように、状態にrequiresAuthorizationを設定すると、ユーザーが認可されてから状態のコンポーネントを起動するようになります。ユーザーがまだ認可されていない場合は、ダイアログによって「ユーザーの認可」イベントが起動されます。

OAuth 2.0クライアント

このコンポーネントを使用して、権限付与タイプがクライアント資格証明のOAuth2アクセス・トークンを取得します。つまり、これを使用して、ユーザーの名前やパスワードではなく、クライアントの資格証明に基づいたアクセス・トークンを取得します。このコンポーネントを使用して、Oracle Identity Cloud ServiceまたはOracle Access Manager (OAM)によって保護されているクライアント・リソースへのアクセスを可能にするトークンを取得できます。

ユーザーのかわりにリソースにアクセスする必要がある場合は、OAuth 2.0アカウント・リンクおよびOAuthアカウント・リンクを参照してください。

このコンポーネントをスキルで使用する前に、次のタスクを実行する必要があります:

  1. まだ登録されていない場合は、アイデンティティ・プロバイダ登録の説明に従って、クライアントをアイデンティティ・プロバイダに登録します。
  2. 認証サービスの説明に従って、アイデンティティ・プロバイダのクライアント資格証明認証サービスを追加します。
プロパティ 説明
認証サービス OAuth2アイデンティティ・プロバイダの認証サービスUIで作成したクライアント資格証明サービスの名前。
アクセス・トークン変数名 アクセス・トークンを格納する変数を指定します。文字列またはサポートされている別の変数タイプとして宣言できます。ユーザー・スコープ変数にすることもできます。例: user.accessToken
マルチスコープ・アクセス・トークン変数名 将来のマルチスコープアクセストークンのサポートのために予約されたフィールド。

このコンポーネントにはアクションはありません。発生する可能性のあるシステムの問題に対処するには、そのようなエラーを処理できる状態に移行する次の遷移を追加します。

OAuth 2.0トークンのリセット

このコンポーネントを使用して、認証サービスが示すアイデンティティ・プロバイダから、ログイン・ユーザーのすべてのリフレッシュ・トークンおよびユーザー・アクセス・トークンを取り消します。また、リフレッシュ・トークンをデータベースから削除します。このコンポーネントを使用するには、認証サービスUIでアイデンティティ・プロバイダのリフレッシュ・トークンの取消URLを指定する必要があります。

スキルには、同じ認証サービスのOAuth 2.0アカウント・リンク・コンポーネントを使用する状態が含まれている必要があり、このコンポーネントを使用する状態の前に呼び出す必要があります。

プロパティ 説明
認証サービス OAuth2アイデンティティ・プロバイダの認証サービスUIで作成したサービスの名前。このサービスには、有効なリフレッシュ・トークンの取消URLが必要です。

このコンポーネントは、次のアクションを返すことができます:

アクション 説明
noRefreshTokenFound 認証サービスにユーザーのリフレッシュ・トークンがありません。

フロー制御テンプレート

スイッチ

このコンポーネントを使用して、変数値に基づいて状態を切り替えます。

このコンポーネントは、変数または式を解決し、フロー内の状態にマップされる対応する遷移アクションをトリガーすることによって、実行パスを決定します。

遷移アクションは、プロパティ・インスペクタの「遷移」タブで定義およびマップします。

プロパティ 説明
変数 トリガーする遷移アクションの決定に使用される変数。
トリガーする遷移アクションを決定するために使用されるFreeMarker式。たとえば、式${((user.lastOrderNumber)?has_content)}を使用して、user.lastOrderNumber変数に値がある場合はTrue遷移アクションをトリガーしたり、変数にNULL値がある場合はFalseアクションをトリガーできます。

フローの起動

このコンポーネントでは、現在のフローから子フローをコールし、オプションで入力パラメータを渡します。子フローが完了すると、アクションおよびオプションの出力パラメータが親フローに返されます。

設定できる遷移アクションは、子フローの「終了フロー」コンポーネントで設定されるアクションによって異なります。

プロパティ 説明
フロー 呼び出すフローの名前。
入力パラメータ 呼び出されたフローに渡されるパラメータ。値には、Freemarker式を含めることができます。
出力パラメータ 起動されたフローの完了時に返すことができるパラメータ。パラメータの「値」は、パラメータの値が呼び出されたフローから返されたときに格納される、現在のフロー内の変数の名前である必要があります。

スキルの起動

このコンポーネントでは、別のスキルのフローをコールし、オプションで入力パラメータを渡します。コールされたフローが完了すると、コール・フローにアクションおよびオプションの出力パラメータが返されます。

このコンポーネントを使用する前に、コールするスキルでパブリック・フローが使用可能である必要があります。フローからの別のスキルの起動を参照してください。

プロパティ 説明
スキル名 起動するスキル名。1つ以上のパブリック・フローがあるスキルのみが表示されます。
スキル・バージョン (このプロパティは、「スキル名」の値を選択すると表示されます。)使用するスキルのバージョン。ターゲット・スキルが現在のスキルと同じデジタル・アシスタントにある場合、このフィールドは無視され、デジタル・アシスタント内のスキルのバージョンが使用されます。
フロー名 (このプロパティは、「スキル名」の値を選択すると表示されます。)スキルから呼び出されるフローの名前。ターゲット・スキルでパブリックとしてマークされたスキルのみが表示されます。
入力パラメータ (このプロパティは、「フロー名」の値を選択すると表示されます。)呼び出されたフローに渡されるパラメータ。値には、Freemarker式を含めることができます。
出力パラメータ (このプロパティは、「フロー名」の値を選択すると表示されます。)起動されたフローの完了時に返すことができるパラメータ。パラメータの「値」は、パラメータの値が呼び出されたフローから返されたときに格納される、現在のフロー内の変数の名前である必要があります。
モックを使用 出力パラメータにモック・データを一時的に使用する必要がある場合は、Trueに設定します。これにより、ターゲット・フローがまだ使用できない場合でも、フローの開発とテストを続行できます。
モック出力パラメータ フローの開発中にモック出力パラメータを一時的に使用する必要がある場合は、各パラメータを次の形式で別の行に入力します。
ParamName: ParamValue

フローの終了

このコンポーネントは、フローを明示的に終了するために使用されます。

この状態に達すると、フローのすべての変数がクリアされ、制御が親フローに戻されます(または、親フローがない場合はメイン・フロー)。

フローから親フローまたはメイン・フローにパラメータまたはアクションを戻す必要がない場合は、フローの終了フロー状態は必要ありません。

プロパティ 説明
アクション 呼出しフローに戻されるアクション。呼出しフロー・コンポーネントで遷移を設定するために使用できます。
処理値 ActionプロパティにFreemarker式が含まれ、解決されたFreemarker式の可能な値のリストが含まれている場合に設定する必要があります。
ターンを維持 trueの場合、ダイアログ・エンジンは、呼出しフロー・コンポーネントで定義された遷移に基づいて、呼出しフローの次の状態を引き続き実行します。このプロパティは、次の場合に無視されます。
  • 子フローが実行中です。子フローが終了すると、Keep Turnは常にtrueになります。
  • ルート・フローが実行中で、ターン内にまだボット・メッセージが作成されていません。この場合、Keep Turnは常に真です。(これにより、ボットがユーザーにメッセージを送信しなくてもターンが解放されないことが保証されます。これにより、ボットがハングしているという印象をユーザーに与えることができます。)
出力パラメータ 現在のフローの完了時に親フローに戻すことができるパラメータ。

サービス統合テンプレート

エージェント通信テンプレート

このテンプレートは、エージェント開始コンポーネントとエージェント会話コンポーネントで構成されます。これらのコンポーネントを一緒に使用して、スキルの会話をOracle B2C Serviceエージェントに転送します。

  • エージェント開始コンポーネントは、コンポーネントの「エージェント統合チャネル」プロパティで指定されたエージェント統合チャネルを使用してハンドシェイクを開始します。
  • エージェントの会話コンポーネントは、スキルとライブ・エージェントの間のやり取りを管理します。

このテンプレートは、スキルで発生した会話用です。デジタル・アシスタント(エージェント)のフレームワークの動作の説明に従って、このテンプレートをOracle B2C Serviceチャットで発生した会話に使用しないでください。

エージェント開始

エージェント開始コンポーネントのプロパティは次のとおりです。

プロパティ 説明
エージェント統合チャネル エージェント統合チャネルを指定します。この値(エージェント統合チャネルの名前)と、エージェント会話コンポーネントに定義された「エージェント統合チャネル」プロパティはすべて一致する必要があります。
エージェント・アクション チャットを終了してフローを遷移アクションに定義された状態に移動させるために、エージェントがトリガーできるアクションのリスト。顧客サービス担当のコンソールでは、次の例に示すように、エージェントの会話が開始されるときにスラッシュ・コマンドとしてこれらのアクションが表示されます:
Here are the available actions that you can send to transfer the conversation
back to the bot. Prepend the action with a forward slash (for example, /actionName).
/OrderPizza : Order Pizza : Order a pizza.
/ShowMenu : Show Menu : Show order options.
エージェント会話コンポーネントの「トランジション」タブで、これらのアクションを手動で入力し、適切な状態にマッピングする必要があります。
件名 エージェント・プラットフォームへのハンドオフ後にエージェントのコンソールに表示される件名。デフォルトでは、これはsystem.nlpResult変数(式${skill.system.nlpresult.value.query}でアクセス可能)に格納されている最後の顧客メッセージですが、フローで以前に設定した変数を使用して定義することもできます。たとえば、エージェント開始コンポーネントより前に値が設定されるstring型変数を定義できます:

A customer needs help regarding ${flow_variable.value}

チャット・レスポンス変数 エージェントのレスポンス情報を保持するマップ変数を指定します。エージェント開始コンポーネントが正常に接続されると、マップには次のプロパティが含まれます:
{
  "sessionID": "string", // agent session id

  "completedSurveyID": {
    "id": "int"
  },

  "engagementID": { // survey id
    "id": "int"
  },

  "cancelledSurveyID": {
    "id": "int"
  }
}
カスタム・プロパティ サービスに渡す、インシデントID、インタフェース、連絡先またはカスタム・フィールド(またはそれらの組合せ)を保持するマップ。マップ変数を参照するには、${mapVariableName.value}のような値式を使用します。ライブ・チャットへの顧客情報の受渡しを参照してください。
キューID 指定した「次の場合に転送を許可」条件が一致するかどうかを決定するためにコンポーネントが使用する必要があるキューのID。これは、Oracle B2C Serviceチャット・ルールが会話をルーティングする先のキューのIDである必要があります。

「次の場合に転送を許可」プロパティが定義されていない場合、このプロパティは無視されます。

次の場合に振替を許可 スキルがチャット・セッションを転送する条件を指定します。このコンポーネントは、「キューID」値を使用して、統計を取得するキューを識別します。会話がチャット・ルールによって他のキューではなく特定のキューに実際に転送されることを確認する必要があります。
  • エージェントが新しいエンゲージメントを要求しています: これは、最も制限された条件のセットです。スキルが会話を転送しようとするのは、新しいエンゲージメントをリクエストし(チャットをプルし)、指定のキューに割り当てられたエージェントが存在する場合、あるいはチャット・サーバーがチャットをエージェントに自動的にプッシュした際に、チャットを受信でき、チャットの最大数に達しておらず、指定のキューに割り当てられているエージェントが存在する場合のみです。このオプションでは、ユーザーがエージェントと会話するまであまり長く待つ必要はありません。
  • エージェント・セッションが使用可能: スキルが会話を転送しようとするのは、チャットの最大数に達して指定のキューに割り当てられていない使用可能なエージェントが存在する場合です。エージェントが長時間実行中の会話に関与している場合またはチャット後のフォローアップを実行している場合、ユーザーは待機が必要になる場合があります。
  • 使用可能なエージェント: スキルは、指定されたキューに割り当てられたオンラインのエージェントがある場合、会話を転送しようとします。チャットの最大数に達しているか、新しいエンゲージメントをリクエストしているかには関係ありません。このオプションでは、ユーザーが長時間待機する可能性があります。

指定された条件が一致しない場合、コンポーネントはrejectedアクションを返します。

このプロパティを含める場合は、「キューID」プロパティも含める必要があります。

記録日時書式 エージェントに転送される会話トランスクリプト・メッセージの日付と時刻の書式。有効なパターンは、DateTimeFormatter Javaクラスを参照してください。例: dd/MM/yyyy HH:mm。デフォルトはyyyy-mmm-ddThh:mm:ssZです。
記録タイム・ゾーン 「トランスクリプト日時書式」プロパティを使用して会話トランスクリプトを書式設定するために使用するタイム・ゾーンのインターネット割当て番号局(IANA)名。「記録日時書式」プロパティを定義しない場合、このプロパティは無視されます。
エージェント開始の遷移処理

エージェント統合コンポーネントは、acceptedrejectedおよびerrorアクションを返します。これらのアクションはそれぞれ異なる状態を示すことができ、通常、acceptedアクションはエージェント会話コンポーネントの状態を指定します。これらの遷移は、コンポーネントのプロパティ・インスペクタの「遷移」タブで設定できます。

これらのアクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

アクションの説明を次に示します。

遷移アクション 説明
accepted ハンドシェイクが正常に完了し、状態は「エージェント会話」コンポーネントでの状態に遷移できます。
error Oracle B2C Serviceとの接続の確立中に問題が発生しました。たとえば、エージェント統合チャネルのパスワードが有効でなくなった場合や、サービス・クラウド・サーバーに問題がある場合などです。
rejected Oracle B2C Serviceにより、接続リクエストが拒否されました。接続リクエストが拒否される理由として、次のようなものがあります:
  • 使用可能なエージェントがありません(「次の場合に転送を許可」および「キューID」プロパティが必要です)
  • 構成済の営業時間外である
  • 休日である
  • チャット・サーバーに問題がある

「次の場合に転送を許可」および「キューID」プロパティを設定しない場合、エージェントが使用できないときはrejectedアクションは実行されません。かわりに、転送は待機状態のままになります。

エージェント開始のリソース・バンドル・エントリ

エージェント統合コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティが使用されます:

リソース・バンドル・キー 説明
systemComponent_AgentInitiation_agentActionsMessage 「エージェント・アクション」プロパティでアクションが指定されている場合、エージェント・コンソールではアクションのリストの前にこのメッセージが表示されます。デフォルトは:

\n Here are the available actions that you can send to transfer the conversation back to the bot. Prepend the action with a forward slash (for example, /actionName).\n

systemComponent_AgentInitiation_errorMessage Oracle B2C Serviceとの接続の確立中に問題が発生した場合に表示するメッセージ。たとえば、エージェント統合チャネルのパスワードが有効でなくなった場合や、サービス・クラウド・サーバーに問題がある場合などです。デフォルトは:

Error transferring to agent. The reason is: {0}.

systemComponent_AgentInitiation_rejectedMessage AgentInitiationハンドシェイクが構成済の営業時間外の場合などに拒否された場合に表示されるメッセージ。デフォルトは:

Agent rejected.

systemComponent_AgentInitiation_resumedMessage カスタマ・サービス担当者とのチャットが再開されたときに表示されるメッセージ。デフォルトは:

Resuming chat with agent

systemComponent_AgentInitiation_waitingMessage 顧客がエージェントへの接続を待機する間に表示されるメッセージ。デフォルトは:

Agent chat session established, Waiting for agent to join.

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

エージェントの会話

エージェント会話コンポーネントのプロパティを次に示します:

プロパティ 説明
エージェント統合チャネル エージェント統合チャネルを指定します。この値(エージェント統合チャネルの名前)とエージェント統合チャネル・プロパティは、すべて一致する必要があります。
B2C待機メッセージのオーバーライド ユーザーがエージェントとの対話を待機する必要がある時間の見積りを示すB2C待機メッセージをオーバーライドするテキスト。
エージェント会話の遷移アクション

エージェント会話コンポーネントは、次のアクションをトリガーできます。

  • 組込みのexpiredagentLefterrorおよびwaitExpiredアクション。
  • エージェント開始コンポーネントの「エージェント・アクション」プロパティからのアクション。

これらのアクションがトリガーされる前に、顧客が終了キーワード(systemComponent_AgentConversation_exitKeywordsリソース・バンドル・エントリで定義)のいずれかを入力してチャットを終了する場合があるため、next遷移も含める必要があります。

アクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

ノート

エージェント開始コンポーネントの「エージェント・アクション」プロパティからのアクションは、コンポーネントの「トランジション」タブに追加するときに「アクション」ドロップダウン・リストに表示されないため、手動で入力する必要があります。

組込みの遷移アクションの説明を次に示します:

アクション 説明
agentLeft エージェントがスラッシュ・アクション(たとえば、/Order)を使用せずにセッションを終了しました。または、Oracle B2C ServiceのCS_IDLE_TIMEOUT構成で指定された時間内にアクティビティが発生せず、その構成がエージェント統合チャネルの「セッション失効」設定より短いため、セッションが終了しました。詳細は、expiredアクションを参照してください。

ユーザーがキーワードを入力して会話から離れた場合、このアクションは返されないことに注意してください。その場合、フローはnext遷移で指定された状態に、またはnext遷移がない場合はフローの次の状態に遷移します。

error

ライブ・エージェント・サービスへの接続中に問題が発生しました。

expired

Oracle B2C ServiceのCS_IDLE_TIMEOUTがエージェント統合チャネルの「セッションの有効期限」設定以上である場合、エンドユーザーもエージェントもセッションの有効期限内にメッセージを送信しないと、このアクションがトリガーされます。CS_IDLE_TIMEOUTがエージェント統合チャネルの「セッションの有効期限」設定より短く、アクティビティが発生しない場合、Oracle B2C Serviceはチャットを終了し、かわりにagentLeftアクションをトリガーします。

デフォルトでは、CS_IDLE_TIMEOUTは10分です。

サービス・クラウドのUSER_WAIT_QUEUE_TIMEOUTが超過したために会話が終了した場合、expiredアクションは返されません。この構成の値は、7200秒(2時間)など高く設定することを検討してください。

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

waitExpired エージェントの待機中にチャット・リクエストの期限が切れました。これは、待機時間がチャット・クライアントのUSER_WAIT_QUEUE_TIMEOUT設定の値を超えた場合に発生します。
エージェント会話のリソース・バンドル・エントリ

エージェント会話コンポーネントは、次のリソース・バンドル・エントリを使用します。

リソース・バンドル・キー 説明
systemComponent_AgentConversation_conclusionMessage ユーザーがexitキーワードを入力した場合、agentLeftアクションがトリガーされた場合、またはエージェントがエージェント・アクションのいずれかを送信せずに会話を終了した場合に、顧客に送信される自動メッセージ。デフォルトは:

Chat session ended. Thanks for chatting with us.

systemComponent_AgentConversation_errorMessage Oracle B2C Serviceへの接続に問題がある場合にチャットに表示されるメッセージ。デフォルトは:

Chat session error. The reason is: {0}.

systemComponent_AgentConversation_exitKeywords ライブ・エージェントとの会話を終了するために顧客が使用する一般的な終了語のカンマ区切りリスト。デフォルトは:

bye, take care, see you, goodbye

systemComponent_AgentConversation_expiryMessage expiredアクションがトリガーされたときに表示されるメッセージ。デフォルトのメッセージは次のとおりです。

Chat session expired. Thanks for chatting with us.

expiryMessageが出力される場合はconclusionMessageは出力されないことに注意してください。

また、サービス・クラウドのUSER_WAIT_QUEUE_TIMEOUTが超過したために会話が終了した場合、このメッセージは出力されません。

systemComponent_AgentConversation_userLeftMessage ユーザーがチャットを終了したときに表示されるメッセージ。デフォルトのメッセージは次のとおりです。

User left the chat.

systemComponent_AgentConversation_waitExpiryMessage エージェントの待機中にチャットが期限切れになったときにユーザーに表示されるメッセージ。デフォルトは:

The request for live chat expired while waiting for an agent.

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

エージェントの転送

DA (エージェント)デジタル・アシスタントでエージェント転送コンポーネントを使用して、会話をチャット・サービスに戻します。会話は、チャット・サービスで構成されているチャット・ルールによってライブ・エージェントにルーティングされます。

このコンポーネントは、デジタル・アシスタント(エージェント)のフレームワークの動作で説明されているように、サービスのチャットで発生した会話用です。スキルで発生した会話の場合は、かわりにエージェント通信テンプレートを使用します。

プロパティ 説明
最大待機時間(秒) 許容される予測待機秒数の最大値。チャット・サービスは、転送リクエストを受け取ると、予測待機時間を使用して応答します。この値が「最大待機時間(秒)」を超えると、rejectedアクションが発生します。このプロパティのデフォルトは-1であるため、最大待機時間は発生しません。 -1に設定すると、デジタル・アシスタントは、推定待機時間に関係なくユーザーをヒューマン・エージェントに転送します。

rejectedアクションは、実績待機時間ではなく、予測待機時間に基づくことに注意してください。会話の転送後は、デジタル・アシスタントは会話を制御できず、会話に関する情報にもアクセスできません。したがって、実績待機時間が予測待機時間を超えることがあります。

キュー内の最大エンゲージメント 宛先キューで待機するエンゲージメントの最大許容数。チャット・リクエストが送信されると、チャット・サービスは、キュー内で待機している現在のエンゲージメント数を使用して応答します。この値が「キュー内の最大エンゲージメント」を超えると、rejectedアクションが発生します。デフォルトは-1で、エンゲージメントの制限がないことを意味します。B2B Chatの場合、レスポンスは常に0であるため、このプロパティはB2Bの値ではありません。
エージェント可用性 StatusVariable エージェントの可用性ステータス情報の格納に使用するタイプ・マップの変数の名前。プロパティが指定されていない場合、情報は格納されません。マップ変数を参照するには、${<mapVariableName>.value.<key>}のような値式を使用します。たとえば、agentStatus.value.expectedWaitMinutesです。

この変数に返される値について学習するには、エージェント転送条件を参照してください。

次の場合に振替を許可 スキルがチャット・セッションを転送する条件を指定します。
  • エージェントが新しいエンゲージメントをリクエストしています: (デフォルト)チャットをプルする(新しいエンゲージメントをリクエストする)必要があるOracle B2C Serviceエージェントにとって、これは最も限定的な条件セットです。ユーザーはあまり待たずにエージェントと話すことができます。スキルが会話を転送しようとするのは、新しいエンゲージメントをリクエストしたエージェントが存在する場合のみです。他のすべてのケースで、このオプションの動作は「エージェント・セッションが使用可能です」と同じです。Oracle Fusion Serviceではこのオプションを使用しないでください。そのサービスの新規エンゲージメントをリクエストしているエージェントの合計は常に0であるためです。
  • エージェント・セッションが使用可能: スキルは、使用可能なエージェントのいずれかが一度に保持できるチャットの最大数に達していない場合、会話を転送しようとします。エージェントが長時間実行中の会話に関与している場合またはチャット後のフォローアップを実行している場合、ユーザーは待機が必要になる場合があります。
  • 使用可能なエージェント: スキルは、チャットの最大数に達しているか、新しいエンゲージメントをリクエストしているかに関係なく、オンラインのエージェントが存在する場合、会話を転送しようとします。このオプションでは、ユーザーが長時間待機する可能性があります。

指定した条件が満たされない場合、rejectedアクションが発生します。

カスタム・プロパティ サービスに渡す情報を保持するマップ。
エージェント転送の遷移処理

エージェント転送コンポーネントには、返すことができるいくつかの組込みトランザクション処理があります。

これらのアクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

アクション 説明
accepted accepted遷移は、チャットがキューに正常に転送されたときに設定されます。

チャット・リクエストが受け入れられた後、フローは終了フロー状態で終了する必要があることに注意してください。

rejected rejected遷移は、次のいずれかが発生したときに設定されます:
  • allowTransferIf条件が満たされていなかった。
  • 予測待機時間がmaxWaitSecondsを超える
  • キュー内のエンゲージメント数がmaxEngagementsInQueueを超えています。
error error遷移は、人間のエージェントへの転送を妨げるシステム・エラーがある場合に設定されます。
エージェント転送のリソース・バンドル・エントリ

エージェント転送コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティも使用します:

リソース・バンドル・キー 説明
systemComponent_AgentTransfer_acceptedMessage ヒューマン・エージェントがチャット・リクエストを受け入れるたびにユーザーに表示されるメッセージ。デフォルトは:

The chat has been transferred to another agent.

systemComponent_AgentTransfer_errorMessage エージェントへのチャット・セッションの転送中にシステム・エラーが発生したときにユーザーに表示されるメッセージ。デフォルトは:

We were unable to transfer you to another agent because there was a system error.

このプロパティを空白または空の文字列に設定して、メッセージ出力を抑制できます。

systemComponent_AgentTransfer_rejectedMessage 次のいずれかが発生した場合に常にユーザーに表示されるメッセージ:
  • 「次の場合に転送を許可」条件が満たされませんでした。
  • 予測待機時間が「最大待機時間(秒)」値を超えています。
  • キュー内のエンゲージメント数が「キュー内の最大エンゲージメント」値を超えています。

デフォルト・メッセージ: Agent rejected.

このプロパティを空白または空の文字列に設定して、メッセージ出力を抑制できます。

systemComponent_AgentTransfer_waitingMessage ユーザーがキューに転送されたときにユーザーに表示されるメッセージ。デフォルトのメッセージは次のとおりです。

Agent chat session established. Waiting for agent to join.

このプロパティを空白または空の文字列に設定して、メッセージ出力を抑制できます。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

エージェント転送条件

DA-as-agentデジタル・アシスタントのエージェント転送条件コンポーネントを使用して、エージェントが使用可能かどうか、および可能であれば予想される待機時間を判断できます。

コンポーネントのプロパティを使用して転送条件を指定し、条件が満たされたかどうかを示すアクションを返します。さらに、名前付きマップ変数の値を設定します。

プロパティ 説明
カスタム・プロパティ サービスに渡す情報を保持するマップ。サービスへの情報の受渡しを参照してください。
最大待機時間(秒) 許容される予測待機秒数の最大値。チャット・サービスは、リクエストを受け取ると、予測待機時間を使用して応答します。この値が「最大待機時間(秒)」を超えると、conditionsNotMetアクションが発生します。このプロパティのデフォルトは-1であるため、最大待機時間は発生しません。

conditionsNotMetアクションは、実績待機時間ではなく、見積待機時間に基づくことに注意してください。

キュー内の最大エンゲージメント 宛先キューで待機するエンゲージメントの最大許容数。リクエストが送信されると、チャット・サービスは、キュー内で待機している現在のエンゲージメント数を使用して応答します。この値がmaxEngagementsInQueueを超えると、conditionsNotMetアクションが発生します。デフォルトは-1で、エンゲージメントの制限がないことを意味します。
次の場合にエージェント転送 満たす必要がある条件の基本セットを指定します。
  • エージェントが新しいエンゲージメントをリクエストしています: (デフォルト)チャットをプル(新しいエンゲージメントをリクエスト)する必要があるB2Cエージェントの場合、エージェントがチャットをプルする必要があります。他のすべてのケースで、このオプションの動作は「エージェント・セッションが使用可能です」と同じです。
  • エージェント・セッションが使用可能: エージェントがチャットをリクエストしていることが必要です。
  • 使用可能なエージェント: 最大チャット数に達したか、新しいエンゲージメントをリクエストしているかにかかわらず、少なくとも1つのエージェントがアクティブである必要があります。

指定した条件が一致しない場合、conditionsNotMetアクションが発生します。

エージェント可用性ステータス変数 エージェントの可用性ステータス情報の格納に使用するmapタイプの変数の名前。プロパティが指定されていない場合、情報は格納されません。マップ変数を参照するには、${<mapVariableName>.value.<key>}のような値式を使用します。たとえば、agentStatus.value.expectedWaitMinutesです。

エージェント可用性ステータス変数の値とその中に格納される情報の構造を次に示します:

queueId (integer, optional): The engagement queue ID,
expectedTotalWaitSeconds (integer, optional): Expected wait time in the queue in seconds
        ( -1 if there's inadequate information, zero or greater otherwise ).,
expectedWaitSeconds (integer, optional): The number representing the "ss" segment of the expected wait time of format mm:ss 
        ( -1 if there's inadequate information, zero or greater otherwise ).,
expectedWaitMinutes (integer, optional): The number representing the "mm" segment of the expected wait time of format mm:ss 
        ( -1 if there's inadequate information, zero or greater otherwise ).,
availableAgentSessions (integer, optional): Total number of sessions available across all agents.,
totalAvailableAgents (integer, optional): Total number of agents whose status is available.,
totalUnavailableAgents (integer, optional): Total number of agents whose status is unavailable.,
totalAgentsRequestingNewEngagement (integer, optional): Total number of agents who are available and have capacity.
outsideOperatingHours (boolean, optional): True if outside operating hours. False if inside operating hours.,
engagementsInQueue (integer, optional): The number of engagements currently in the queue.
sessionId (string, optional): The session ID.,
clientId (integer, optional): The client ID.

ヒント:

予想される待機時間の表示に使用できる推奨リソース・バンドル定義を次に示します:
This might take {minutes, plural,
     =-1 {}
     =0 {}
     =1 {1 minute and }
     other {# minutes and }
}{seconds, plural,
     =-1 {a while}
     =0 {{minutes, plural,
          =0 {a short wait time}
          other {0 seconds}
        }}
     =1 {1 second}
     other {# seconds}
} to connect. Are you willing to wait?
エージェント転送条件の遷移処理

エージェント転送条件コンポーネントには、返すことができるいくつかの組込みトランザクション・アクションがあります。

これらのアクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

アクション 説明
conditionsMet conditionsMet遷移は、営業時間内であり、maxWaitSecondsmaxEngagementsInQueueおよびallowTransferIf条件が満たされた場合に設定されます。
conditionsNotMet conditionsNotMet遷移は、次のいずれかが発生したときに設定されます:
  • 営業時間外です。
  • allowTransferIf条件が満たされていなかった。
  • 予測待機時間がmaxWaitSecondsを超える
  • キュー内のエンゲージメント数がmaxEngagementsInQueueを超えています。
error error遷移は、エージェント条件チェック中にエージェント・チャット・サービスへの接続に問題がある場合に設定されます。

これらの遷移アクションは、コンポーネントのプロパティ・インスペクタの「遷移」タブで設定できます。

エージェント転送条件のリソース・バンドル・エントリ

エージェント転送コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティも使用します:

リソース・バンドル・キー 説明
systemComponent_AgentTransferCondition_errorMessage エージェントへのチャット・セッションの転送中にシステム・エラーが発生したときにユーザーに表示されるメッセージ。デフォルトは:

We were unable to check the agent transfer conditions because there was a system error.

このプロパティを空白または空の文字列に設定して、メッセージ出力を抑制できます。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

RESTサービスの呼出し

このコンポーネントを使用して、APIサービス設定で構成したRESTエンドポイントにHTTPリクエストを送信します。

コンポーネント・プロパティは次のとおりです。

プロパティ 説明
RESTサービス エンドポイントの構成を定義するAPI設定RESTサービスの名前。「エンドポイントのRESTサービスの追加」を参照してください。
認証タイプ RESTサービスに対して定義されている認証タイプ。この値は、「RESTサービス」タブからのみ変更できます。
エンドポイント RESTサービスに対して定義されているURI。この値は、「RESTサービス」タブからのみ変更できます。
メソッド このRESTコールに使用する構成済メソッドを選択します。
リクエスト本体 POST、PATCHおよびPUTリクエストの場合、RESTリクエストで送信するリクエスト本文を指定します。

ヒント:

本文にFreeMarker式が含まれている場合は、「式」を「オン」に切り替えて、FreeMarker構文の色付けを確認できます。ただし、これを行うと、JSON構文検証はオフになります。
パラメータ エンドポイントにあるパス・パラメータに対して、「パス」タイプのパラメータを追加し、パス・パラメータと一致するようにキーを設定し、目的の値を設定します。パス・パラメータがRESTサービス構成で定義されており、そのパラメータの値を使用する場合は、コンポーネントに追加する必要はありません。

RESTリクエストに渡す問合せパラメータの場合は、「問合せ」タイプのパラメータを追加し、問合せパラメータと一致するようにキーを設定し、目的の値を設定します。問合せパラメータがRESTサービス構成で定義されており、そのパラメータの値を使用する場合は、そのパラメータをコンポーネントに追加する必要はありません。

ヒント:

RESTサービス構成で、このコールで使用しない問合せパラメータが設定されている場合は、その値を${r""}に設定してそのパラメータをクリアできます。

パラメータを編集したら、「保存」ボタンをクリックして、リストにパラメータを追加します。

応答モード

コール完了後に返すレスポンスを指定します。

  • 実際のREST APIレスポンスの使用: RESTサービスからの実際のレスポンスを返します。

  • 常に静的RESTレスポンスを使用:これにより、「RESTサービス」タブで構成された静的レスポンスが返されます。このレスポンスは、開発フェーズやテスト・フェーズなどで役立ちます。

  • 静的レスポンスを使用したフォールバック: RESTリクエストが成功すると、RESTレスポンスが返されます。それ以外の場合は、「RESTサービス」タブで構成された静的レスポンスが返されます。

RESTサービス構成に静的レスポンスがない場合、選択肢は「実際のレスポンスの使用」のみです。

結果の変数

レスポンス・データを格納するためのマップ変数の名前。マップには、レスポンス本文のresponsePayloadプロパティと、ステータス・コードのstatusCodeプロパティが含まれます。レスポンス本文を変数に格納する方法は、レスポンスがJSONオブジェクト、JSON配列またはプレーン・テキスト(文字列)のいずれであるかによって異なります:

  • JSONオブジェクト:オブジェクトはresponsePayloadプロパティに格納されます。

  • JSON配列:配列はresponsePayload.responseItemsプロパティに格納されます。

  • プレーン・テキスト:テキストはresponsePayload.messageプロパティに格納されます。

ノート

結果変数に格納できるレスポンス・ペイロードのサイズは、デフォルトでは15KBに制限されています。より高い制限が必要な場合は、Oracle Supportにサービス・リクエスト(SR)を提出します。

コンポーネントは次のアクションを返します。

アクション 説明
成功 レスポンス・ステータス・コードは100から399の範囲です。
失敗 100から399の範囲外のレスポンス・ステータス・コード。

さらに学習するには、RESTサービス・コンポーネントを使用したバックエンドへのアクセスを参照してください。

ナレッジ検索

このコンポーネントを使用して、Oracle B2C Service Knowledge FoundationまたはOracle Fusion Service Knowledge Managementで特定の検索語に関する情報を検索し、結果を表示します。

Oracle B2C Serviceの場合、検索結果は、回答が公開されているかどうか、およびアクセス・レベル、製品、カテゴリの設定によって異なります。

このコンポーネントを使用するには、ナレッジ検索サービスを作成する必要があることに注意してください。ナレッジ検索サービスの追加を参照してください。

ナレッジ検索コンポーネントのプロパティは次のとおりです。

プロパティ 説明
サービス名の検索 「設定」で構成されたナレッジ検索統合の名前。
検索する用語 ナレッジ検索起動の検索語として使用するテキスト。Oracle Fusion Service Knowledge Managementには検索語が必要です。Oracle B2C Service Knowledge Foundationでは、検索語が指定されていない場合、最も人気のある記事が返されます。

検索用語の手法は、ナレッジ検索コンポーネントの使用を参照してください。

結果の前に表示するテキスト 検索結果が表示される前に出力するテキスト。

このプロパティが「オン」の場合、構成リソース・バンドルのKnowledgeSearch - searchPrelude値が使用されます。デフォルトは「オフ」で、テキストは表示されません。

最大結果数 表示する最大結果数。

デフォルトは10です。

結果の優先バージョン Oracle B2C Serviceのみ: 結果に複数のバージョンがある場合に返す優先バージョン。このプロパティをAnswerまたはSpecial Responseのいずれかに設定できます。

デフォルトのバージョンはAnswerです。

優先バージョンのみ表示

Oracle B2C Serviceのみ: Trueの場合、(「優先バージョンの結果」プロパティで設定された)優先バージョンで使用可能な結果のみが表示されます。

Falseの場合は、まず、プロパティに設定されたバージョンのすべての一致回答を含めます。含まれる回答数が制限未満の場合は、制限に達するまで優先バージョン以外の回答を含めます。

デフォルトはFalseです。

Web記事リンク・ラベル Webバージョンの情報にリンクする結果カードのURLアクション(ボタン)に使用するラベル。

このプロパティを「オフ」に設定すると、Web記事リンク・ボタンは表示されず、かわりに全文が出力されます。これは、通常サイズのスキル・ウィジェットで読みにくい記事が非常に長い場合はお薦めしません。デフォルトは「オン」です。これは、構成リソース・バンドルのKnowledgeSearch - resultLinkLabel値が使用されることを意味します。

Web検索ページ・リンク・ラベル

Oracle B2C Service: 完全検索結果リストが掲載されているWebページにリンクされたカード・メッセージ・ペイロード・アクションに使用するラベル。

Oracle Fusion Service: ホーム検索ページにリンクされているカード・メッセージ・ペイロード処理に使用するラベル。

このプロパティが「オン」の場合、構成リソース・バンドルのKnowledgeSearch - searchLinkLabel値が使用されます。デフォルトは「オフ」です。これは、カード・メッセージにアクションが表示されないことを意味します。

カード・レイアウト 結果カードを垂直方向と水平方向のどちらで表示するかを指定します。デフォルトはhorizontalです。
ロケールを使用して検索 デフォルトは、profile.locale変数の値です。

Oracle B2C Serviceマルチインタフェース・ナレッジ統合サービスの場合、検索の実行に使用するインタフェースを指定する5文字のISOまたはBCPロケール・コード(en_GBなど)。ロケールをサポートするインタフェースがない場合は、デフォルトのインタフェースが使用されます。多言語ナレッジ検索の実装を参照してください。

Oracle Fusion Serviceの場合、指定したロケールに関連付けられている記事をフェッチします。一致する記事がロケールに存在しない場合、noResultが返されます。

結果フィルタ 検索結果フィルタのリスト。使用可能なフィルタ・タイプは、ProductおよびCategoryです。それぞれが、1つのフィルタ宣言のみを許可します。
カスタム・プロパティ Oracle B2C Serviceのみ: 検索サービスに送信するキー/値ペアのマップ。現在、このプロパティはword_connectorキーのみをサポートしています。word_connectorプロパティをANDに設定して、検索語のすべての単語の前に+を付加します。
ナレッジ検索の遷移処理

ナレッジ検索コンポーネントには、戻すことができるいくつかの組込みトランザクション・アクションがあります。

これらのアクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

アクション 説明
resultSent 検索で結果が少なくとも1つ返されました。
noResult 検索語の結果がありませんでした。
serverError サーバー・エラー障害や予期しないエラー障害など、起動中にナレッジ検索サービスのサーバーでエラーが発生しました。

このエラーが発生すると、エラー・メッセージはsystem.state.<state-name>.serverError.messageに格納されます。

ナレッジ検索のリソース・バンドル・エントリ

ナレッジ検索コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティも使用されます:

リソース・バンドル・キー 説明
systemComponent_KnowledgeSearch_defaultAttachmentLabel アタッチメントに表示名がすでに構成されていない場合、検索結果のアタッチメントにリンクされた結果カードのURLアクションに使用するデフォルトのラベル。使用される場合は、索引番号が付加されます。たとえば、2番目のアタッチメントに表示名がない場合、デフォルトのアタッチメント・ラベルに2が付加されます。

デフォルトはDownloadです。

systemComponent_KnowledgeSearch_noResultText 使用可能な検索結果がない場合に出力するテキスト。

デフォルトは:

Sorry, no result was found in the knowledge search.

systemComponent_KnowledgeSearch_resultLinkLabel ナレッジ記事のWebバージョンにリンクされた結果カードのURLアクションに使用するラベル。

デフォルトはView Resultsです。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

インシデント作成

カスタマ・サービス・サイトでインシデント・レポートを作成するには、インシデント作成テンプレートを使用します。インスタンスでこのコンポーネントを使用するには、「設定」→「追加サービス」→「カスタマ・サービス統合」ページからカスタマ・サービス統合を作成する必要があります。

プロパティ 説明
インシデント・サービス名 「設定」→「追加サービス」→「カスタマ・サービス統合」で構成されている統合の名前。
インシデントの件名 インシデントのサブジェクトのテキスト。
添付URL インシデントに関連するドキュメントまたはイメージのURL。DA (エージェント)スキルでは、添付の追加はサポートされていません。
エージェント・レポート・フィルタ (Oracle Fusion Serviceインシデントの場合)インシデントをフィルタするテキスト。
インシデントへのチャットのトランスクリプトの追加 (Oracle Fusion Serviceインシデントの場合。)Trueに設定すると、チャット・トランスクリプトがインシデントに追加されます。

スキルが機能するには、インサイトを有効にする必要があります。

トランスクリプトは、DAをエージェント統合としてWeb Chat for ServiceまたはOracle Inlay Toolkitインレーと組み合せて使用する場合にのみインシデントに追加できます。

カスタム・フィールド 説明キー/値ペア、およびオプションでcontactInfoキー/値ペアが含まれます。キー/値ペアには、インシデントに関する追加の詳細のマップを含めることができます。

キーと値のペアは、オブジェクトのテキスト・バージョンとして未検証で渡され、インシデント・メッセージに非公開ノートとして挿入されます。

連絡先のプロパティ 顧客サービス担当者情報の参照または作成に必要な情報を含むキー/値ペア。これには電子メールが含まれている必要があり、オプションでfirstNameおよびlastNameを含めることができます。

電子メールを指定しない場合は、firstNamelastNameの両方を指定する必要があります。

インシデント番号を格納する文字列コンテキスト変数 インシデント番号を格納する文字列変数の名前。

インテリジェント・アドバイザ

このコンポーネントを使用して、スキルからOracle Intelligent Advisorインタビューにアクセスします。

このコンポーネントを使用する前に、インテリジェント・アドバイザ・サービス統合を作成する必要があります。インテリジェント・アドバイザ・サービスの追加を参照してください。また、インタビューがインテリジェント・アドバイザ・ハブにデプロイされ、チャット・サービス・チャネルでアクティブ化されている必要があります。インタビューは匿名ユーザー向けである必要があります。ポータル・ユーザーまたはエージェント・ユーザーのインタビューにはアクセスできません。

コンポーネントのプロパティを使用して、次のインタビュー設定を指定できます:

  • タイトルと説明を表示するかどうか
  • 肯定、否定、不確実のボタンのラベル
  • リセット、前の質問に戻る(元に戻す)、インタビューの終了のために、ユーザーが入力する文字列
  • インタビューの終了時に表示するテキスト
  • 説明を表示するかどうかという質問を表現する方法
  • ファイルのアップロードが完了したことを示すためにユーザーが入力する文字列
  • インタビューに渡す属性値とコネクタ・パラメータ
  • 使用するプロジェクトロケール
インテリジェント・アドバイザのプロパティ

インテリジェント・アドバイザ・コンポーネントのプロパティは次のとおりです。

プロパティ 説明
インテリジェント・アドバイザ・サービス名 「設定」→「追加サービス」で構成されたインテリジェント・アドバイザ・サービスの名前。
デプロイメント・プロジェクト名 インテリジェント・アドバイザ・ハブ上のアクティブなデプロイメント・プロジェクトの名前。
インタビュー結果の変数 インタビューからスキルへの復帰時にインタビューの属性値を格納するリスト変数の名前。属性値は、キーと値のペアの配列として格納されます。
すべてのスクリーン・タイトルの非表示 インタビューの画面タイトルをすべて非表示にするかどうかを示します。
説明を表示 インテリジェント・アドバイザの説明を表示するかどうかを指定します。指定できる値は、neveralwaysおよびaskです。

askに設定する場合は、systemComponent_IntelligentAdvisor_explanationAskLabelリソース・バンドル・エントリを使用して、説明を見るかどうかをユーザーに尋ねるテキストを指定します。

このプロパティを定義しない場合、動作のデフォルトはneverになります。

シード・データ インタビューに渡すインテリジェント・アドバイザの属性名と値のマップ。日付や時刻の属性には、インテリジェント・アドバイザの標準の日付と時刻の書式を使用します。例: start_date: "2010-01-31"

値を渡す属性では、ポリシー・モデリングで「URLパラメータからのシード」オプションが有効になっている必要があります。ポリシー・モデリングの操作の詳細は、「属性値と接続パラメータの引渡し」を参照してください。

接続パラメータ インタビューの開始時に渡されるキー/値接続パラメータのマップ。これは通常、外部データ統合とのインタビューに必要です。
終了インタビュー・テキスト・ラベル インタビューの最後にチャットに表示されるラベル。「オフ」に設定すると、インタビューの最後にチャットにメッセージは表示されません。デフォルトは「オン」です。つまり、構成リソース・バンドルのsystemComponent_IntelligentAdvisor_endLabel値がインタビューの最後に表示されます。
出力からHTMLタグを削除 テキストからHTMLマークアップを削除するかどうかを示します。デフォルトはfalseです。
インタビュー・ロケール インタビューを開始する言語を指定するために使用される、ISOまたはBCPの5文字のロケール・コード(en_GBなど)。

このプロパティは、ターゲットのインタビューと日付および数値の解決の両方に影響します。

コンポーネントは、コンポーネントのlocaleプロパティで指定された言語に関連付けられている名前付きインタビュー(デプロイメント)のバージョンを開始します。指定したロケールにハブ・デプロイメントがない場合、コンポーネントはデプロイメントに関連付けられているデフォルト・ロケールを使用します。

日付および数値入力の場合、値はDATEおよびNUMBERエンティティ設定に従って解決されます。エンティティの「エンド・ユーザー・ロケールの検討」を「オン」に切り替えると、このプロパティで指定されたロケール(または指定されていない場合はデフォルト)の値が解決されます。ロケールベースのエンティティ解決を参照してください。

このプロパティのデフォルト値はprofile.localeです。profile.localeに値がない場合、チャネルのロケールが使用されます。

インタビュー予定通貨 インタビューで使用される通貨のISO-4217通貨コード。このコードを指定した場合、ユーザーはその通貨に対して許可されているフォーマットでのみ通貨値を入力できます。インタビューで通貨金額の入力が求められない場合、または特定の通貨が必要ない場合は、このプロパティを空白またはnullに設定できます。
インテリジェント・アドバイザのリソース・バンドル・エントリ

インテリジェント・アドバイザ・コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティも使用されます:

リソース・バンドル・キー 説明
systemComponent_IntelligentAdvisor_answerNotValid ユーザーの回答が指定された入力マスクに準拠していない場合に「マスク済」タイプのインテリジェント・アドバイザ・インタビュー入力に表示されるメッセージ。
systemComponent_IntelligentAdvisor_defaultValue インテリジェント・アドバイザのインタビュー入力にデフォルト値がある場合に質問に追加されるテキスト。
systemComponent_IntelligentAdvisor_doneHelp タイプが「アップロード」のインテリジェント・アドバイザ・インタビュー入力に表示されるヘルプ・メッセージ。
systemComponent_IntelligentAdvisor_doneLabel ファイルのアップロードが完了したことを示すためにユーザーが入力するテキスト。

デフォルトは/doneです。

systemComponent_IntelligentAdvisor_endLabel インタビューの終了時にチャットに表示するテキスト。

デフォルトはInterview endedです。このプロパティを""に設定すると、テキストが表示されないようにできます。

systemComponent_IntelligentAdvisor_exitLabel インタビューを終了することを示すためにユーザーが入力するテキスト。

デフォルトは/exitです。

systemComponent_IntelligentAdvisor_explanationAskLabel showExplanationaskに設定されている場合に尋ねる質問。

デフォルトはDo you want to see the explanation?です。

systemComponent_IntelligentAdvisor_maskLabel 「マスクされたテキスト・ボックス」タイプのインテリジェント・アドバイザ・インタビュー入力に必要なフォーマットを表示するために質問に追加されるテキスト。

デフォルトはAnswer format: {0}です。

systemComponent_IntelligentAdvisor_noLabel ブールのFALSE値を表すために使用するラベル。

デフォルトは「いいえ」です。

systemComponent_IntelligentAdvisor_numberMinMax ユーザーが「スライダ」タイプのインテリジェント・アドバイザ・インタビュー入力に指定された範囲外の値を入力したときに表示されるメッセージ。

デフォルトはEnter a number between {0} and {1}.です。

systemComponent_IntelligentAdvisor_outOfOrderMessage ユーザーが前のインテリジェント・アドバイザ・インタビュー・メッセージでボタンをタップしたときに表示されるエラー・メッセージ。

デフォルトは:

You have already answered this question. When you want to step backwards to change a previous answer, say {0}.

systemComponent_IntelligentAdvisor_resetLabel 最初の質問に戻ることを示すためにユーザーが入力するテキスト。

デフォルトは/resetです。

systemComponent_IntelligentAdvisor_resumeSessionPrompt ユーザーがインタビューが完了する前に残したインタビューを開始するかどうかを尋ねられる質問。

デフォルトは:

Do you want to restart the interview from where you previously left?

systemComponent_IntelligentAdvisor_uncertainLabel 値がわからない場合にユーザーが入力できるラベル。このラベルは、オプションのブール・ラジオ・ボタンに表示されます。

デフォルトはUncertainです。

systemComponent_IntelligentAdvisor_undoLabel 直前の質問に戻ることを示すためにユーザーが入力するテキスト。

デフォルトは/backです。

systemComponent_IntelligentAdvisor_yesLabel ブールのTRUE値を表すために使用するラベル。

デフォルトはYesです。

systemComponent_IntelligentAdvisor_yesNoMessage ユーザーがブール・ラジオ・ボタン・タイプのインテリジェント・アドバイザ・インタビュー入力に対して無効な回答を入力したときに表示されるメッセージ。

デフォルトは:

Enter either {0} or {1}

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

Webviewコンポーネント

Webビュー・コンポーネントは、Webビューをスキル内で、またはWebチャネルで実行されるスキルの場合はブラウザ・タブで開きます。

プロパティ 説明
Webビュー・コンポーネント・サービス Webビュー・コンポーネント・サービスの名前。
サービスの入力 変数名のカンマ区切りリスト。これらの変数名は、スキルからWebビューに送信されるパラメータです。
サービスの出力 ユーザーがWebビュー内で対話を完了した後でボットに返されるWebビューのペイロードを識別する変数の名前(文字列値)。

ペイロードはこの変数に格納されるため、これにダイアログ・フロー定義内で後でアクセスできます。たとえば、出力コンポーネントでこれを参照できます。

コンポーネントService URL 「サービスへの入力」プロパティに対して設定された変数名がパラメータとして送信されるベースURL。これは、Webサーバーによって提供されるベース・エンドポイントです。このプロパティは、現在のリリースではサポートされていません(「サービスの作成」ダイアログでこれを構成します)。ただし、以前のバージョンで作成されたスキルは引き続き機能します。
イメージURL プロンプトが表示されたイメージのURL。
認可トークン 「コンポーネントService URL」プロパティで指定されたURLへのリクエストとともに送信される認可トークン。このプロパティの形式は、Basic <token>またはBearer <token>です。
サービスの問合せパラメータ そのキー/値ペアが、POSTリクエストに追加された問合せパラメータである、文字列化されたJSONオブジェクト。
Webビュー・コンポーネントの遷移アクション

Webビュー・コンポーネントには、戻すことができるいくつかの組込みトランザクション・アクションがあります。

これらのアクションの遷移は、コンポーネントのプロパティ・インスペクタの「トランジション」タブでマップできます。

トランザクション 説明
cancel ユーザーが「取消」ボタンをタップしたときにトリガーされます。
system.textReceived ユーザーがボタンのいずれかをタップするのではなく、テキストを入力したときにトリガーされます。
unexpectedAction ユーザーが前の返信からボタンをタップしたときにトリガーされます。
Webビュー・コンポーネントのリソース・バンドル・エントリ

Webビュー・コンポーネントでは、スキルのリソース・バンドルに格納されている次のプロパティも使用されます:

リソース・バンドル・キー 説明
systemComponent_Webview_cancelLabel Webビューを起動せずにこの状態を終了する取消ボタンのラベル。

デフォルトはCancelです。

systemComponent_Webview_linkLabel Webビューを起動するボタンのラベル。

デフォルトはTap to continueです。

systemComponent_Webview_prompt ユーザーがリンクをタップしてWebビューを起動するメッセージ。

デフォルトはPlease tap on the link to proceedです。

リソース・バンドル・エントリのデフォルト・メッセージを変更するステップは、リソース・バンドル・エントリの変更を参照してください。

ユーザーに通知

このコンポーネントを使用して、Oracle Digital Assistantに登録されているタイプのクラウドベースのイベントが発生したときにユーザーに通知を送信します。イベント・タイプの登録およびイベントを使用するためのデジタル・アシスタントの構成の詳細は、外部イベントを参照してください。

プロパティ 説明
ユーザーID (オプション)イベントの受信時に通知するユーザーを動的に決定する場合は、ユーザーのメッセンジャー・サービスから返される統合ユーザーIDを入力します。この値が設定されている場合、イベントが生成されると、デジタル・アシスタントはこのIDをメッセンジャー・サービスに渡して、チャネルなどのユーザー・データおよびユーザーのチャネルのIDを取得して、特定のユーザーに通知できるようにします。このプロパティは、SlackおよびTwilioチャネル、およびデジタル・アシスタントとすでにやり取りしているユーザーに対してのみ機能します。
通知メッセージ ユーザーに返されるメッセージ。

このメッセージでは、次の形式の式を使用して、イベントの情報にアクセスできます。

  • イベント・データ・コンテンツ:
    ${skill.system.event.value.application.data.<propertyName>}
  • イベント・コンテキスト・コンテンツ:
    ${skill.system.event.value.application.context.<propertyName>}

イベントのパブリッシュ

このコンポーネントを使用して、Oracle Digital Assistantに登録されているタイプのクラウドベースのイベントを外部に公開します。イベント・タイプの登録およびイベントを公開および消費するためのデジタル・アシスタントの構成の詳細は、「外部イベント」を参照してください。

プロパティ 説明
名前 公開されるイベントのタイプの名前
データ JSON形式のイベントのペイロード。

データ・プロパティの値として使用できるペイロードの例を次に示します:

{
    "size": "Large",
    "type": "Veggie"
}

ビジュアル・フロー・デザイナでのコンポーネントの変更

ビジュアル・フロー・デザイナでは、YAMLベースのダイアログ・フロー・エディタの一部であった多数のコンポーネントが変更されたか、使用できなくなりました。主な変更点は次のとおりです。

  • ConditionExistsおよびConditionEqualsコンポーネントはサポートされていません。かわりに「切替え」コンポーネントを使用できます。
  • TextListおよびOutputコンポーネントはサポートされていません。かわりに、「メッセージの送信」「質問をする」および「コンポジット・バッグを解決する」テンプレート、および「ユーザー・メッセージング」カテゴリのテンプレート(ほとんどは「共通レスポンス」コンポーネントに基づくテンプレート)を使用できます。
  • 「エンティティの解決」および「共通レスポンス」コンポーネントは、常にsystem.nlpresult変数からエンティティのスロットを試行するようになりました。

    そのため、nlpResultVariableプロパティは不要になり、これらのコンポーネントから削除されました。

  • autoNumberPostbackActions変数およびコンポーネント・プロパティはサポートされていません。自動採番は、スキルの「タスク・フローでのポストバック・アクションでの自動採番の有効化」構成設定(またはデジタル・アシスタントの「ポストバック・アクションでの自動採番の有効化」設定を使用してデジタル・アシスタント・レベル)を使用して、スキル・レベルで構成できます。
  • autoTranslate変数およびtranslateコンポーネント・プロパティは使用できません。これらは、スキル・レベルで設定されている「ユーザー入力メッセージの翻訳」および「ボット・レスポンス・メッセージの翻訳」プロパティに置き換えられます。
  • 共通レスポンスおよび解決エンティティ・コンポーネントのtransitionAfterMatchコンポーネント・プロパティはサポートされなくなりました。この機能を取得するには、エンティティ・イベント・ハンドラを使用します。
  • 共通レスポンスおよび解決エンティティ・コンポーネントのuseFullEntityMatchesプロパティの値がtrueにデフォルト設定されるようになりました。

    つまり、解決されたエンティティの値がオブジェクトとして返され、文字列値を返す適切なオブジェクト・プロパティを指定する必要があります。

  • 共通レスポンスおよび解決エンティティ・コンポーネントのcancelPolicyプロパティの値が、lastEntityではなくimmediateにデフォルト設定されるようになりました。

    つまり、取消遷移は、バッグ・アイテムの最大ユーザー入力試行に対して設定された値に達した後に発生します。この値が設定されていない場合、コンポーネント全体のmaxPrompts値に達したときに、コンポーネントによってこの遷移が起動されます。

  • インサイト・コンポーネント・プロパティinsightsIncludeおよびinsightsEndConversationはサポートされていません。モジュラ・フローではすでに会話が記述されているため、insightsEndConversationは必要ありません。会話は、最上位フローの最後の状態に達すると終了します。

ユーザー・メッセージ・コンポーネントのメッセージ処理

通常、ユーザーは次の方法でメッセージに応答する場合があります:

  • フリー・テキストの入力によって。

  • ロケーションの送信によって。

  • マルチメディア・オプションを使用したイメージ、オーディオ・ファイル、ビデオまたはファイルのアタッチメントの送信。

  • ボットによる最新のメッセージ出力に表示されたポストバック・ボタンのいずれかのタップ。

  • 会話の以前のメッセージへのスクロールとそのボタンのいずれかのタップによって。

フリー・テキストの処理

ユーザーがフリー・テキストを入力すると、共通レスポンス・コンポーネントによって、まずvariableプロパティで指定された変数値としてこの入力が検証されます。テキストが有効な値である場合、これらのコンポーネントによってtextReceived遷移がトリガーされます。textReceived遷移を定義しない場合、ダイアログ・エンジンはnext遷移または予期しないユーザー入力イベントで定義された状態に遷移します。

ヒント:

ユーザーによるボタンのタップやアタッチメントまたはロケーションの送信を予期している場合は、textReceivedを使用して予期しないユーザー・メッセージを処理します。

マルチメディア・メッセージの処理

ユーザーがファイル、イメージ、ビデオまたはオーディオ・ファイルを送信すると、共通レスポンス・コンポーネントによって添付情報がJSONオブジェクトとして、コンポーネントに対して指定されている変数プロパティに格納されます。このオブジェクトの構造は次のとおりです:
{
  "type": "video",
  "url": "https://www.youtube.com/watch?v=CMNry4PE93Y"
}
たとえば、ビデオのアタッチメントがmyVideoという変数に格納されている場合は、FreeMarker式${myVideo.value.url}を使用してビデオにアクセスできます。

ロケーション・メッセージの処理

ユーザーが自分の現在のロケーションを送信すると、共通レスポンス・コンポーネントによってロケーション情報がJSONオブジェクトとして、コンポーネントに対して指定された変数プロパティに格納されます。このオブジェクトの構造は次のとおりです:
{
  "title": "Oracle Headquarters",
  "url": "https://www.google.com.au/maps/place/…",
  "longitude": -122.265987,
  "latitude": 37.529818
}
たとえば、ロケーションがlocationという変数に格納されている場合は、FreeMarker式${location.value.latitude}を使用して緯度にアクセスできます。

ポストバック・アクション

ボタン、リンク、リスト・アイテムなどのレスポンス・メッセージ内のアクションは、ポストバック・アクションとして実装されます。たとえば、ユーザーがボタンをタップすると、そのポストバックがレンダリングされます。そのペイロードは、状態の名前、ダイアログ・フロー変数に対して設定される値、および遷移アクションを保持するJSONオブジェクトです。たとえば、ユーザーがペパロニ・ピザの「今すぐオーダー」ボタンをタップすると、次のペイロードがレンダリングされます:
{
	"action": "order",
	"state": "OrderPizza",
	"variables": {
		"orderedPizza": "PEPPERONI",
		"orderPizzaImage": "http://pizzasteven/pepperoni.png"
	}

順序外アクションの検出方法

ポストバックがレンダリングされた状態を識別するペイロード内のsystem.stateプロパティにより、システムは、ユーザーが現在のスコープ外で発生するアクション(以前のレスポンスからのボタンのタップなど)をいつ実行するかを識別できます。

        "system.postbackActions": {
          "small": {
            "postback": {
              "variables": {
                "size": "Small"
              },
              "system.botId": "44F2405C-F317-4A3F-8250-617F54F01EA6",
              "action": "Small",
              "system.state": "size"
たとえば、ユーザーがペパロニ・ピザの「今すぐオーダー」ボタンをタップしたが、オーダーを完了するかわりに、さらに前のメッセージまでスクロールし、パスタ料理の「今すぐオーダー」をクリックする場合があります。

この時点で、受信ポストバック・アクションのペイロードのsystem.stateプロパティが現在の状態と比較されます。2つが一致しなくなっている場合、スキルはダイアログ・フローの構成に応じて、ユーザーのリクエストを受け入れるか拒否できる遷移を実行します。

デフォルトでは、デジタル・アシスタントは順不同アクションを許容します。これは、変数値がリセットされることを意味します。フローの「順不同のメッセージ」アクションとskill.system.event.value.outOfOrderMessage.outOfOrderStateおよびskill.system.event.value.outOfOrderMessage.currentState変数を使用して、この動作をスキル全体またはダイアログ・フローの特定の状態に対してカスタマイズできます。
  • skill.system.event.value.outOfOrderMessage.outOfOrderState— 受信ポストバック・ペイロード(順不同のメッセージ)のstateプロパティの値を保持します。

  • skill.system.event.value.outOfOrderMessage.currentState— 現在の状態の値を保持します。
    ノート

    ユーザーがフロー内でスキップして戻るときに、ポストバック・ペイロードで状態プロパティを設定したコンポーネントによってのみ、スキルは応答できます。OAuthAccountLinkコンポーネントでは、このプロパティは設定されません。

メッセージ処理状態を使用した順不同のメッセージ処理のオーバーライド

順序外メッセージ・システム遷移イベントを、順序外メッセージを処理するために指定したフローをコールする呼出しフロー・コンポーネントにマップすることで、順序外メッセージ処理のデフォルト動作を変更できます。