ボットセッション状態スニペット

このヘルプページの情報は、StudioDesktop Studioの両方に適用されます。

Bot セッション Stateスニペットは、botSessionStateプロパティを持つアクションを使用するときにスクリプトで必要です。 これには、Textbot ExchangeVoicebot Exchangeなどのアクションが含まれます(以降、両方のアクションを単にExchangeと呼びます)。 バーチャルエージェント閉じた ライブの人間のエージェントの代わりに顧客とのやり取りを処理するソフトウェアアプリケーション。が期待どおりに動作するには、botSessionStateプロパティを適切に設定する必要があります。 これを行うには、スクリプトでこのスニペットを作成し、次のセクションに示すようにアクションを正しく設定する必要があります。

botSessionStateプロパティは、コンタクトとバーチャルエージェント間の会話の一意の識別子を保持する変数で設定する必要があります。 バーチャルエージェントプロバイダーによって自動的に割り当てられます。 識別子は、会話のターンごとに新しいセッションが作成されるのを防ぎ、バーチャルエージェントがターン間でコンテクストを維持するのに役立ちます。

プロバイダーは、会話の開始時に識別子を作成し、最初の応答とともにスクリプトに渡します。 スクリプトは、botSessionStateVarName (out) プロパティで指定された変数に識別子を格納します。 Exchange アクションプロパティで指定された変数に識別子を格納します。 最後に、スクリプトは前のターンのbotSessionStateVarName (out)プロパティの識別子をbotSessionStateプロパティに渡します。

スクリプトは、このプロパティまたはその変数に書き込んではなりません。 ボットセッション状態識別子を使用するには、スクリプトを正しく設定する必要があります。

このスニペットは、Google Dialogflow CXBot セッション Stateスニペットと同じ目的を果たすカスタム会話IDをカスタムペイロードスニペットに設定できるを使用しない限り必要です。 カスタム会話IDは、あるCXインスタンスから別のインスタンスにコンタクトを転送Dialogflowときに使用されます。 どちらのIDも使用しない場合、会話のターンごとに新しいセッションIDが生成され、バーチャルエージェントは会話のコンテキストを保持しません。 この場合、エラーは生成されませんが、システムは期待どおりに機能しません。

スクリプトのセットアップ

Exchangeアクションを使用する場合、スクリプトに最低2つのアクションインスタンスが必要です。 各ExchangeアクションのbotSessionStateプロパティは、次のように別々に設定する必要があります。

  • Exchangeアクションの最初のインスタンスは、スクリプトの開始時のBeginアクションの直後に配置されます。 次のように設定します。
    • botSessionState:これは空でなければなりません。
    • botSessionStateVarName (out):スクリプトで識別子を保存する変数の名前を設定します。
  • 2番目のExchangeアクションは、スクリプトの後の部分にあります。 次のように設定します。
    • botSessionStateExchangeアクションの最初のインスタンスにおいてbotSessionStateVarName (out)で使用される変数を設定します。 変数は、ボットのセッション状態識別子をJSON形式で保持する必要があります。
    • botSessionStateVarName (out):スクリプトで識別子を保存する変数の名前を設定します。
  • Exchangeアクションの3番目以降のインスタンスはオプションです。 スクリプトにこれらのインスタンスが含まれている場合は、次のように設定します。
    • botSessionStateExchangeアクションの前のインスタンスにおいてbotSessionStateVarName (out)で使用される変数を設定します。 変数は、ボットのセッション状態識別子をJSON形式で保持する必要があります。 ボットセッション状態識別子は通常、ターン間で変更されません。 ただし、変更があった場合は、変更をキャプチャするようにアクションを設定する必要があります。
    • botSessionStateVarName (out):スクリプトで識別子を保存する変数の名前を設定します。

この設定は、すべての仮想エージェントに必要です。

botSessionStateプロパティが正しく設定されていることを確認する

スクリプトトレースを使用して、このプロパティが正しく設定されていることを確認できます。

  1. バーチャルエージェントとコンタクトのインタラクションでスクリプトトレースを実行します。 連続トレースを使用するかまたは特定のANIまたはDNISのトレースをキャプチャします(音声インタラクションの場合のみ)。
  2. トレースウィンドウで、最初のVirtual Agent Hubアクション(Voicebot Exchange またはTextbot Exchange)に対応する行をクリックします。
  3. 変数リストで、botSessionState変数を確認します。 その値はnull(空白)でなければなりません。
  4. トレースウィンドウで、最初のVirtual Agent Hubアクションの後にある次の行をクリックします。
  5. botSessionState変数の値をメモしてください。
  6. トレースウィンドウで、後続のVirtual Agent Hubアクションに対応するトレースの行をクリックします。
  7. botSessionState変数の値を確認します。 ステップ5と同じである必要があります。

ボットセッション状態識別子をJSONに変換する

botSessionStateVarName (out)プロパティで使用されている変数の内容をJSONに変換して、スクリプトの2番目のExchangeアクションのbotSessionStateプロパティに渡す必要があります。 これを行うには、Snippetアクションにコードを含めるか、プロパティを直接設定します。 どちらのアプローチも許容できます。 ただし、変換されたオブジェクトを保持する変数をSnippetに作成する利点は、変換が行われている場所を簡単に確認できることです。

Snippetアクションの使用

  1. ExchangeアクションのbotSessionStateVarName (out)プロパティに、セッション状態の識別子を保持する変数の名前を設定します。 例えば、 botSessionState
  2. スクリプト内のExchangeアクションの前にあるSnippetに、次の行を追加します。

    ASSIGN botSessionStateOut = botSessionStateOut.asJSON()

    スクリプトで使用する変数名を使用してください。

  3. ExchangeアクションのbotSessionStateプロパティを、ASSIGNステートメントで使用した変数の名前に設定します。 例えば、 botSessionStateOut

プロパティでの変換

botSessionStateプロパティで変数を変換する場合は、asJSON()関数でbotSessionStateVarName (out)変数を使用します。 例:

  • botSessionStateVarName (out)botSessionState
  • botSessionStatebotSessionState.asJSON()

あるバーチャルエージェントから別のに連絡先を転送する

バーチャルエージェント間のコンタクトの転送を設定するには、ボットセッション状態IDを正しく設定する必要があります。 各バーチャルエージェントには、独自のボットセッション状態IDが必要です。 これにより、個々の仮想エージェントは、参加する会話のコンテキストを維持できます。

  • バーチャルエージェント1:ボットセッション状態変数をこのページで前述のように設定します。

  • バーチャルエージェント2:ボットセッション状態IDを保持するために、botSessionStateVarName (out)の異なる変数を使用して、同じ方法で設定します。 この仮想エージェントへの最初の呼び出しで、botSessionStateプロパティが空であることを確認してください。  会話の最初のターンは、一意のボットセッション状態IDをbotSessionStateVarName (out)の変数に返します。
  • 後続のすべてのバーチャルエージェント:ボットセッション状態IDに一意の変数を使用して、バーチャルエージェント2の場合と同じ設定を行います。

この方法は、2つのGoogle Dialogflow CXバーチャルエージェント間で転送する場合を除き、サポートされているすべてのバーチャルエージェントプロバイダーで機能します。 この場合、別の方法が必要です。