フォームノードはUIフォームをダイアログタスクに統合することができます。これにより、特定のユースケースでユーザー入力をキャプチャするためにフォームを表示することが容易になります。
フォームノードの主な目的は、ダイアログタスクでUIフォームを表示し、そのフォームをチャネル上のエンドユーザーが利用できるようにすることです。たとえば、新規口座開設用に顧客情報の詳細をキャプチャするためのフォームがあるバンキングボットを想像してみましょう。各エンティティ値の入力を促す代わりに、フォームを使用するほうがよい場合があります。
ダイアログタスクにフォームノードを追加する
- フォームノードを追加したいダイアログタスクを開きます。
- 追加したいノードの隣にカーソルを合わせ、[+ ]アイコンをクリックします。
- フォームに移動し、利用可能なリストからUIフォームを選択します(他のノードのようにダイアログ内から新しいフォームノードを作成することはできないことにご注意ください)。
- コンポーネントプロパティのパネルが開きます。
コンポーネントプロパティを設定する
フォームコンポーネントのプロパティでは、一般的な設定、ユーザー、エラープロンプトを設定することができます。
注意:このセクションで設定または変更した設定は、このノードを使用する他のすべてのダイアログタスクに反映されます。
- エンティティノードの名前と表示名を入力します。エンティティ名にスペースを含めることはできません。UIフォームプロパティは、選択したUIフォームに設定されており、変更することはできません。
- このフォーム用にユーザーに対して表示させたいプロンプトメッセージを、プロンプトメッセージテキストボックスに入力します。そうすると、フォームを開始するためのリンクをクリックするようユーザーに指示を与えられます。
{{context.form_node.formLink}}
にコード化されているコンテキスト変数の参照を変更しないことをお勧めします。ユーザープロンプトにチャネル固有のメッセージを入力することができます。詳細については、プロンプトエディタの使用を参照してください。 - エラーメッセージ ボックスでデフォルトのエラーメッセージを確認し、必要に応じて変更してください。詳細については、プロンプトエディタの使用を参照してください。
- メッセージの送信 ボックス内で、フォームの送信が成功した後に表示されるデフォルトメッセージを確認し、必要に応じて変更してください。このメッセージはUIフォームがブラウザタブで開かれている場合にのみ適用され、Web/Mobile SDKでは適用されません。詳細については、プロンプトエディタの使用を参照してください。
- Web/Mobile SDKフォームの動作セクションでは、フォームがどのように表示されるかを設定できます。次のオプションをご確認ください。
- 全画面のポップアップフォームを開く – これがデフォルトの設定で、SDKチャットインターフェイス上でフォームが全画面表示されます。
- インラインフォームを開く – フォームはチャットウィンドウ内でインラインフォームとして開かれます。
- 変数名前空間]セクション(ver8.0で導入)で、このノードとその遷移の実行に使用される変数名前空間を関連付けます。このオプションは、ボットで変数名前空間が有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、このノード用にカスタマイズできます。詳細については、「名前空間の管理」を参照してください。
インスタンスプロパティを設定する
インスタンスプロパティを使用して、設定するユーザータグを定義します。
注意:インスタンスプロパティパネルの設定は現在のダイアログタスク固有のものであり、このエンティティノードを使用する他のダイアログタスクには反映されません。
- エンティティノードのインスタンスプロパティアイコンをクリックします。
- カスタム タグは、ボットの会話のカスタムプロファイルを構築するためのタグを定義しています。詳細についてはこちらを参照してください。
接続プロパティを設定する
ノードの接続ペインから、次に実行するノードを決定することができます。ダイアログタスク内の任意のエンティティまたはコンテキストオブジェクトの値に基づいて条件文を記述したり、移行にインテントを使用することができます。
コンポーネントの移行を設定するには、以下の手順に従います。
- デフォルト接続の下にある利用可能なノードから選択できます。
- 条件付きフローを構成するには、IFを追加をクリックします。
- 次のいずれかの基準に基づいて条件式を設定します。
- エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する、等しい、より大きいか等しい、より小さいか等しい、等しくない、より大きい、より小さい。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、値ボックスに数値を入力します。例:PassengerCount(エンティティ)が5(指定された値)より大きい(演算子)。
- コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します:存在する、等しい、より大きいか等しい、より小さいか等しい、等しくない、より大きい、より小さい。例:コンテキスト、エンティティ、PassengerCount(コンテキストオブジェクト)は5(指定された値)より大きい(運算子)
- インテント:次のユーザー発言と一致するインテントを選択します。
- Then go toのドロップダウンリストから、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。たとえば、PassengerCount(エンティティ)が5(指定された値)よりも大きい(演算子)場合、Offers(サブダイアログ)に進みます。
- Elseのドロップダウンリストから、条件式が失敗した場合に実行するノードを選択します。
注意:複数のIf条件を書きたい場合は、最後のIf条件式の下にあるElse Ifを追加をクリックしてください。