フォームノードでは、 デジタルフォーム とダイアログタスクを連携することができます。これにより、特定のユースケースのためにユーザー入力をキャプチャするフォームの提示が容易になります。フォームノードの主要なパーパスは、ダイアログタスクでUIフォームを表現し、そのフォームをエンドユーザーのチャネルで利用できるようにすることです。例として、新規口座開設のために詳細な顧客情報をキャプチャするフォームのある銀行ボットを考えてみましょう。エンティティの値をひとつひとつ指示していくのではなく、フォームを使いたいのです。
セットアップ
ダイアログタスクにおけるダイアログノードのセットアップは、以下の手順で行います。
ノードの追加
ダイアログタスクにフォームノードを追加するためには、以下の手順で行います。
- ダイアログタスクを開き、フォームノードを追加します。
- フォームノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください。
- フォームノードウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。
ノードの設定
コンポーネントプロパティ
フォームコンポーネントのプロパティでは、一般設定、ユーザー、エラープロンプトを設定できます。
メモ:このセクションで設定または変更した構成は、このノードを使用する他のすべてのダイアログタスクに反映されます。
- コンポーネントプロパティタブの一般設定セクションで、フォームノードの名前と表示名を入力します。ノード名では、スペースを含めることはできません。UIフォームプロパティは、選択したUIフォームに設定され、変更することはできません。
- プロンプトメッセージテキストボックスに、このフォームでユーザーに表示させたいプロンプトメッセージを入力します。ユーザーがリンクをクリックしてフォームを開始するように説明されています。その中でコーディングされているコンテキスト変数の(フォーム
{{context.form_node.formLink}}
の)参照を変更することは推奨されません。ユーザープロンプトにチャネル固有のメッセージを入力することができます。詳細情報については、プロンプトエディターの使用をご参照ください。 - エラーメッセージテキストボックスで、デフォルトのエラーメッセージを見直して、必要に応じて修正します。詳細情報については、プロンプトエディターの使用をご参照ください。
- メッセージの送信テキストボックスで、フォームを正常に送信した後に表示されるデフォルトのメッセージを見直して、必要に応じて修正します。このメッセージは、UIフォームがブラウザのタブで開かれている場合に限って適用されるもので、Web/モバイルSDKには適用されません。詳細情報については、プロンプトエディターの使用をご参照ください。
- Web/モバイルSDKフォームの動作セクションにおいては、フォームの表示方法を設定できます。以下のいずれかを選択できます。
- フルページポップアップフォームを開く – これはデフォルトの設定であり、SDKチャットインターフェイスにおいてフォームがフルページで開きます。
- インラインフォームを開く – フォームがチャットウィンドウ内のインラインフォームで開きます。
- 可変ネームスペースセクションにおいて、このノードとその遷移の実行に使用される可変ネームスペースを関連付けます。このオプションは、可変ネームスペースがボットに対して有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、またはこのノード用にカスタマイズできます。詳細情報は、ネームスペースの管理をご参照ください。
インスタンスプロパティ
インスタンスプロパティを使用して、設定したいユーザータグを定義します。
メモ:インスタンスプロパティタブの設定は、現在のダイアログタスクに固有のものであって、このフォームノードを使用して他のダイアログタスクに反映させることはできません。
- 「フォーム」ウィンドウで、インスタンスプロパティタブをクリックします。
- カスタム タグセクションにおいて、タグを追加して、ボット会話のカスタムプロファイルを作成します。詳しくはこちらをクリックしてください
接続プロパティ
ノードの接続タブから、次に実行するダイアログタスクのノードを決定できます。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。コンポーネント遷移のセットアップは、以下の手順に従います。
- 「フォーム」ウィンドウで接続タブをクリックします。
- 接続ルールセクションでは、デフォルトドロップダウンリストからノードを選択できます。
- 条件付きのフローを設定するには、IFの追加をクリックします。
- 以下のいずれかの基準に基づいて、条件式を設定します。
- エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、値ボックスに数値を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)。
- コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
- インテント:次のユーザーの発話に一致するインテントを選択します。
- 次へ進むドロップダウンリストから、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount(エンティティ)が5(指定値)より大きい(演算子) 場合、次へ進むオファー(サブダイアログ)になります。
- その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
- 保存をクリックします。
メモ:複数の“If”条件を書きたい場合は、最後のIf条件式の下にあるAdd Else Ifをクリックします。