Use Conversational IVR in a ScenarioTo invoke Bright Pattern’s conversational IVR feature through a scenario, you simply need to modify an inbound voice scenario to include bot-specific scenario blocks such as Chat Bot Select Account and Ask a Bot, along with the Play-Listen scenario block. These blocks work with integrated Speech-to-Text technologies to recognize and transcribe voice input, as well as with integrated chatbots to analyze voice input, offer suggested replies, and intelligently route callers to agents.This article will show you how to include these blocks in a basic voice scenario to:* Greet the customer and listen for a response* Reply up to three times to the customer using voice prompts* Collect information from the customer* Find an agent and connect the call when it’s determined that the bot/IVR is not being helpful* Screen-pop the collected data and/or IVR conversation transcription to the agent upon accepting the interactionIf you have not already done so, please complete these steps before proceeding:
Create a Watson Assistant* Add a [[Contact-center-administrator-guide/IntegrationAccounts/BotChatSuggestionsEngine | bot/chat suggestions engine integration account]]* Set up a Speech-to-Text engine through your service provider* Add [[Contact-center-administrator-guide/IntegrationAccounts/SpeechToText | Speech To Text integration account]]* Set up a Text-to-Speech engine through your service provider* Add [[Contact-center-administrator-guide/IntegrationAccounts/TextToSpeech | Text To Speech integration account]]* Download and [[5.3:Contact-center-administrator-guide/ScenariosOverview#How_to_Export_and_Import_Scenarios | import]] our bot scenario template: [[File:App_Conversational_IVR_Example.zip]]Scenarios are made up of scenario blocks that specify how interactions are processed. Detailed descriptions of Bright Pattern scenario blocks are available in this guide's Scenario Block Definitions section.The following sequence of actions illustrates how scenario blocks function in a bot-driven voice scenario that invokes conversational IVR. This example scenario uses an integrated Watson Assistant chatbot and Google Speech-to-Text.[[File:ConIVR-Example2-53.PNG|thumb|800px|center|Example voice scenario with Play-Listen block in Scenario Builder]]Conversational IVR utilizes voice prompts to speak to callers on the phone. You can set any language for all the voice prompts to be used in this scenario by editing the properties of the Set Prompt Language scenario block.[[File:ConIVR-1.PNG|thumb|800px|center|Set Prompt Language properties]]In '''Language''', select the desired language for prompts. In our example, we selected "English - United States."In '''TTS voice''', select the Text-to-Speech (TTS) voice type to be used. In our example, we selected "en-US-standard-C."These settings allow prompt text to be read and spoken over the phone in English.In this example, we want the caller to talk to the chatbot no more than three times before the caller is routed to an agent. Limiting the interaction in this way prevents the customer from abandoning the call when the bot becomes unhelpful.With the [[Scenario-builder-reference-guide/SetVariable | Set Variable]] block, we are counting the number of attempts to interact with the bot. The counter begins at zero, so we specify a value of "0."[[File:ConIVR15-53.PNG|thumb|800px|center|Set Variable properties]]All scenarios that incorporate bots will include the [[Scenario-builder-reference-guide/ChatBotSelectAccount | Chat Bot Select Account]] block. In this block, you are selecting a bot/chat suggestions engine integration account that has already been configured for your contact center.It's possible for your contact center to have many integration accounts, so it's important to specify which one will be used for this scenario. If you do not see the desired account listed, go back and add an integration account.[[File:ConIVR16-53.PNG|thumb|800px|center|Select an integration account]]The [[Scenario-builder-reference-guide/PlayListen | Play-Listen]] block uses text-to-speech and speech-to-text technologies to convert bot response text into a voice prompt and to recognize and transcribe the customer’s reply into a text message.Specify or create a voice prompt so that the conversational IVR can "talk" to the customer. In this example, the customer will be greeted by the prompt you specify here.The ''transcriber'' is the Speech-To-Text integration account that you have already configured for your contact center.In this example, we set the ''recognized phrase'' (i.e., the variable) to be "user_phrase," which is the variable that receives what the customer says. We use this variable in later blocks in this scenario to send the customer’s response to the agent in a text message (see "Internal Message"). You can add any variable you want, as long as you use the same variable name later.''Confidence'' is the variable that shows how much of the customer’s vocal input the STT engine understands. As with the recognized phrase variable, you can enter anything you want here, as long as you use it consistently later. Your STT engine conveys confidence numerically, where the higher the number (e.g., "0.999") is, the more confident the STT engine is that it has recognized vocals correctly. A low number (e.g., "0.001") shows that the engine has very low confidence in its vocal recognition. For example, if the customer says, "I need a new phone," and the engine hears, "I need a sea foam," the confidence will be likely very low. The confidence level is available in your service engine (e.g., your Watson Assistant).''Max timeout'' is the number of seconds that the conversational IVR will wait for the caller’s response before timing out and moving through the scenario.In the [[5.3:Scenario-builder-reference-guide/PlayListen#Conditional_Exits | conditional exits]] of Play-Listen, you can define what the scenario should do if the caller uses DTMF touch-tones or if the caller is silent.[[File:ConIVR2-53.PNG|thumb|800px|center|Use Play-Listen to "talk" to the customer and collect data]]The [[Scenario-builder-reference-guide/AskaBot | Ask a Bot]] block allows the bot to automate the conversation before an agent is connected. It delivers the bot's raw response (i.e., suggestions) to the customer.Notice that in the ''Message'' field, we’ve plugged in variable $(user_phrase), which is the same variable we set earlier in the scenario. Placing user_phrase here allows the scenario to pass the caller’s vocal input (i.e., his or her spoken phrase) to the integrated chatbot (in this case, Watson Assistant), for processing in the bot’s dialog flow. This processing creates ''suggestions'', which can be passed to the agent on Agent Desktop.A ''raw response'' is configured in your Watson Assistant dialog flow settings; it's unrelated to Bright Pattern. In this example, we’ve left this field empty.In ''timeout'', you set the number of seconds to wait for the bot’s suggestions before timing out.[[File:ConIVR5-53.PNG|thumb|800px|center|Get suggestions from the bot]]In the Ask a Bot block’s [[Scenario-builder-reference-guide/AskaBot#Conditional_Exits | conditional exits]], we have dragged over some other blocks that tell the scenario what to do if this block fails, times out, or if there’s no data. See the scenario template for more detailed comments on what we did in this example.Within Ask a Bot, there is a conditional exit called ''No Data''. Here, we dragged over some other scenario blocks to define what the scenario should do if the bot fails to collect information from the caller.First, use ''Set Variable'' to set variable name "Attempts" to ''=$(Attempts)+1''. This is used for counting how many times the bot attempts to talk to the caller and offer a suggested reply.Then use [[Scenario-builder-reference-guide/If | If]] to add a condition that says if the bot tries to talk less than three times, try again. Remember, in Action 2 of this procedure, we used Set Variable to start counting bot step interactions.[[File:ConIVR7-53.PNG|thumb|800px|center|Define what to do if the bot attempts to talk to the caller less than three times]]Under the ''If'' block, we added another Play-Listen block that will be triggered if the condition is met. In this Play-Listen block, we define that if the bot has to make another attempt to collect data from the caller, then the prompt is, "I’m sorry, I didn’t understand you…."If that still fails to collect information, the scenario uses [[Scenario-builder-reference-guide/Goto | Goto]] to find an agent and connect the call. The [[Scenario-builder-reference-guide/PlayPrompt | Play Prompt]] block tells the caller that the bot can’t understand, and thus, an agent will be connected.[[File:ConIVR8-53.PNG|thumb|800px|center|The condition has been exceeded and a prompt is played before an agent is connected]][[Scenario-builder-reference-guide/SetVariable | Set Variable]] is used for defining the variable name of the bot’s responses (i.e., suggestions). Suggestions align with what you have configured your Watson Assistant, or other chatbot, to say.In this example, we named the variable "bot_phrase" and gave it a value of "$(suggestions[0].msg)." Later, when we pass the conversational IVR transcript to the agent via screen-pop, we will be invoking the conversation via "bot_phrase" and "user_phrase" variables.[[File:ConIVR17-53.PNG|thumb|800px|center|Set Variable properties]]In this example, we added the condition that scenario will branch if the "user_phrase is not empty" (i.e., the caller is talking).[[File:ConIVR10-53.PNG|thumb|800px|center|Ask a Bot branches and finds an agent in response to what the caller said]]In the [[Scenario-builder-reference-guide/WebScreenPop | Web Screen pop]] properties, we defined what text to display to the agent upon accepting the call. In the “Text to display” field, we entered the variables “user_phrase” and “bot_phrase” in basic HTML. This will appear as plain text to the agent on Agent Desktop.[[File:ConIVR11-53.PNG|thumb|800px|center|You can screen-pop the bot and customer’s conversation transcript to the agent]]The [[Scenario-builder-reference-guide/FindAgent | Find Agent]] block looks for the next available skilled agent to accept the call. You can use Find Agent to set wait times and send the customer messages about estimated waiting time (EWT).[[File:ConIVR14-53.PNG|thumb|800px|center|The bot couldn't help the customer is fewer than three steps, so the scenario looks for an agent]]Although Find Agent uses criteria to identify the proper agent to receive the call, it does not have a "delivery" mechanism. Connect Call is the delivery mechanism for the interaction.[[File:ConIVR13-53.PNG|thumb|800px|center|You can either specify a destination for the call or let the system find the next available agent]]The [[Scenario-builder-reference-guide/Exit | Exit]] block completes the scenario. Without it, the scenario will loop through this configured flow until the customer ends the call.Be sure to click '''Save''' to apply your changes. Note that closing your web browser window or tab will close Scenario Builder without saving, and you will lose your work.For more information on inbound voice configuration and bot setup, see these Bright Pattern tutorials:
シナリオを介してBright Patternの対話型IVR機能を起動させるには、受信音声シナリオを変更して、チャットボット選択アカウントやAsk a Botなどのボット専用のシナリオブロックと Play-Listenシナリオブロックを追加します。これらのブロックは、統合された音声認識テクノロジーと連携して音声記録の認識および書き起こしを行い、統合されたチャットボットと連携して音声入力を分析し、回答を提案し、発信者をスムーズにエージェントにルーティングします。
信頼性とは、 STTエンジンが理解するお客様の音声入力の量を表す変数です。recognized phrase変数と同様に、この変数を後で一貫して使用する限り、ここに必要な値を入力できます。 STTエンジンは、数値を通じて信頼性を伝えます。例えば、"0.999"など高い数値は、STTエンジンが音声を正しく認識したことを意味します。低い数値(例えば、"0.001")は、エンジンの音声認識能力が非常に低いことを示しています。例えば、お客様が"I need a new phone"と言ったことに対して、エンジンが "I need a sea foam"と認識した場合、信頼性は非常に低くなります。信頼性のレベルは、サービスエンジン(例えば、Watson Assistant)で確認できます。
Ask a Botブロックの条件付き出口では、このブロックが失敗した場合、タイムアウトした場合、またはデータがない場合に次のステップをシナリオに指示する他のブロックをドラッグしました。この例で行った操作の詳しい内容については、シナリオテンプレートをご覧ください。
アクション 6: "If" は、ボットがデータを収集できなかった場合の処理方法を定義します。
Ask a Botには、 データなしという条件付き出口があります。ボットが発信者から情報を収集できなかった場合の次のステップを定義するために、ここへ他のシナリオブロックをドラッグしました。
先ず、変数の設定を使って、 "Attempts"変数を to =$(Attempts)+1に設定します。 この変数は、ボットによる発信者との会話試行およびサジェストの回数をカウントするために使用されます。
次に、 If を使って、ボットによる会話試行回数が3回未満である場合、再試行を行うという条件を追加します。この手順のアクション2では、ボットステップの対話のカウントを開始するには、変数の設定ブロックが使われています。
ボットによる会話試行が3回未満である場合の対処方法を定義します。
If ブロックの下に、もう一つのPlay-Listenブロックを追加しました。このブロックは条件が満たされた場合に起動します。この Play-Listen ブロックでは、ボットが発信者からデータ収集を行うのにもう一つの試行が必要である場合、プロンプトを "申し訳ありませんが、わかりかねます…."に設定しました。