VoiceBot Exchange

セルフサービスを統合します仮想エージェント閉じた ライブのヒューマンエージェントの代わりに顧客とのやり取りを処理するソフトウェアアプリケーション。を音声スクリプトと統合しますこのアクションは、スクリプトのループで使われます。スクリプトには、少なくとも2つのVoiceBot Exchange アクションを含める必要があります。仮想エージェントはこのアクションをサポートする必要があります。

Voicebot Exchange アクションは、複雑なバーチャルエージェントに使用するか、ターンごとにバーチャルエージェントの動作をカスタマイズする必要がある場合に使用します。コンタクトとバーチャルエージェント間の会話をターンごとに監視します。各発話閉じた 連絡先が言うことまたはタイプすること。を仮想エージェントに送信します。仮想エージェントは、発話の意図閉じた 連絡先の発言/入力する内容の背後にある意味または目的。連絡先が伝えたいこと、または達成したいこと。と文脈を分析し、どう応答するかを決定します。アクションは、コンタクトにバーチャルエージェントの応答を渡します。会話が完了すると、アクションはスクリプトを続行します。

これは、音声バーチャルエージェントでの使用に推奨されるアクションです。バージインまたは入力なしを設定したい場合、追加のスクリプトが必要です。SIP閉じた 音声通話やビデオ通話などのマルチメディア通信セッションのシグナリングと制御に使用されるプロトコル。バックチャネル接続を使用している場合、Voicebot Conversationアクションを使用する必要があります。

このアクションをダブルクリックするとバーチャルエージェントハブが開き、ここですべての仮想エージェントを管理できます。

依存関係

  • スクリプトには、ループで接続されたVoiceBot Exchange アクションを少なくとも2つ含める必要があります。
  • このアクションを使用するには、仮想エージェントが会話のターンごとのカスタマイズをサポートしている必要があります。
  • 会話のターンとは次のように定義されます:

    1. 仮想エージェントに送信される連絡先の発話。
    2. 発話を処理し、カスタムペイロード情報を定義する仮想エージェント
    3. 連絡先に返される回答
    4. nextPromptBehaviorsプロパティで決定される、実行する追加のアクション(データベースや外部API呼び出しなど)。インタラクションが完了したときや、コンタクトがライブエージェントに転送されるときに、会話ループを終了するように設定することもできます。
  • カスタムペイロードをGoogle Dialogflow ESまたはGoogle Dialogflow CX仮想エージェントに含める場合は、カスタムペイロードのベストプラクティスとガイドラインに従ってください。  空のテキストボックスを持つデジタルチャットスキルのプッシュ通知ページの画面キャプチャ。CXおよびESのガイドラインは、このページに記載されています。

サポートされているスクリプトタイプ

電話スクリプトタイプのアイコン-そこから出てくる音を示す曲線のある古いスタイルの電話受話器。

電話

類似アクションの比較

以下のアクションには同様の機能がありますが、いくつかの重要な相違点があります。

  • Textbot Conversation:このアクションは、非常にシンプルなバーチャルエージェントにのみ適しています。ターンごとの仮想エージェントの行動をカスタマイズすることはできません。これは現在CXoneでサポートされていません。
  • Textbot Exchange:このアクションは、より複雑なバーチャルエージェントのインタラクションに使用されます。これにより、交換パラメーターを含め、コンタクトと仮想エージェント間の会話のさまざまな側面をカスタマイズできます。
  • Voicebot Conversation:このアクションは、非常にシンプルなバーチャルエージェントにのみ適しています。ターンごとの仮想エージェントの行動をカスタマイズすることはできません。SIPバックチャネル接続を使用する場合でバーチャルエージェントでサポートされている場合、Voicebot Conversationを使用する必要があります。
  • Voicebot Exchange:このアクションは、より複雑なバーチャルエージェントのインタラクションに使用されます。これにより、交換パラメーターを含め、コンタクトと仮想エージェント間の会話のさまざまな側面をカスタマイズできます。

サポートされている仮想エージェント

このアクションは、次の仮想エージェントをサポートします。

このアクションに仮想エージェントを割り当てる前に、バーチャルエージェントハブで仮想エージェントにアプリを追加して構成する必要があります。各仮想エージェントに必要なアプリは1つだけです。スクリプト内の複数の仮想エージェントアクションに同じアプリを割り当てることができます。構成の詳細については、使用しているバーチャルエージェントプロバイダーのヘルプページを参照してください。

入力プロパティ

これらのプロパティは、アクションが実行時に使用するデータを定義します。

一部のプロパティにはSnippetアクションが必要です。このページのスニペットアクションコードセクションには、必要なコードに関する情報が記載されています。

プロパティ

説明

Caption

スクリプト内でこのアクションを一意に識別できる、短いフレーズを入力します。デフォルトはアクション名です。

virtualAgentID バーチャルエージェントハブで選択された仮想エージェントの名前。バーチャルエージェントハブStudioアクションに仮想エージェントアプリを割り当てると、このプロパティが自動的に設定されます。名前は、バーチャルエージェントハブアプリのVirtual Agent (Bot) Nameフィールドで使用される名前です。
customPayload

このプロパティは、カスタムペイロードデータを仮想エージェントに渡す必要がある場合にのみ設定します。カスタムペイロードオブジェクトはStudioスクリプトから設定されます。これを使用して、ウェルカムメッセージで使用されるCRM閉じた 連絡先、販売情報、サポートの詳細、ケース履歴などを管理するサードパーティのシステム。からの連絡先の名前などの情報を渡すことができます。

スクリプトから仮想エージェントにデータを渡すJSONオブジェクトの名前を入力します。Snippetアクションでカスタムペイロードオブジェクトを定義する必要があります。 空のテキストボックスを持つデジタルチャットスキルのプッシュ通知ページの画面キャプチャ。オブジェクトはスニペットまたはcustomPayloadプロパティのいずれかでJSONに変換する必要があります。

特定の仮想エージェントプロバイダーの要件:

仮想エージェントがスクリプトに返すデータを処理する必要がある場合は、このプロパティを使用しないでください。代わりにcustomPayloadVarName (out)変数を使用します。

nextPromptSequence

連絡先に対して再生される仮想エージェントから受信した応答。このプロパティは、変数nextPromptSequenceVarName (out)と関数asJSON()を使用して設定します。SnippetアクションでnextPromptSequenceVarName (out)をJSONに変換することもできます。

nextPromptBehaviors

会話における次のプロンプトの構成と動作を指定します。Snippetアクションを使用し、デフォルトの次のプロンプト動作または次のプロンプト動作スニペットの例に従って、表示する動作を定義します。 空のテキストボックスを持つデジタルチャットスキルのプッシュ通知ページの画面キャプチャ。この例では、コンフォートノイズ、DTMFコレクション、およびオーディオ再生中に連絡先が話すことを許可する(バージ)ことを設定するために使用できるプロパティについて説明します。

スニペットコードで使用したオブジェクトの名前でnextPromptBehaviorプロパティを設定します。これにより、このプロパティとそのアクションに設定が渡されます。たとえば、次のプロンプト動作スニペットのを使用する場合、このプロパティに{nextPromptBehaviorsOutjson} と入力します。

botSessionState

バーチャルエージェントプロバイダーは、コンタクトとバーチャルエージェント間の各会話に、一意の識別子を割り当てます。この識別子は、会話のターンごとに新しいセッションが作成されるのを防止できます。プロバイダーは、会話の開始時に識別子を作成し、最初の応答とともにスクリプトに渡します。スクリプトは、このアクションのbotSessionStateVarName (out)プロパティで指定された変数に識別子を格納します。そして、その識別子をbotSessionStateプロパティに渡します。

仮想エージェントが正しく動作するには、このプロパティが適切に設定されている必要があります。設定方法の詳細については、ボットセッション状態スニペットヘルプページを参照してください。

automatedIntent

収集されたユーザー入力を仮想エージェントに解釈させるのではなく、仮想エージェントが応答する特定のインテントを名前で入力します。一般的な使用例は、仮想エージェントから最初のウェルカムメッセージを引き出すことです。Welcomeは、最初の挨拶の標準文字列です。

出力プロパティ

これらのプロパティには、実行したアクションから返されたデータを保持する変数が含まれています。これらはアクションが完了したときに参照・使用することができます。

プロパティ

説明

nextPromptBehaviorsVarName (out)

次の会話ターンでユーザーにプロンプトを表示するための動作を定義します。

nextPromptSequenceVarName (out)

仮想エージェントからの応答を保持し、nextPromptSequenceプロパティに渡します。

customPayloadVarName (out)

仮想エージェントからスクリプトにカスタムJSONデータを返します。仮想エージェントが提供するデータをスクリプトで処理する場合は、この変数を使用します。フルフィルメントデータが含まれる場合があります。

仮想エージェントにデータを提供する場合は、customPayloadプロパティを使用します。

errorDetailsVarName (out)

エラーインテントシーケンスを要求します。ライブエージェントへの転送につながる可能性があります。

intentInfoVarName (out)

現在のユーザーの意図を示す仮想エージェントからの詳細を保持する変数。

botSessionStateVarName (out)

仮想エージェントプロバイダーから送信されたボットセッション状態識別子をスクリプトが格納するための変数を保持します。変数の内容はbotSessionStateプロパティに渡されます。

仮想エージェントが正しく動作するには、このプロパティが適切に設定されている必要があります。設定方法に関する詳細は、ボットセッション状態スニペットのヘルプページを参照してください。

結果ブランチ条件

結果の分岐条件を使用すると、アクションが実行されたときにさまざまな結果を処理できるように、スクリプトにブランチを作成できます。

状態

説明

Default スクリプトが他のブランチのいずれかを取る必要がある条件を満たさない限り、パスが取られます。他のブランチが定義されていない場合にも使用されます。
OnPromptAndCollectNextResponse

仮想エージェントがインタラクションを継続することを決定し、コンタクトからの人間の入力の準備ができている場合に取られるパス。会話の次のターンのプロンプト。

OnError 予期しない問題(たとえば、接続不良、構文エラーなど)が発生したときに使用されるパス。_ERR変数には、問題の簡潔な説明を入力する必要があります。
OnReturnControlToScript 仮想エージェントが会話の終了を示し、通話を転送または終了するための制御をStudioスクリプトに戻す場合に使用されるパス。customPayload結果で処理されるフルフィルメントデータがある場合があります。
OnDTMFBreakout

次の場合にたどるパス DTMF閉じた ユーザーが電話のキーパッドのキーを押すかタップしたときに生成される信号音。スクリプトのルールが満たされました。

OnUserInputTimeout

プロンプト行動スニペット(デフォルトまたはのプロンプト行動スニペット)で指定された時間内にユーザーからの応答がない場合に取られるパス。

GoogleDialogflowの場合は、バーチャルエージェントハブ Dialogflowアプリで発生させたいイベントを設定します。Dialogflow ESの場合は、Timeout Event フィールドを設定します。Dialogflow CXの場合、Timeout Event Handlerを設定します。イベントが設定されていない場合、デフォルトでは、Dialogflowコンソールで設定されたデフォルトのフォールバックインテントが使用されます。

必要であれば、スクリプト内の異なるポイントで異なるイベントを使用するように、このブランチを設定することができます。

OnUserInputNotUnderstood

バーチャルエージェントが相手の応答を理解できないとき、または相手がタイムアウトしたときに取られるパス。

必要なSNIPPETアクションコード

このアクションのプロパティの中には、Snippetアクションにカスタムコードを必要とするものがあります。スクリプトを作成する際は、次の例に従ってください:

Google Dialogflow CXを使用したカスタムペイロードのベストプラクティス

Google Dialogflow CXで、このアクションを使用する場合、カスタムペイロードを統合するためには、以下のベストプラクティスに従ってください。

  • DialogflowCXは、DialogflowESのようにデータをDialogflowインテント閉じた 連絡先の発言/入力する内容の背後にある意味または目的。連絡先が伝えたいこと、または達成したいこと。に渡すためにコンテキストを使用しません。
  • カスタムデータはJSONキー値ペアを使用してDialogflow CXに渡すことができます。スクリプト内のSnippetアクションに、ダイナミックcustomPayloadオブジェクトを作成して、それにキー値ペアを追加します。たとえば。

    DYNAMIC customPayload
    customPayload.ani = ani
    customPayload.contactID = contactId
    customPayload.masterContactId = masterId
    customPayloadJSON = "{customPayload.asJSON()}"	
  • スクリプトの交換または会話アクションで、値にasJSON()関数を持つ変数を使用してcustomPayloadプロパティを構成します。この変数はcustomPayloadオブジェクトにあります。
  • QueryParametersPayloadプロパティを使用して、customPayloadJSONをバーチャルエージェントに渡します。Google Dialogflow CX用のQueryParameters中央から右上隅の外側方向に向いた矢印を持つ正方形。に関するGoogleのドキュメンテーションを参照してください。
  • QueryParametersによってパスされるデータはDialogflowCXのwebhookが受け取ります。 空のテキストボックスを持つデジタルチャットスキルのプッシュ通知ページの画面キャプチャ。パスされるデータを処理するために、Dialogflow CXコンソールでコードとを作成することができます。
  • DialogflowCXバーチャルエージェントからスクリプトにカスタムデータを渡すには、DialogflowCXコンソールのカスタムペイロードフィールドを使用します。 空のテキストボックスを持つデジタルチャットスキルのプッシュ通知ページの画面キャプチャ。CXoneで使用している仮想エージェントのコンソールにいることを確認してください。スクリプトの音声またはチャットStudioアクションでcustomPayloadVarName (out)変数を使用して、これをスクリプトにマッピングします。たとえば、これを使用して次のプロンプトの動作を設定できます。
  • customPayloadを使用して設定されたパラメーターは、外部Webhookでのみ使用できます。外部Webhookの外部で使用するパラメーターを設定する場合は、session_paramsフィールドを持つSnippetアクションにそれらを設定します。たとえば。

    {
    	"session_params":
    	{ 
    		"name": "Winnie Le Pooh"
    		"job": "Food critic"
    		"location": "Hundred Acre Wood"
    	}
    }

    次の構文を使用して、DialogflowCXエージェントインテントのセッションパラメタにアクセスします。

    $session.params.name = Winnie Le Pooh

    $session.params.job = Food critic

    $session.params.location = 100 Acre Wood

    セッションパラメーターは、DialogflowCXバーチャルエージェントでのみ使用されます。DialogflowESボットで同様の結果を得るには、コンテキストを使用します。

  • コンタクトが話しの途中一時停止したときにバーチャルエージェントが待機する時間を構成するには、maxPostEnergySilenceMSパラメーターnextPromptBehaviorsまたはdefaultNextPromptBehaviorSnippetアクションに追加します。

Google Dialogflow ESを使用したカスタムペイロードのベストプラクティス

Google Dialogflow ESで、このアクションを使用する場合、カスタムペイロードを統合するためには、以下のベストプラクティスに従ってください。

スクリプトの例

この例は完全なスクリプトではありません。このアクションを使用するには、追加のスクリプト作業が必要です。

VoiceBot Exchangeアクションをループ内で使用する必要があります。つまり、スクリプトで少なくとも2つ使用する必要があります。最初のアクションは、仮想エージェントのAPIへの呼び出しを開始し、その前にデフォルトの次のプロンプト動作Snippetアクションを実行する必要があります。最初のアクションはWelcomeDefaultで、最初のスクリプトループ、つまり1つの会話型の「ターン」を開始します。

VoicebotExchangeアクションを使用するスクリプトの例。

このスクリプトをダウンロードする。

Google Dialogflow ESを使用したカスタムペイロードのスクリプト例

この例は完全なスクリプトではありません。このアクションを使用するには、追加のスクリプト作業が必要です。

このスクリプトは、Google Dialogflow ESバーチャルエージェントとカスタムペイロードを統合する方法の例です。このスクリプトではVoicebotExchange アクションを使用しますが、カスタムペイロードの統合プロセスは同じです。

Google Dialogflow CXでカスタムペイロードを処理する方法を示すスクリプト例。

このスクリプトをダウンロード

別のタイムアウトイベントのスクリプト例

この例は完全なスクリプトではありません。このアクションを使用するには、追加のスクリプト作業が必要です。

スクリプト内の異なるポイントで、異なるタイムアウトイベントの使用が可能です。たとえば、UserInputTimeout プロパティがトリガーされた1回目と2回目で、異なるタイムアウトイベントを使用したい場合があるとします。このスクリプトの例では、これを実現するための一つの可能な方法を示しています。

このスクリプトでは、Snippet アクションを使用して、タイムアウトカウンターを作成およびインクリメントします。2回目のタイムアウト後、Snippet アクションを使用して、別のタイムアウトイベントを設定します。代替のタイムアウトイベントは、automatedIntent プロパティを介してSnippet アクションからボイスボットアクションに渡されます。

このスクリプトをダウンロード