= Scenario Blocks Overview = The following subbook lists all blocks available in the Scenario Builder application, as well as definitions of their settings and conditional exits. == All Scenario Blocks == *[[#topic_scenario-builder-reference-guide/scenarioblocks/accept| Accept]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/addtocallinglist| Add to Calling List]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/answer| Answer]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/askabot| Ask a Bot]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/attacheddata| Attached Data]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/brightpatterncreateobject| Bright Pattern Create Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/brightpatterndeleteobject| Bright Pattern Delete Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/brightpatternsearchobject| Bright Pattern Search Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/brightpatternupdateobject| Bright Pattern Update Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/chatbotselectaccount| Chat Bot Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/collectdigits| Collect Digits]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/comment| Comment]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/connectcall| Connect Call]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/connectchat| Connect Chat ]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/dbexecute| DB Execute]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/email| EMail]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/exceptionhandler| Exception Handler]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/exit| Exit]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/externaltransfercall| External Transfer Call]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/fetchurl| Fetch URL]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/findagent| Find Agent ]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/getagentstate| Get Agent State]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/getnextrecord| Get Next Record]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/getstatistics| Get Statistics]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/getuserconfiguration| Get User Configuration]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/goto| Goto]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/identifycontact| Identify Contact]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/if| If]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/internalmessage| Internal Message]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/log| Log]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/menu| Menu]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicscreateobject| Microsoft Dynamics Create Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicsdeleteobject| Microsoft Dynamics Delete Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicsscreenpop| Microsoft Dynamics Screen Pop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicssearchobject| Microsoft Dynamics Search Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicsselectaccount| Microsoft Dynamics Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicsupdateobject| Microsoft Dynamics Update Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/playlisten| Play-Listen]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/playprompt| Play Prompt]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/record| Record]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/requestcallback| Request Callback]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/requestinput| Request Input]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/requestskillorservice| Request Skill or Service]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/retrieveinternalrecord| Retrieve Internal Record]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/rightnowcreateobject| RightNow Create Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/rightnowscreenpop| RightNow Screen Pop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/rightnowsearch| RightNow Search]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/rightnowselectaccount| RightNow Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/rightnowupdate| RightNow Update]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.comdelete| Salesforce.com Delete]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.cominsert| Salesforce.com Insert]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.comscreenpop| Salesforce.com Screenpop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.comsearch| Salesforce.com Search]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.comselectaccount| Salesforce.com Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/salesforce.comupdate| Salesforce.com Update]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/savesurveyresponse| Save Survey Response]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/searchdirectory| Search Directory]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/self-serviceprovided| Self-Service Provided]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/sendmessage| Send Message]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/servicenowcreateobject| ServiceNow Create Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/servicenowscreenpop| ServiceNow Screen Pop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/servicenowsearch| ServiceNow Search]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/servicenowselectaccount| ServiceNow Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/servicenowupdateobject| ServiceNow Update Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setagentstate| Set Agent State]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setcase| Set Case]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setcustomreportingfield| Set Custom Reporting Field]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setdisposition| Set Disposition]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setpriority| Set Priority]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setpromptlanguage| Set Prompt Language]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/setvariable| Set Variable]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/startanotherscenario| Start Another Scenario]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/stopprompt| Stop Prompt]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/voicemail| Voicemail]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/wait| Wait]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/webscreenpop| Web Screen Pop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendeskapirequest| Zendesk API Request]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendeskcreateobject| Zendesk Create Object]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendeskscreenpop| Zendesk Screen Pop]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendesksearch| Zendesk Search]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendeskselectaccount| Zendesk Select Account]] *[[#topic_scenario-builder-reference-guide/scenarioblocks/zendeskupdate| Zendesk Update Object ]] = Accept= The Accept scenario block accepts the call from the network. This block either starts the ring back tone or allows the system to play ''early media'' (i.e., announcements) before or instead of answering a call. Early media denotes the capability to play media (audio or telephony) before a two-way voice session has been established. For telephony provisioning, establishment of media in the backwards direction may be desirable so that tones and announcements can be played prior to providing answer supervision. Note that call billing typically does not start until the call is answered or until a predefined carrier time is surpassed (in some instances this might be as high as 120 seconds, however, typically closer to 6 seconds). [[File:Accept-Block.png|225px|Scenario Builder Accept scenario block]] '''Important:''' * Using this block in a scenario disables the default behavior of answering a call automatically on scenario start. * Announcement playback enables voice communication only to the caller, not from the caller. An [[#topic_scenario-builder-reference-guide/answer|Answer]] block will be required to establish two-way communication after the call is accepted. * Announcement playback delay duration may be limited or not available at all, depending on the telecom carrier. == Settings == === Provide progress indication (ringback) only === This setting plays a ring back tone to the caller. It is typically considered if the carrier response is fast enough that customers hear no ring back tone. === Establish one-way voice communication === This setting provides the ability to play announcements or prompts to the caller. [[File:Accept-Block-Settings.png|650px|thumbnail|center|Scenario Builder Accept scenario block settings]] = Add to Calling List= The Add to Calling List scenario block adds a calling record to the specified calling list. This block can be used, for example, to automatically redial abandoned or accidentally disconnected calls, or to organize a follow-up campaign based on messages left by customers calling outside of contact center normal hours of operation. [[File:Add-To-Calling-List-Block.png|225px|Scenario Builder Add To Calling List scenario block]] == Conditional Exits == The Add to Calling List block may take the '''Failed''' conditional exit, which indicates that the attempt to add a calling record to the specified list has failed. [[File:Add-To-Calling-List-Failed.png|225px|thumbnail|center|The Failed conditional exit]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === List name === ''List name'' is the name of the list to which the record shall be added. This parameter is mandatory. Note that the name must be added manually since the scenario may be designed before the list itself is created. === Phone number === This is the phone number to be dialed. This parameter is mandatory. The phone number could be the caller ID (ANI) provided for the original call or a number entered by the customer via an IVR application. === Additional data fields === ''Additional data fields'' are additional data that should be added to the given calling list record in the key-value format (e.g., customer’s first and last name). [[File:Add-To-Calling-List-Settings.png|450px|thumbnail|center|Scenario Builder Add To Calling List scenario block settings]] = Answer= The Answer scenario block provides answer supervision to the carrier and answers the call. It opens two-way voice communication with the caller and starts the caller's billing cycle. The Answer block typically follows an [[#topic_scenario-builder-reference-guide/accept|Accept]] block at the beginning of a scenario. [[File:Answer-Block.png|225px|Scenario Builder Answer scenario block]] There are no settings or configuration parameters for this block. '''Important:''' Using the [[#topic_scenario-builder-reference-guide/accept|Accept]] block in a scenario disables the default behavior of answering a call automatically on scenario start and requires an Answer block to provide answer supervision. = Ask a Bot = [[File:Ask-a-Bot-Block-53.PNG|225px|Ask a Bot scenario block]] Ask a Bot allows your [[5.3:contact-center-administrator-guide/IntegrationAccounts/BotChatSuggestionsEngine | integrated bot/chat suggestions engine]] to reply automatically to customers as well as provide suggestions to agents during active chat interactions. Scenarios use the Ask a Bot block to submit the most recent message received from the user to the bot, and deliver suggestions from the bot to the customer. You can think of this block as the facilitator of bot-automated conversations; this block passes messages between the user and the bot. [[File:Ask-a-Bot-Chat-Suggestions-50.PNG|450px|thumb|center|Ask a Bot can provide chat suggestions to agents in Agent Desktop]] Ask a Bot may be used with the [[#topic_scenario-builder-reference-guide/self-serviceprovided|Self-Service Provided]] block, allowing customers to complete self-service tasks without the help of an agent. Additionally, when an agent is included in a chat scenario, Agent Desktop uses content of the suggestions engine to show one or more suggestions. If an agent clicks a suggestion, the text is copied to the chat response field. Note that the [[#topic_scenario-builder-reference-guide/chatbotselectaccount|Chat Bot Select Account]] block will override the Ask a Bot block if both blocks are in the same scenario. == Settings == [[File:Ask-a-Bot-Properties-5399.PNG|650px|thumbnail|center|Ask a Bot scenario block settings]] === Title text === The name of the scenario block (any). === Message === The variable that gets the text of the last received message: ''$(item.message)'' If building a scenario that also uses the [[#topic_scenario-builder-reference-guide/playlisten| Play-Listen]] block, you can enter variable ''$(item.transcript) in this Message field. === Responses === The variable receiving array of suggested responses (data). === Raw response === The variable (string) (e.g., ''raw_response'') that receives the raw bot response (i.e., the raw JSON answer from the bot engine before being parsed by the Bright Pattern system. === Timeout after, sec === The number of seconds to wait before the ''Timeout'' conditional exit is taken. This field is required. == Conditional Exits == This block has a default exit and three conditional (i.e., "error") exits: Timeout, Failed, and No Data. Here's a closer look at why these exits may be taken: * '''Failed''' - System error * '''Timeout''' - The timeout is reached but there is no response * '''No Data''' - There are no bot suggestions (i.e., data) For each of the conditional exits, the scenario will send a message and then connect to the agent. = Attached Data= [[File:Attached-Data-Block.png|225px|Scenario Builder Attached Data scenario block]] The Attached Data scenario block is used for updating custom fields in Salesforce customer relationship management (CRM) activity history records. This block changes custom data associated with the interaction processed by the given scenario, sends that data to Agent Desktop when the interaction is routed to an agent, and passes the data to the integrated CRM. In this way, data is ''attached'' to the interaction and passed to Agent Desktop and Salesforce. Note that Attached Data only updates custom activity fields; it does not create those fields. Before you can update a custom field, you first have to have a custom field in Salesforce. If you don’t already have a custom field set up, follow the steps given in the ''Salesforce.com Integration Guide'', section [[#topic_sfdc-integration-guide/customizingsfdcactivityobjects| How to Customize an Activity Object]]. == Settings == In Attached Data settings, you name the scenario block and specify the data item that you wish to update in Saleforce. The data item is a key-value pair, where the custom field name (e.g., “account_test”) is the key and the value is what the field should receive (e.g., “12345”). In the scenario, the Attached Data block will pass this data to Salesforce. [[File:Attached-Data-b-53.PNG|650px|thumbnail|center|Scenario Builder Attached Data scenario block settings]] === Title text === The name of the instance of the block (e.g., “Update SFDC Activity”). === add a data item === This parameter specifies a new value for an existing key-value pair. To populate custom fields in CRM activity history records, click '''add a data item''' and specify a custom field name as a data item name with the desired value. Multiple data items may be added. * '''Name''' - The “API Name” of your custom field in Salesforce (e.g., "account_test__c"). Note that upon saving a new custom field, SFDC automatically adds suffix “__c” to it. In order to supply interaction data to this field, use the field name, including suffix “__c”. For example, to populate Custom Activity field '''account_test''', it is required to have Attached Data specify key '''account_test__c'''. * '''Value''' - The value (string or variable) of the field (e.g., “12345” or "$(varname.property)"). [[File:Attached-Data-add-53.PNG|650px|thumbnail|center|add a data item]] == How to Use Attached Data == === Step 1: Create custom field in Salesforce === First make sure you have a custom activity field in Salesforce to update. For information on how to create one, see the ''Salesforce.com Integration Guide'', section [[#topic_sfdc-integration-guide/customizingsfdcactivityobjects| How to Customize an Activity Object]]. === Step 2: Update custom field data using Attached Data scenario block === # In the Contact Center Administrator application, locate your Salesforce scenario and click '''Edit''' to open it in the Scenario Builder application.

# For a voice scenario, add the Attached Data block at any point before the Connect Call block. For a chat scenario, add the Attached Data block at any point before the Connect Chat block. If you don’t know where to place it, put it at the very top of the scenario.

[[File:SFDC-Attached-Data-add-53.PNG|thumb|800px|center]]

# Update properties and click '''add a data item'''.

# Save the scenario.

You can test whether it works by logging a call and viewing the case in Salesforce. You should see the custom field with the specified value. === Step 3: Update other activity field data using Attached Data (optional) === To populate regular (not custom) ''Activity Fields'' with any data from the scenario, simply follow the instructions above with one exception: when adding a data item in the Attached Data block, specify the field name (i.e., API name) without the “__c” suffix. For a list of predefined fields, see the ''Salesforce.com Integration Guide'', section [[#topic_sfdc-integration-guide/customizingsfdcactivityobjects| How to Customize an Activity Object]].
= AWS Lambda = The AWS Lambda block allows you to invoke functions (i.e., programs) you have created in your Amazon AWS Lambda account. Note that you must have an [[Contact-center-administrator-guide/CallCenterConfiguration/IntegrationAccounts/AmazonAWS#Amazon_AWS_Lambda_Properties|Amazon AWS Lambda integration account]] configured in order to invoke functions. [[File:Scenario-Builder-AWS-Lambda-Block-5399maint.PNG|225px|AWS Lambda block]] == Conditional Exits == === Failed === This exit is taken if the function invocation failed due to invalid parameters, timeout, or network connectivity to Amazon AWS Lambda. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|$(integrationResultBody)]]. == Settings == [[File:Scenario-Builder-AWS-Lambda-Block-Settings-3-5399maint.png|650px|thumb|center|AWS Lambda block settings]] === Title text === The name of the instance of the block (any name). === Integration account === The name of the [[Contact-center-administrator-guide/CallCenterConfiguration/IntegrationAccounts/AmazonAWS#Amazon_AWS_Lambda_Properties|Amazon AWS Lambda integration account]] that will be used for access to your Lambda functions. === Function name === The name of the specific Amazon AWS Lambda function that will be invoked in this scenario. === Invocation type === ==== RequestResponse ==== Requests a response from the invoked function. ==== Event ==== Does not wait for a response from the invoked function. ==== DryRun ==== Acts as a diagnostics tool, allowing you to test everything except the actual function code. === Parameters === The parameters to invoke from the function. You may choose ''Field'', which allows you to enter in the specific function ''names'' and ''values'', or ''JSON'', which allows you to enter the parameters in JSON format. Note that the Field option will be converted to JSON. === Response variable name === The variable name that contains a parsed JSON object from the invoked function (i.e., it does not include the payload). === Response payload name === The variable name that contains the payload (i.e., the output) from the invoked function; the payload is limited to 50 KB. Note that the name will always be a string. === Treat payload as === Allows you to choose the way the payload is received; you may choose either ''JSON'' or ''String''. Note that the default option is JSON. = Bright Pattern Create Object = The ''Bright Pattern Create Object'' block inserts a new object into the internal contact database. The allowed object types are Case, Contact, Company, and Activity History. [[File:Bright-Pattern-Create-Object-522.PNG|225px|Bright Pattern Create Object scenario block]] == Conditional Exit == The Bright Pattern Create Object block may take the Failed conditional exit. === Failed === The ''Failed'' conditional exit is executed if the creation operation failed. == Settings == === Title Text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Object Type === The ''Object Type'' drop-down menu allows you to choose the type of object you want to create in the internal database. You may choose '''Case''', '''Contact''', '''Company''', or '''Activity history'''. Depending on what object type is selected, the settings change as follows: ==== Case Settings ==== ===== Case title ===== This is the text you would like associated with the case title. ===== Category name ===== The ''Category name'' drop-down menu allows you to classify the case as one of the following: '''Incident''', '''Question''', '''Enhancement Request''', '''Defect''', or '''Change Request'''. ===== Custom Case Fields ===== ''Custom Case Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Case]] will appear here; you may enter text items in these fields. ===== Return variables ===== The ''Return variables'' settings allow entry of text or variable items in the form of ''Generate case numbers'' or ''Generated case IDs''. ====== Generated case number ====== This is the variable item associated with the case number. ====== Generated case ID ====== This is the variable item associated with the case ID. ==== Contact Settings ==== ===== First name ===== This is the text associated with the first name of the contact. ===== Last name ===== This is the text associated with the last name of the contact. ===== Title ===== This is the text associated with the title of the contact. ===== Position ===== This is the text associated with the position of the contact. ===== Summary ===== This is the text associated with the summary of the contact. ===== Segment ===== This is the text associated with the segment of the contact. ===== Age ===== This is the text associated with the age of the contact. ===== Company ID ===== This is the ID of the company record. ===== Emails ===== When you click the '''add''' option, you may select the type of email from the drop-down menu ('''Primary''', '''Business''', or '''Private'''), then enter the email address. It is possible to add more than one type of email address; the order the emails are listed in is insignificant. Note: Gaps are not allowed (i.e. you must create the email with the index [0] if you want to populate the email with the index [1]). ===== Phones ===== When you click the '''add''' option, you may select the type of phone from the drop-down menu ('''Business''', '''Home''', '''Mobile''', or '''Fax'''), then enter the phone number. It is possible to add more than one type of phone number; the order the numbers are listed in is insignificant. Note: Gaps are not allowed (i.e. you must create phone numbers with the index [0] if you want to populate the email with the index [1]). ===== Custom Contact Fields ===== ''Custom Contact Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Contact]] will appear here; you may enter text items in these fields. ===== Return variables ===== The Return variables settings allow entry of text or variable items in the form of Generate record. ====== Generated record ====== This is the variable item associated with the contact record number. ==== Company Settings ==== ===== Company name ===== This is the text associated with the company name. ===== Web URL ===== This is the text associated with the web URL of the company. ===== Revenue ===== This is the text associated with the revenue of the company. ===== Employees ===== This is the text associated with the employees of the company. ===== Custom Company Fields ===== ''Custom Company Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Company]] will appear here; you may enter text items in these fields. ===== Return variables ===== The Return variables settings allow entry of text or variable items in the form of Generate record ID. ====== Generated record ID ====== This is the variable item associated with the contact record ID. ==== Activity History Settings ==== ===== Notes ===== This is the text associated with activity history notes; notes are written on behalf of a party. The notes should support HTML links, bullets, and bold, italic, underline, and strikethrough text. ===== Disposition ===== This is the text associated with activity history dispositions; dispositions are written on behalf of a party. ===== Custom1 ===== ''Custom1'' is an additional field for storing custom survey information, such as a question specific to your contact center, in the $(custom1) variable. The allowed range is from -2147483647 to 2147483647. ===== Custom2 ===== ''Custom2'' is an additional field for storing custom survey information, such as a question specific to your contact center, in the $(custom2) variable. The allowed range is from -2147483647 to 2147483647. ===== Custom Activity History Fields ===== ''Custom Activity History Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Activity History]] will appear here; you may enter text items in these fields. ===== Return variables ===== The Return variables settings allow entry of text or variable items in the form of Generate record ID. ====== Generated record ID ====== This is the variable item associated with the activity history record ID. = Bright Pattern Delete Object = The ''Bright Pattern Delete Object'' deletes an object from the internal database. The object types allowed for deletion are Case, Contact, and Company. Note the following about the block: * The deletion of cases deletes all activity history related to the case. * The deletion of contacts deletes activity history associated with this contact that is not linked to any cases. * The deletion of contacts erases reference to the contact from cases and activity history items linked to the cases but keeps the cases. * The deletion of contacts erases references to the contact from the calendar but does not remove calendar entries. * The deletion of contact erases references to contact from emails in queue (queue_items.reporter_id), but keeps emails in queue. * The deletion of companies erases reference to it from the contacts but does not delete any contacts. [[File:Bright-Pattern-Delete-Object-522.PNG|225px|Bright Pattern Delete Object scenario block]] == Conditional Exits == === Failed === The ''Failed'' conditional exit is executed if the deletion operation failed, either through timeout or failed network connectivity to an external CRM (e.g. Salesforce). === No Data === The ''No Data'' conditional exit is executed if no data matching the specified deletion criteria is found. == Settings == === Title text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Object type === The ''Object type'' drop-down menu allows you to choose the type of object you want to delete in the internal database. You may choose '''Case''', '''Contact''', or '''Company'''. === Object ID === This is the database record ID. = Bright Pattern Search Object = The ''Bright Pattern Search Object'' block finds an existing object in the database. This block replaced the [[#topic_scenario-builder-reference-guide/retrieveinternalrecord|Retrieve Internal Record]] block starting from version 5.2.2 of Bright Pattern Contact Center software. '''Note''': For a list of standard fields returned by this block, see section [[#topic_scenario-builder-reference-guide/reference/crmobjectsfields| Standard Fields for CRM Objects]]. [[File:Bright-Pattern-Search-Object-522.PNG|225px|Bright Pattern Search Object scenario block]] == Settings == === Title Text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Object type === The ''Object type'' drop-down menu allows you to choose the type of object you want to search for in the internal database. You may choose '''Case''', '''Contact''', '''Company''', or '''Activity History'''. Depending on what object type is selected, the settings change as follows: ==== Search ==== Multiple search conditions can be added. ''Search'' settings will vary depending on what object type you are searching for. The options are listed as follows: ===== Case ===== [[File:Bright-Pattern-Search-Case-53.PNG|650px|thumb|center|Bright Pattern Search Object case settings]] To search by case, select either '''ID''', '''Number''', '''Reporter ID''', '''Status''', or a '''custom case field''' from the first drop-down menu. Note: Custom case fields will not appear in the ''Search'' menu unless the checkbox '''Searchable in scenarios and workflows''' has been selected. For more information, see [[Contact-center-administrator-guide/CustomFields#Case|Custom Fields]]. For any of these options, you may then select '''Equal''', '''Not equal''', '''Empty''', or '''Not empty''' from the second drop-down menu. If you select '''Equal''' or '''Not equal''', a field will appear and you will have the option to enter a text or variable item. For the '''State''' option, you may select '''Equal''' or '''Not equal''' from the second drop-down menu, followed by the desired [[#topic_agent-guide/work/casesemail/casestates|case state]]. ===== Company ===== [[File:Bright-Pattern-Search-Company-53.PNG|650px|thumb|center|Bright Pattern Search Object company settings]] To search by company, select ''' ID''', '''Name''', '''URL''', a '''custom company field''' from the first drop-down menu. Note: Custom company fields will not appear in the ''Search'' menu unless the checkbox '''Searchable in scenarios and workflows''' has been selected. For more information, see [[Contact-center-administrator-guide/CustomFields#Company|Custom Fields]]. For all these options, you may then select '''Equal''', '''Not equal''', '''Empty''', or '''Not empty''' from the second drop-down menu. If you select '''Equal''' or '''Not equal''', a field will appear and you will have the option to enter a text or variable item. ===== Contact ===== [[File:Bright-Pattern-Search-Contact-53.PNG|650px|thumb|center|Bright Pattern Search Object contact settings]] To search by contact, select ''' Email address''', '''External ID''', '''ID''', '''Messenger ID''', '''Phone''', or a '''custom contact field''' from the first drop-down menu. Note: Custom contact fields will not appear in the ''Search'' menu unless the checkbox '''Searchable in scenarios and workflows''' has been selected. For more information, see [[Contact-center-administrator-guide/CustomFields#Contact|Custom Fields]]. For all these options, you may then select '''Equal''', '''Not equal''', '''Empty''', or '''Not empty''' from the second drop-down menu. If you select '''Equal''' or '''Not equal''', a field will appear and you will have the option to enter a text or variable item. ===== Activity history ===== [[File:Bright-Pattern-Search-Activity-53.PNG|650px|thumb|center|Bright Pattern Search Object activity history settings]] To search by activity history, select '''Case ID''', '''Contact ID''', '''Global Interaction ID''', '''ID''', or a '''custom activity history field''' from the first drop-down menu. Note: Custom activity history fields will not appear in the ''Search'' menu unless the checkbox '''Searchable in scenarios and workflows''' has been selected. For more information, see [[Contact-center-administrator-guide/CustomFields#Activity_History|Custom Fields]]. For all these options, you may then select '''Equal''', '''Not equal''', '''Empty''', or '''Not empty''' from the second drop-down menu. If you select '''Equal''' or '''Not equal''', a field will appear and you will have the option to enter a text or variable item. Note that the activity history records are returned in the reverse chronological order (i.e., starting from the most recent one). ==== Return fields ==== Select this option to add return field to your search. When you click the '''add''' option, you may enter a text or variable item in the field. Note you may add multiple return fields. ==== Recordset name ==== ''Recordset name'' is the field that holds the results of the search the block executed; the text (i.e., value) entered in this field can then be used in a number of subsequent blocks to dictate further actions (e.g., passing the value to a [[#topic_scenario-builder-reference-guide/brightpatterncreateobject|Bright Pattern Create Object]] block if a contact's name is not found). == Conditional Exits == === Failed === The ''Failed'' conditional exit is executed if the search operation failed, due to invalid parameters, timeout, or network connectivity to external CRM (e.g., Salesforce). === No Data === The ''No data'' conditional exit is executed if no data matching the specified search criteria is found. = Bright Pattern Update Object = The ''Bright Pattern Update Object'' block updates an existing object in the database. The allowed object types are Case, Contact, and Company. Note this block is available from Bright Pattern Contact Center software version 5.2.2. [[File:Bright-Pattern-Update-Object-522.PNG|225px|Bright Pattern Update Object scenario block]] == Conditional Exits == === Failed === The ''Failed'' conditional exit is executed if the update operation failed, due to invalid parameters, timeout, or network connectivity to external CRM (e.g. Salesforce). === No Data === The ''No Data'' conditional exit is executed if no data matching the specified update criteria is found. == Settings == === Title text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Object type === The ''Object type'' drop-down menu allows you to choose the type of object you want to update in the internal database. You may choose '''Case''', '''Contact''', or '''Company'''. Depending on what object type is selected, the settings change as follows: ==== Case Settings ==== ===== Record ID ===== This is the database record case ID. ===== Case title ===== This is the text associated with the case title. ===== Category name ===== The ''Category'' name drop-down menu allows you to classify the case as one of the following: Incident, Question, Enhancement Request, Defect, or Change Request. ===== Custom Case Fields ===== ''Custom Case Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Case]] will appear here; you may enter text items in these fields. ==== Contact Settings ==== ===== Record ID ===== This is the database record contact ID. ===== First name ===== This is the text associated with the first name of the contact. ===== Last name ===== This is the text associated with the last name of the contact. ===== Title ===== This is the text associated with the title of the contact. ===== Position ===== This is the text associated with the position of the contact. ===== Summary ===== This is the text associated with the summary of the contact. ===== Segment ===== This is the text associated with the segment of the contact. ===== Age ===== This is the text associated with the age of the contact. ===== Company ID ===== This is the ID of the company record. ===== Emails ===== When you click the '''add''' option, you may select the type of email from the drop-down menu ('''Primary''', '''Business''', or '''Private'''), then enter the email address. It is possible to add more than one type of email address; the order the emails are listed in is insignificant. Note: Gaps are not allowed (i.e. you must create the email with the index [0] if you want to populate the email with the index [1]). ===== Phones ===== When you click the '''add''' option, you may select the type of phone from the drop-down menu ('''Business''', '''Home''', '''Mobile''', or '''Fax'''), then enter the phone number. It is possible to add more than one type of phone number; the order the numbers are listed in is insignificant. Note: Gaps are not allowed (i.e. you must create phone numbers with the index [0] if you want to populate the email with the index [1]). Note the following for existing phone numbers: * Existing phones in the contact are searched by phone number. * If an existing phone is found, its type is updated. * If an existing phone is not found, it is added to the list of phones in the contact list. * There is no way to delete a phone number (or change a phone number) via the ''Bright Pattern Update Object'' block and must be done via Agent Desktop; deleting phone numbers is deemed too complex for this iteration of scenario block design. ===== Custom Contact Fields ===== ''Custom Contact Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Contact]] will appear here; you may enter text items in these fields. ==== Company Settings ==== ===== Record ID ===== This is the database record company ID. ===== Company name ===== This is the text associated with the company name. ===== Web URL ===== This is the text associated with the web URL of the company. ===== Revenue ===== This is the text associated with the revenue of the company. ===== Employees ===== This is the text associated with the employees of the company. ===== Custom Company Fields ===== ''Custom Company Fields'' that have been configured in [[#topic_contact-center-administrator-guide/customfields|Case & Contact Management > Custom Fields > Company]] will appear here; you may enter text items in these fields. = Chat Bot Select Account= [[File:Chat-Bot-Select-Account-Block-53.PNG|225px|Chat Bot Select Account scenario block]] The Chat Bot Select Account block is what turns a regular chat scenario into a bot-enabled chat scenario. This scenario block serves the following important functions: * It tells the system that a bot will be used for this scenario * If your system has more than one [[#topic_contact-center-administrator-guide/integrationaccounts/botchatsuggestionsengine| bot/chat suggestions engine integration account]] configured, it lets you select a specific bot for this scenario * If used with a Set Variable scenario block, it specifies that this particular suggestions engine will be used when the chat is connected, overriding the suggestions engine that may be set in the messaging/chat scenario entry point. (See section [[Scenario-builder-reference-guide/ScenarioBlocks/ChatBotSelectAccount#UsagewithSetVariable | Usage with Set Variable]] below.) == Settings == [[File:Chat-Bot-Select-Account-Settings-53.PNG|650px|thumbnail|center|Chat Bot Select Account scenario block settings]] === Title text === The name of the scenario block (any). === Account === The bot/chat suggestions engine integration account to be used for this scenario. The drop-down selector shows all such accounts configured for your contact center. If you do not see any listed, you need to [[#topic_tutorials-for-admins/howtoaddbotchatsuggestionsengine| add an integration account]]. == Usage with Set Variable == Even if you select a particular suggestions engine to be used in your scenario, that selection can be overridden if a different suggestions engine is selected at the service level for the chat's entry point in the Contact Center Administrator application. See the ''Contact Center Administrator Guide'', section [[#topic_contact-center-administrator-guide/scenarioentries/messagingchat| Messaging/Chat Scenario Entries]], property "Bot / Chat suggestions engine." The suggestions engine selected in messaging/chat scenario entry properties will be used when a chat enters into the given scenario's [[#topic_scenario-builder-reference-guide/scenarioblocks/connectchat| Connect Chat]] block '''unless''' the Chat Bot Select Account block is used with a [[#topic_scenario-builder-reference-guide/scenarioblocks/setvariable| Set Variable]] block, in which variable name '''UseChatBotSelectAccount''' is set to a value of '''1'''. To ensure that the engine selected in your scenario is used, do the following: # In your scenario, add a [[#topic_scenario-builder-reference-guide/scenarioblocks/setvariable| Set Variable]] block above the Chat Bot Select Account block.

# In Set Variable properties, specify:

## '''Variable name''' - UseChatBotSelectAccount

## '''Value''' - 1 [[File:UseChatBotSelectAccount1-53.PNG|800px|thumbnail|center|Example scenario with Set Variable and Chat Bot Select Account]]
= Collect Digits= [[File:Collect-Digits.png|225px|Scenario Builder Collect Digits scenario block]] The Collect Digits scenario block prompts the caller to input a string of digits using the phone keypad, and it collects the digits. == How It Works == Specifically, the block initiates the following actions: # The block plays a prompt requesting digit input and waits for input.

# If the user does not start the input (does not enter the first DTMF digit) before the ''Timeout Before First Digit'' expires, the block plays a short version of the main prompt (e.g., ''We did not receive a valid entry, please try again…'') and awaits input again. This is repeated up to the number of attempts configured in the ''Retries'' field. If the specified ''Retries'' count is exceeded, the block exits via the conditional exit '''No Input'''.

# The caller enters the digits using the phone keypad.

# The input is complete when the caller either enters the specified ''Max Number of Digits'', or enters the '''Finish Input button''' (usually #), or interrupts the input for the specified ''Timeout Between Digits''.

# The input can be started over by entering the specified ''Clear Input'' digit (usually *), if necessary.

# Upon completion, the block saves the entered digits as a scenario variable with the specified name. == Properties == [[File:Collect-Digits-Settings.png|550px|thumbnail|center|Scenario Builder Collect Digits scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Prompt to play (main prompt) === This is the initial prompt that instructs the caller to input data. This main prompt is required. Learn more about managing prompts in this guide's [[5.3:Scenario-builder-reference-guide/VoicePrompts | Voice Prompts]] section. === Max number of digits to expect === This is the maximum number of digits to expect. Leave this field empty if the number of digits may vary. === Finish input button === This button is the digit that the caller enters to indicate the input is complete. Most voice scenarios use the pound sign (#) as this indicator. If you specify a finish input button, notify the customer about it during the ''Main Prompt''. If the expected input has a fixed length, set this parameter to ''None'' and specify ''Max number of digits to expect''. If this parameter is set to ''None'', the scenario will use the ''Max number of digits to expect'' and ''Timeout Between Digits'' to determine when the caller completes the input. === Name of the variable to store the result === This is the name for the scenario variable in which the entered digits will be stored. === Retries === ''Retries'' is the number of times this block attempts to execute before the scenario moves to the next building block. Enter "1", or leave this field blank if you only want the block to attempt to execute one time. === Short version of main prompt to play after timeout === This prompt is the one that will be played when the ''Timeout Before First Digit is Dialed'' expires. It is optional; by default, ''Prompt to play'' will play. === Clear input digit === This is the key that the caller presses to reset input to empty string. It is useful when callers must enter long numbers. If you specify a Clear Input Digit, tell the customer about it during the ''Main Prompt'' (e.g., ''If you make a mistake, press the star key''). === Abort input digit === This is the digit that the caller enters to clear all previously entered digits and abort the input. If you specify an abort input digit, tell the customer about it during the ''Main Prompt''. If the caller presses the abort digit, the block will not perform validation (even if it is specified) and will immediately exit. === Timeout Before First Digit is Dialed === ''Timeout'' is the number of seconds that the scenario waits for the caller to start entering input before playing the ''Short version of main prompt''. === Timeout Between Digits === This is the number of seconds that the scenario will wait for the next digit before input is considered completed. == Conditional Exits == The Collect Digits block may take one of two conditional exits: No Input or Aborted. === No Input === The block did not receive any input from the caller after repeating the ''Short version of main prompt'' for the number of times set in the ''Retries'' field. === Aborted === The caller aborted input by pressing the ''Abort input digit''.
= Comment= The Comment scenario block allows you to enter internal comments related to this scenario. Comments have no effect on run-time operations. [[File:Comment-Scenario-Block.png|225px|Scenario Builder Comment scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Comment === ''Comment'' is the field where you enter free-form text comments. [[File:Comment-Block-Settings.png|350px|thumbnail|center|Scenario Builder Comment scenario block settings]] = Connect Call= [[File:Connect-Call-Block.png|225px|Scenario Builder Connect Call scenario block]] The Connect Call scenario block connects a call to the destination specified in the ''$(destination)'' variable (typically, the extension of the agent found by the preceding [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block). If the destination extension has an agent logged in, the system tracks the agent’s state according to the state of the call. The block handles call transfers and conferences internally and only ends when the remote party disconnects or the last agent on the call disconnects. If a [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block was executed prior to a Connect Call block, then the queue treatment started by that Find Agent block continues until the specified destination answers the call. If a ''Service Announcement'' prompt (whisper) is specified for a Connect Call block, the ring back tone or music on hold is played to the caller while the service announcement is played to destination party. The caller will not hear the announcement. For external destinations, Caller IDs are set according to the configuration of the corresponding [[#topic_contact-center-administrator-guide/dial-outentries|dial-out entries]]. == Settings == [[File:CCA-Scenario-Connect-Call-Settings-5399maint.PNG|750px|thumbnail|center|Scenario Builder Connect Call scenario block settings]] === Title text === The name of the instance of the block. === Default Destination === The default phone number to which the call connects if variable ''$(destination)'' is empty. Note that if the destination is an IVR, the phone number can include pauses and digits required to get to the desired contact or self-service option. Comma symbols are used for pauses; each comma will delay dialing of the next digit by one second (e.g., 18005552222,,,5,,245). For more information, see the ''Agent Guide'', section [[#topic_agent-guide/tutorials/calls/howtospeeddialthroughexternalivrs|How to Speed-Dial Through External IVRs]]. === Override Destination === The phone number to which the call connects. If this field has a value, the scenario ignores the destination variable. Use this field only if you want to override the destination variable. Note that if the destination is an IVR, the phone number can include pauses and digits required to get to the desired contact or self-service option. Comma symbols are used for pauses; each comma will delay dialing of the next digit by one second (e.g., 18005552222,,,5,,245). For more information, see the ''Agent Guide'', section [[#topic_agent-guide/tutorials/calls/howtospeeddialthroughexternalivrs|How to Speed-Dial Through External IVRs]]. === Mark all calls connected by this block as overflow calls === If this checkbox is selected, all calls connected via this block will be marked for reporting purposes as calls made to overflow destinations. === Override calling party name with === This setting enables you to override the configured Caller ID name in the outbound call. === No Answer Timeout === The number of seconds that the scenario waits for a destination to answer the call before executing the ''No Answer'' conditional exit. The default is 10 seconds. === Auto-answer call in === The number of seconds that the scenario waits before the call is auto-answered. If you do not use auto-answer, leave this field empty. This function will work for agents who use softphones. Support for this function in hardphones depends on a particular hardphone model. === Escape button for customer to hang up the agent === The button that the caller can press to stop a conversation with this agent. Unlike when it is released, the scenario will continue and can further process the call. === Custom hold music === The prompt that the scenario plays when the caller is on hold. The prompt is always played from the beginning. The prompt is optional; if present, it will override the [[#topic_contact-center-administrator-guide/audiotreatments|default Hold and queue music treatment]] set at the contact center level. === Service announcement === The optional prompt the scenario plays to inform the agent to which service an incoming call pertains or to play a beep as notification. '''Note''': Prompt playback duration is counted as talk time. === number of plays === The number of times that the ''Service Announcement'' prompt, if used, will be played to the agent. === stop announcement button === The button that the agent can use to interrupt playback of the service announcement prompt. === Custom ringback === The prompt that will be played back to the caller instead of a standard ring-back tone. If the ''Keep playing hold music while ringing on agent'' option is selected in the preceding [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block, the ''Custom ringback'' prompt will not be played even if specified. Instead, the queue music will be played up to the moment of answer. === Repeated answer-side prompt === This prompt is used for transfers of service calls to other call centers to announce the call information when the transferred call is answered by the remote agent (e.g., ''This a call is from [name], please press [confirm answer button] to connect''). When the remote agent presses the confirm answer button, a call with the original calling party is established. === Confirm answer button === What the agents of remote contact centers will press to pick up service calls forwarded to them from your contact center after hearing the ''Repeated answer-side'' prompt. === Drop connection if no answer in === The number of minutes that the scenario will wait for the remote contact center to pick up the call before executing the ''No Answer'' conditional exit for this call. It starts from the moment that the remote agent answers. == Conditional Exits == The Connect Call block may take one of the following conditional exits: No Answer, Busy, Target Disconnected, or Transfer Failed. === No Answer === The destination phone rings but no one answers within the ''No Answer Timeout''. This also includes other types of call failures (except for ''Busy''). === Busy === The destination phone is busy (SIP 486) or the call is rejected by an agent. === Target Disconnected === The call was answered by the target side and eventually normally terminated from target side. The current interaction step is completed and a new interaction step is created. This could be used for surveys when the agent hangs up first and survey flow starts from this conditional exit. === Transfer Failed === This is a failure branch for failed agent transfers. = Connect Chat = The Connect Chat scenario block connects a chat to the destination specified in the ''$(destination)'' [[#topic_scenario-builder-reference-guide/variables|variable]] (typically, the agent found by the preceding [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block or to the specified chat scenario entry). If the agent is logged in, the system tracks the agent’s state according to the state of the interaction. The block handles the call transfers and conferences internally and only ends when the remote party disconnects or the last agent disconnects. [[File:Connect-Chat-Block.png|225px|Connect Chat scenario block]] == Conditional Exits == The Connect Chat block may take one of the following conditional exits: No Answer or Target Disconnected. === No Answer === The chat request is submitted to the agent, but the agent does not answer within the ''No Answer Timeout''. === Target Disconnected === The chat request is answered by the agent and eventually, the call is terminated from the agent side. ''Target Disconnected'' could be used as a conditional exit, for example, for customer surveys when an agent disconnects first and a customer survey flow starts from this conditional exit. In the event of agent connection loss during a chat with a customer, a [[#topic_scenario-builder-reference-guide/variables|variable]], ''$(targetDisconnectedCause)'', also supplies the agent disconnect reason. This variable informs the chat scenario of which side has disconnected and gives an option to continue the conversation using the chat scenario or another agent. Values (string) for the variable include the following: ''UserHangup'', ''SystemHangup'', ''UserLogout'', and ''Failure''. In the image shown, a [[#topic_scenario-builder-reference-guide/scenarioblocks/setvariable|Set Variable]] block has been added to the chat scenario, and its name has been set to "Target Disconnected." It appears in the scenario with the following properties. [[File:Target-Disconnected-in-Scenario.png|450px|center|Set Variable block added to scenario]] The [[3.13:scenario-builder-reference-guide/If|If]] and [[3.13:scenario-builder-reference-guide/InternalMessage|Internal Message]] blocks beneath the ''Target Disconnected'' variable provide additional uses for the variable. If the user hangs up, the Target Disconnected variable provides the reason (i.e., the cause) for the disconnected chat and provides an avenue to continue the conversation. [[File:If-User-Hangs-Up.png|700px|center|If User Hangs Up > Target Disconnected Cause]] An internal message is sent to a specific agent or representative (if a user name is entered), and the variable is given in the message. This tells the agent that the chat has been disconnected, and why. This message is not visible to customers. [[File:Internal-Message-Target-Disconnected.png|700px|center|Internal Message > Target Disconnected Cause]] In the following example scenario, the Target Disconnected variable is used with an ''If'' block to discover why the chat was disconnected. The title of the If block is ''Check reason'', the exit label is ''Network Failure'', and the variable is ''"targetDisconnectedCause" = "userLogout"''. In this instance, the variable equals the string "userLogout" in order to inform the scenario that if the chat disconnected due to a network failure, the cause must be that the user logged out. [[File:If-Check-Reason.png|800px|center|Target Disconnected variable being used with an If block]] The next branch in the scenario is ''Network Failure'' followed by ''Send Message''. This sends an automated message to the customer to inform the customer that the chat was disconnected and will resume when another agent is available. The scenario then proceeds with ''Goto "Find Agent (Chat)"'' to find the next available agent to handle the chat. [[File:Network-Failure-Send-Message.png|800px|center|A message tells the customer that the chat was disconnected]] == Settings == Settings, also known as configuration attributes, for this block appear in the ''Edit'' pane on the right when the block is added to the flowchart or selected within the flowchart. These settings specify the function represented by the block, and they are described as follows. === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Default Destination === ''Default Destination'' is the default chat scenario entry to which the chat will be connected if no agents were found by the preceding [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block to serve this interaction. === Override Destination === ''Override Destination'' is the chat scenario entry to which the chat will be connected is this parameter, as specified. If this field has a value, the scenario ignores the agent found by the preceding Find Agent block. === Mark all interactions connected by this block as overflow === If selected, all chats connected via this block will be marked for reporting purposes as chats made to overflow destinations. === No Answer Timeout === ''No Answer Timeout'' is the number of seconds the scenario waits for a destination to answer the call before executing the ''No Answer'' conditional exit. The default is 10 seconds. === Auto-answer in === This represents the number of seconds that the scenario waits before the chat request is auto-answered. If you do not use auto-answer, leave this field empty. === HTML code === ''HTML code'' defines the page that will be presented to the customer when agent accepts the chat request. [[File:Connect-Chat-Properties.png|800px|center|Setting the properties for the Connect Chat block]] = DB Execute= The DB Execute scenario block provides a way for a scenario to execute SQL statements on a specified database. This block can be used to share data between scenarios. [[File:DB-Execute-Block.png|225px|Scenario Builder DB Execute scenario block]] == Conditional Exits == The DB Execute block may take one of the following conditional exits: Failed or No Data. === Failed === An error occurred during SQL statement execution. No error details are provided. === No Data === The SELECT statement successfully executed but did not return any records. [[File:DB-Execute-Block-Conditional-Exits.png|300px|thumbnail|center|DB Execute Block conditional exits]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === DB Connection === ''DB connection'' represents the desired database connection. See the other settings for details. === Name === This is the name of the database connection. This name is shown in the DB Execute block connection selection menu. If no options are shown, click '''Manage DB connections''' to add new DB connections. === JDBC driver and connection string === Specify the JDBC driver and connection string that will be used to access this database. Note that templates are provided for some widely used DBMS systems. === Database user name and password === Specify database access credentials. The database connection selector allows the following operations: * Add a new connection ('''Add New''' button). * Edit and save the selected connection ('''Save''' button). * Delete the selected connection ('''Delete''' button). * Select the connection to be used in the DB Execute block ('''Select''' button). * Clear the connection selected for the DB Execute block ('''Select None''' button). * Close the window without changing the DB Execute block connection ('''Close''' button). === SQL Statement === This is the SQL statement to be executed. SQL statements may use scenario variables. For example: ''SELECT id, name FROM customers WHERE phone=’$(item.from)’'' === Recordset name === For SELECT statements, the name of the retrieved recordset should be specified. This allows scenarios to have more than one recordset and to choose the recordset to iterate on.
* The columns of the first retrieved record (if any) are stored in the scenario variables ''<recordset_name>.<column_name>'' (e.g., ''RS.id''). * The number of returned records is stored in variable ''<recordset_name>.__count__'' (e.g., ''RS.__count__''). Note the double underscores in front and after count; they are used to reduce the chance of confusing the name of this variable with a column name in a recordset. * To iterate through the recordset, use the ''Get Next Record'' block. * The number of records in the retrieved recordset is limited to 25.
The database connection is selected from a list of connections. Click the '''Manage DB connections''' button. The pop-up window will display all database connections defined in this scenario. For each connection, the following data should be defined: [[File:DB-Execute-Block-Settings.png|650px|thumbnail|center|Scenario Builder DB Execute scenario block settings]]
= EMail= The Email scenario block sends an email, with an attachment if so configured. It can be used together with the [[#topic_scenario-builder-reference-guide/record|Record]] block to send recorded voice messages. For SMTP server configuration, see section [[contact-center-administrator-guide/EmailSettings#SMTP_Configuration|Email Settings]] of the ''Contact Center Administrator Guide''. [[File:EMail-Scenario-Block.png|225px|Scenario Builder EMail scenario block]] == Conditional Exits == The EMail block may take the ''Mail not sent'' conditional exit, in which the message cannot be sent (if, for example, the SMTP server is down). == Settings == [[File:Scenario-EMail-Block-54.PNG|650px|thumbnail|center|Scenario Builder EMail scenario block settings]] === Title text === The name of the instance of the block (any name). === From / Display name === The display name of the email sender. A scenario variable can be specified as the value using the ''$(varname)'' format. === From / Address === The email address of the email sender. A scenario variable can be specified as the value using the ''$(varname)'' format. === To / Address(es) === The email addresses of the intended recipients. If sending to multiple email addresses, separate email addresses using a comma or a semicolon. Scenario variables can be specified as values using the ''$(varname)'' format. === To / URL of the recording to attach (optional) === The URL of the recording to attach is the full HTTP URL of the voice recording previously done by a [[#topic_scenario-builder-reference-guide/record|Record]] scenario block. A scenario variable can be specified as the value using the ''$(varname)'' format. Typically, the Record block will store the resulting URL in a scenario variable; this variable will be used by the EMail scenario block. (Before Bright Pattern Contact Center version 3.7.7, a combination of the Record and Email scenario blocks were used to implement recording and distribution of voicemail messages. Starting from version 3.7.7, a new scenario block, called [[#topic_scenario-builder-reference-guide/voicemail|Voicemail]], was introduced to combine the aforementioned functions and support various storage and playback options specific to voicemail.) === To / Template === The language template to be used for the email (e.g., "English", "Japanese", etc.). The email's text will be displayed in the selected language. === Message / Subject === The subject line of the email. Can contain scenario variables in the ''$(varname)'' format. === Message / Format === Specify the format for email: HTML (default) or .TXT (plain text). === Message / Survey link text === The text of the survey link (if there is one; see "Survey link" below), in the same language as the template. === Message / Body === The text to be sent as a message body. It can contain scenario variables in the ''$(varname)'' format. Bright Pattern does not impose any limits on the size of the email. === Insert $() === This button allows you to insert a [[#topic_scenario-builder-reference-guide/variables| variable]] in the ''$(varname)'' format into the body of the email. Choose from the following: * $(user.firstName) * $(user.lastName) * $(user.email) * $(from.name) * $(from.emailAddress) * $(case.number) * $(app.emailAddress) === Survey link === This button allows you to select a configured survey form and insert a link to it into the body of the email. Note that if your contact center has no existing survey forms, there will be no survey link to select. To learn how to create a survey, see [[#topic_workflow-builder-reference-guide/howtosolicitpost-transactionalsurveysviaemail| How to Solicit Post-Transactional Surveys via Email]]. === Remove Template === Clicking this button deletes any text present in the message body. === Test Template === Clicking this button sends a test email, with the specified message, to a specified email recipient. = Exception Handler= The Exception Handler scenario block provides an alternative branch the scenario can execute if an exception, a block error, or a disconnection occurs. This allows the scenario to continue executing instead of terminating as it normally would under such circumstances without the Exception Handler block. Use this block in any part of a scenario in which you expect exceptions, block errors, or caller disconnects in order to ensure continued processing. [[File:Exception-Handler-Scenario-Block.png|225px|Scenario Builder Exception Handler scenario block]] == Conditional Exits == The Exception Handler block may take one of the following conditional exits: Try or Catch. === Try === In the Try conditional exit, enter the sequence of blocks that you predict might generate an exception, block error, or disconnect. === Catch === In the Catch conditional exit, enter the sequence of blocks that you want the scenario to execute if an exception, block error, or disconnect occurs during the Try conditional exit. [[File:Exception-Handler-Try-Catch.png|300px|thumbnail|center|Scenario Builder Exception Handler Try/Catch conditional exits]] The Exception Handler block initially executes the Try conditional exit. * If an exception, block error, or caller disconnect occurs while executing any block in the Try conditional exit, the scenario executes the Catch conditional exit. After executing the Catch conditional exit, the scenario executes the next block in the flowchart. * If no exception, block error, or disconnect occurs, the scenario does not execute the Catch conditional exit. Instead, the scenario processes the next block in the flowchart. == Settings == '''Title text''' ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. [[File:Exception-Handler-Scenario-Block-Settings.png|650px|thumbnail|center|Scenario Builder Exception Handler scenario block settings]] = Exit= The Exit scenario block disconnects the currently active interaction and exits the scenario. [[File:Exit-Scenario-Block.png|225px|Scenario Builder Exit scenario block]] The following example scenario shows Exit blocks in a web chat scenario. [[File:Exit-Block-Scenario-Example.png|650px|thumbnail|center|Scenario Builder Exit block used in a web chat scenario]] = External Transfer Call = The ''External Transfer Call'' scenario block transfers calls to an external number specified in block’s the [[#Destination|Destination]] field. Notes: * This block works only if your VoIP telephony carrier allows the feature for your contact center. * This block is shown in Scenario Builder application only if the ''Allow using network transfers (SIP REFER) on trunk-to-trunk calls to avoid trombones'' feature is enabled in the Service Provider application. * This block should be used instead of the [[#topic_scenario-builder-reference-guide/scenarioblocks/connectcall|Connect Call]] block if you want to transfer an existing customer call to an external destination. * This block only works if you have an existing call to or from a customer; it cannot work if there is no call leg on a trunk already. * Note that the scenario terminates immediately after the transfer and there is no call recording beyond the transfer. For more information about using this block in a scenario, see [[#topic_scenario-builder-reference-guide/exercises/singlestepexternaltransfer|Redirect Calls Economically with a Single-Step External Transfer Option]]. * If the transfer cannot be initiated (e.g., the call is not on a trunk or the carrier does not accept transfer requests), the block will take the [[#Transfer_Failed|Transfer Failed]] conditional exit. In this case, it is still possible to continue with the call and use [[#topic_scenario-builder-reference-guide/scenarioblocks/connectcall|Connect Call]] block to bridge it to a destination. [[File:External-Transfer-Call-Block-554.PNG|225px|External Transfer Call scenario block]] == Conditional Exit == === Transfer Failed === The ''Transfer Failed'' conditional exit is taken if the call transfer failed. Transfers may fail because: * The [[#Destination|Destination]] field is empty * The feature is not allowed for your contact center. * Your service provider has not configured the appropriate trunk setting. * The call does not originate from the trunk (e.g., from a softphone or a hardphone extension). * The transfer request (SIP REFER) receives any response code other than the successful code (i.e., 202 Accepted). == Settings == === Title Text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Save''' button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Destination === ''Destination'' is the phone number the call will be transferred to. You may enter either a phone number or a variable in this field. [[File:SST-2-1-554.PNG|800px|thumb|center|External Transfer Call settings]] = Fetch URL= The Fetch URL scenario block fetches web content, including JSON-formatted data, from a specified URL, using a specified method and parses it into scenario variables. Both HTTP and HTTPS protocols are supported, as well as basic authentication. [[File:Fetch-URL-Scenario-Block.png|225px|Fetch URL scenario block]] == Conditional Exits == The Fetch URL block may take one of two conditional exits: Failed or No Data. * The ''Failed'' conditional exit is taken if an error occurred during the HTTP method execution. See [[#HTTP_Response_Codes|HTTP Response Codes]] below for details. * The ''No Data'' conditional exit is executed if no data is returned in the body of the HTTP response. == Settings == === Title text === ''Title text'' is the name of the instance of the block, displayed in the flowchart. === Request type === ''Request type'' is the type of method to be used to fetch web content from the specified URL. Request types are defined in the pull-down menu. Select from the following request types, or write in another method manually: * GET (default) * POST * HEAD * PUT * DELETE * CONNECT * OPTIONS * TRACE === URL to fetch === ''URL to fetch'' is the HTTP/HTTPS URL of the web resource that this block will access. Query string parameters, if any, should be specified in the URL parameters (see below). If any parameters are defined, they will be appended to the URL, and the '?' and '&' separators will be automatically inserted. === Extra headers === ''Extra headers'' are the HTTP headers to add to the request (e.g. for authentication purposes). Functions can be used by inserting them as a value. Click '''add''' to define a header, type in the ''name'', and type in the ''value''. For example, a payment gateway may have a RESTful interface that requires authentication via “Authorization” header and SHA-256 hash of time, username, and password. To enable authentication, you would provide a request header with the ''name'' “Authorization” and the ''value'' ''“accessid==hmac(“SHA-256”, key, message)”''. Functions are described in the ''Scenario Builder Reference Guide'', section [[#topic_scenario-builder-reference-guide/built-infunctions|Built-in Functions]]. === URL parameters === These are the URL parameters to be URL encoded and appended into URL. Scenario variables can be used by inserting them as ''$(varname)''. Click '''add''' to define URL parameters, type in the name, and type in the value. === Content Type === ''Content Type'' is the type of data to be submitted in request body. Select ''application/json'' for a JSON data structure, or select ''application/x-www-form-urlencoded'' for a URI-encoded data in the body of the message. === Body === This property is displayed when the ''Content Type'' is set to ''application/json'' and is used to specify the data to be transmitted with the given request in the JSON format. Scenario variable substitutions are allowed. === Form parameters === This property is displayed when the ''Content Type'' is set to ''application/x-www-form-urlencoded'' and is used to specify the data to be transmitted with the given request as a URL-encoded key/value string. To define each parameter, click '''add''', type in the parameter name, and set the value. Scenario variable substitutions are allowed. === Username === ''Username'' is the request authentication username. Variable substitutions are allowed. === Password === ''Password'' is the request authentication password. Variable substitutions are allowed. === Initial path in the result JSON === If the response body contains JSON, this setting can be used to save into scenario variables a specific part of the data. Example: ''myobject.node.list[4]''. The default is "none"; the path starts from the root of the returned JSON. === Scenario variable prefix for JSON data === This string will be used as the name of the variable to receive parsed JSON data. Note that if the initial path above points to an array, depending on the value of the ''GetNext'' option below, this variable would either contain the array or its first (and subsequent) elements. === Use GetNext block to loop through data === This box is selected if the JSON response data (at the initial path) is an array. The scenario variable will be set to the first element of the array and GetNext block could be used to iterate over the array elements, setting scenario variable to the next element. '''Note''': If you enable this option, the behavior of the Fetch URL block will be the same as it was for Bright Pattern Contact Center version 3.13 and earlier. [[File:Fetch-URL-315.png|650px|thumbnail|center|Fetch URL scenario block settings]] == Response Data Handling == In all cases, the response data is limited to 50 KB. If the response data is not JSON-encoded, it could be accessed as string via the ''$(integrationResultBody)'' scenario variable described below. If the response data is JSON, the following will happen: # It will be parsed. # If the "GetNext" option is enabled and the item the initial path is pointing to is a regular, non-associative array: ## The scenario variable will be set to the first item of the array. ## The GetNext block could be used to initialize the variable to the next and subsequent items. # Otherwise, the scenario variable will be set to the item to which the initial path is pointing. Possible syntax for the initial path setting and the access to the data saved in the scenario variable is as follows: * ''item.subitem'' * ''item[index]'' * ''item[attr1=value].attr2'' * combinations (e.g., ''item.subitem.array[index].value.array[attr=x].value'') == HTTP Response Codes == The status code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, you may use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt. For more information, see the description of variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. For backward compatibility reasons, the code and the body of the received HTTP response are also stored in local variables ''$(fetchURLResultCode)'' and ''$(fetchURLResultBody)''. The possible values of the ''$(fetchURLResultCode)'' variable are as follows: * '''0:''' 200 OK response (i.e., a successful HTTP request response) * '''-1:''' 200 OK response, but unable to parse the body into recordset * '''-2:''' 200 OK response, but body length exceeds 50 KB * '''-3:''' Unable to connect to HTTP server or other connection errors * '''-4:''' Incorrect JSON syntax in the request body when using PUT or POST requests * '''Other:''' Actual non-200 response code === HTTP Redirect Response Handling === The Fetch URL block handles 3xx Hypertext Transfer Protocol (HTTP) response codes in the following way. When the following codes are received, the block retries the request to the provided redirect URL using the ''GET'' request method: * 301 Moved Permanently * 302 Found * 303 See Other (since HTTP/1.1) When the following codes are received, the block retries the request to the provided redirect URL using the originally specified request method: * 307 Temporary Redirect (since HTTP/1.1) * 308 Permanent Redirect (RFC 7538) When the following status codes are received, the conditional exit ''Failed'' will be selected: * 300 Multiple Choices * 304 Not Modified (RFC 7232) * 305 Use Proxy (since HTTP/1.1) * 306 Switch Proxy = Find Agent = In the Scenario Builder application, the Find Agent scenario block finds an agent qualified to handle a given interaction. When the agent becomes available, the block creates a variable called ''$(destination)'' and sets it to the agent’s phone number (for voice) or username (for chat). Note that [[#topic_contact-center-administrator-guide/omni-channelrouting|Omni-Channel Routing]] settings may determine the frequency with which certain interaction types are routed to your agents. [[File:Find-Agent-Scenario-Block.png|225px|Find Agent scenario block]] '''Important:''' The [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] or [[#topic_scenario-builder-reference-guide/connectchat|Connect Chat]] block should be used immediately after the Find Agent block to connect the interaction to the identified agent. For example, the scenario should proceed in the following way: # The scenario collects data from a caller. # Based on the collected data, the scenario determines the qualifications necessary to handle the call. # The scenario uses the Find Agent block to find an agent with the necessary qualifications (e.g., Peter at extension 151). # That agent’s extension is stored internally in the ''$(destination)'' variable. In this example, the variable is set to ''151''. # The scenario uses the Connect Call block to distribute the call to the number stored in the ''$(destination)'' variable. Note that the block properties will be different depending on whether it is used in a voice or a chat scenario. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Agent skills required === You can select the ''agent skills required'' for handling the interaction. ====Wait condition==== The agent selection rule is expressed as a sequence of escalation intervals with different agent selection criteria defined for each. The term "escalation" implies that each subsequent interval will normally have less stringent selection criteria, thus increasing the probability of finding an agent available to attend to the waiting interaction. If there are multiple conditions specified in the escalation interval, ALL conditions must match for an agent to be considered. A set of conditions in each interval is independent from conditions in other intervals. ====add Interval==== Any number of escalation intervals can be defined within the expression. The last interval can be finite or infinite (leave the end time empty to use an infinite interval). To specify an interval, first define its length. Then click '''add''' to define your agent selection condition for this interval, which are as follows. * '''Skill from skill group''' – This condition matches the interaction to qualified agents according to skill requirements specified in the preceding [[#topic_scenario-builder-reference-guide/requestskillorservice|Request Skill or Service]] blocks. This is the condition that is normally used for skill-based routing. You can define multiple skill groups within the same interval. A minimum acceptable skill level must be assigned to each skill group. * '''Specific skill''' – This condition matches the interaction to qualified agents according to an explicitly specified skill. This option can be used instead of the option ''Skill from skill group'' in simple scenarios without IVR-based service/skill selection. You can define multiple skills within the same interval. A minimum acceptable skill level must be assigned to each skill group. * '''Specific skill from variable''' – This condition matches the interaction to the skill in the specified variable. It can be used as a logical extension of the ''Specific agent'' option. If a specific agent does not become available within the first interval, the interaction can then be routed to a group of agents who share a particular property with that specific agent (e.g., work in the same office). Such a property can be represented by an [[#topic_contact-center-administrator-guide/auxiliaryskills|auxiliary skill]]. You can obtain this skill and store it in the specified variable using the property '''Skill name''' of the [[#topic_scenario-builder-reference-guide/getuserconfiguration|Get User Configuration]] block. This option will ignore any skills requested by the interaction and any agents’ skills except the one identified by this variable. * '''Region''' – This condition matches a customer's region to a user with the same region. If no region is found for the customer, the interaction will be routed to any user; if no user region is set, the user is matched to any interaction. Note that this condition may be combined with other conditions except with the ''Agent currently handling this customer'' condition. * '''Specific agent''' – This condition matches the interaction to the specified agent (e.g., the agent who handled the previous interaction with the same customer). The variable’s value must be the agent’s global identifier in the system configuration (see property '''User ID''' of the [[#topic_scenario-builder-reference-guide/getuserconfiguration|Get User Configuration]] block). This option is available for the first interval only. If the specified agent is logged out, the next interval will be tried immediately. This option will ignore any of the skills requested by the interaction and any skills possessed by the specified agent. * '''Agent currently handling this customer''' – This condition matches the agent currently handling the same customer in another type of interaction. For example, during a phone call with an agent, the customer sends an SMS message; the SMS is delivered to the same agent. === Overflow call handling starts at === This setting defines at which escalation interval the identified agent will be considered an overflow destination, unless his skills/levels match the skill/level requirements of the preceding escalation intervals. === HTML code === ''HTML code'' defines the HTML page that the customer will use during the chat session. This setting applies to chat scenarios only. ===Initial Message=== For chat scenarios only (see image below), the ''initial message'' (i.e., first periodic message) is sent in 5 seconds after the interaction enters the queue, and subsequent periodic messages are sent according to the configured timeout, until the interaction leaves the queue. ===Periodic Message=== For chat scenarios only (see image below), the ''periodic message'' is used to send a periodic regular text message in the same way that the [[#topic_scenario-builder-reference-guide/sendmessage|Send Message]] block does. For example, the periodic message could include [[#topic_scenario-builder-reference-guide/variables|variables]] that provide the customer information about EWT or placement in queue. === Escape button === The ''Escape button'' is the key on the telephone keypad (0-9, *, or #) that a caller can press to exit the queue. When the caller presses the escape button, the scenario executes the Escape Digit conditional exit. Typically in such situations, the scenario sends the caller to a voicemail or terminates the call. This setting applies to voice scenarios only. === Keep call in queue === If selected, the scenario will keep the call in queue even if there are no agents currently logged on. If not selected, the No Agents conditional exit will be used. This setting applies to voice scenarios only and finite intervals only. It does not apply to the condition Specific agent. === Virtual Queue option === The ''Virtual Queue option'' allows the callers to request a callback instead of waiting for an agent in the queue. Calls that requested callbacks will be waiting in a virtual queue. The decision to offer the callback option is made based on the call’s estimated wait time (EWT) in queue. If a caller selects this option, the Callback exit is taken. This exit would normally lead to a [[#topic_scenario-builder-reference-guide/requestcallback|Request Callback]] block where the caller’s original inbound call will be disconnected while his position in the service queue will be preserved. The callback is made when it is the caller’s “turn” to be routed to an agent. Note that the callback option must also be enabled in the [[#topic_contact-center-administrator-guide/propertiestab|general properties of the corresponding service]]. To enable the ''Virtual Queue option'', select the '''enable if EWT is greater than''' checkbox and specify the threshold EWT; the Virtual Queue option will be offered only if the Estimated Waiting Time for a given call exceeds this threshold value. Specify the Callback button (i.e., the phone key that the caller will have to press to select the Virtual Queue option) to request a callback instead of waiting in the queue. If the Virtual Queue option is selected, the Callback conditional exit will be executed, allowing the scenario to collect the callback data and place the call in the virtual queue (see block [[#topic_scenario-builder-reference-guide/requestcallback|Request Callback]]). The Virtual Queue option applies to voice scenarios only. For more information, see the [[#topic_virtual-queue-tutorial/overview|Virtual Queue Tutorial]]. === Periodic reminder - repeat every === This setting allows you to specify the number of seconds you want the scenario to wait between playing the Periodic Reminder prompt. Set this field only if you want the scenario to play the Periodic Reminder prompt. Enter 0 if you want to disable this feature. This setting applies to voice scenarios only. ==== Periodic reminder - when interaction EWT becomes less than ==== If the [[#Periodic_reminder_-_repeat_every|Periodic reminder - repeat every]] setting is configured and you enable this option, if the interaction EWT becomes less than the specified number of seconds, you may configure the scenario to either change the periodic reminder prompt that plays or stop playing the prompt. If this option is not enabled, the ''Periodic reminder - repeat every'' setting will continue to play as specified. Note that this setting applies to voice scenarios only. === Other reminders === This setting allows you to configure one-time prompts to play at specific times (i.e., in seconds); note that these prompts do not repeat. This setting applies to voice scenarios only. === Keep playing hold music while ringing on agent === If selected, the ''Music on hold'' will continue after the Find Agent blocks exits; the prompt is stopped only when the subsequent [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block actually connects the caller to the destination (destination answers). Otherwise, the caller will hear the ring-back tone from the moment the call is delivered to the agent and until the agent answers. This option only works if the block actually finds an agent; for all conditional exits, the hold music stops immediately. This setting applies to voice scenarios only. == Conditional Exits == The Find Agent block may take one of the following conditional exits: No Agents, Queue Limit, Escape Digit, Callback, or Timeout. === No Agents === The ''No Agents'' exit is taken if no agents with matching skills are logged in (or when the last such agent logs out before the call is routed.) === Queue Limit === Your service provider may have set up a limit for the number of items you can have queued for distribution to agents simultaneously (for all services combined). If an interaction processed by the given scenario exceeds this limit upon entering the queue, the ''Queue Limit'' exit will be used. Note that a repeated attempt to place the interaction in the same queue will result in the termination of the scenario. === Escape Digit === The caller presses the escape digit to exit the queue. The ''Escape Digit'' exit will be displayed only if the ''Escape button'' setting is defined (see below). This exit applies to voice scenarios only. === Callback === The ''Callback'' exit will be taken if the ''Virtual Queue'' option is offered to and is accepted by the caller. This exit applies to voice scenarios only. === Time Out === The ''Time Out'' exit will appear only if you define one or more escalation intervals for ''Agent skills required'', provided that the last interval is finite. The Time Out exit will be taken if the last interval expires before any agents with matching skills become available. Note that if the last matching agent logs out before the timeout expires, the No Agents exit will be taken. == Prompts == The Find Agent block can play any of the following prompts for the caller: Music on hold, Initial Prompt, EWT Announcement, Virtual Queue availability announcement, or Periodic reminder. === Music on hold === The scenario plays the ''Music on hold'' prompt while the call is in queue. If not defined, the [[#topic_contact-center-administrator-guide/audiotreatments|default ''Hold and queue music'' treatment]] will be played. The ''Keep playing hold music while ringing on agent'' parameter controls when the music is stopped. === Initial Prompt === If defined, this optional ''Initial Prompt'' will be played to the caller as soon as the call is placed in queue; all other prompts are played after this prompt. === EWT Announcement === The voice scenario plays the ''EWT Announcement'' when providing the estimated wait time (EWT). The scenario uses the system to read the actual EWT. For example, the prompt announces ''The estimated wait time is'', and then the system announces the EWT, such as ''eight minutes''. === Virtual Queue availability announcement === The ''Virtual Queue availability announcement'' prompt is played to callers to offer them an option of requesting a callback instead of waiting in the queue. See the description of the ''Virtual Queue option'' for details. === Periodic reminder === The scenario will periodically play the ''Periodic reminder'' prompt to the call in queue at the frequency you set in the ''Periodic reminder - repeat every'' field. If you do not set this prompt, the reminder does not play. You can use the ''EWT Announcement prompt'' as a reminder prompt. === Keep playing hold music while ringing on agent === The scenario plays the ''Music on hold'' prompt while the call is in queue. If not defined, the [[#topic_contact-center-administrator-guide/audiotreatments|default ''Hold and queue'' treatment]] will be played. The ''Keep playing hold music while ringing on agent'' parameter controls when the music is stopped. === Play random segment === The ''Play random segment'' option offers variety of queue [[#topic_contact-center-administrator-guide/audiotreatments|audio treatments]] for voice calls, allowing you to vary the audio treatments played while waiting in the queue. = Get Agent State = The ''Get Agent State'' block can be used to check an agent's current state. The agent state is stored in the variable [[Scenario-builder-reference-guide/Reference/VariablesandExpressions/Variables#.24.28agentState.29|$(agentState)]]. For state Not Ready, the block also returns the Not Ready reason in the variable [[Scenario-builder-reference-guide/Reference/VariablesandExpressions/Variables#.24.28notReadyReason.29|$(notReadyReason)]]. For state Busy, the block also returns the media type of the interaction the agent is busy with in the variable [[Scenario-builder-reference-guide/Reference/VariablesandExpressions/Variables#.24.28busyWithMediaType.29|$(busyWithMediaType)]]. [[File:Get-Agent-State-54.PNG|225px|Get Agent State scenario block]] == Conditional Exits == The Get Agent State block may take one of the following conditional exits: No data or Logged Out. === No Data === The ''No data'' conditional exit is taken if no agent state is returned. === Logged Out === The ''Logged Out'' condition exit is taken if the specified agent is logged out of the Agent Desktop application. == Settings == === Agent's digital ID (extension) === This field allows you to enter in the extension of an agent with the purpose of retrieving their state. [[File:Get-Agent-State-Settings-54.PNG|650px|thumb|center|Get Agent State settings]] = Get Next Record= The Get Next scenario block provides a way for a scenario to retrieve the next or previous record from a recordset created by a previously executed blocks [[#topic_scenario-builder-reference-guide/dbexecute|DB Execute]], [[#topic_scenario-builder-reference-guide/fetchurl|Fetch URL]], [[#topic_scenario-builder-reference-guide/rightnowsearch|RightNow Search]], [[#topic_scenario-builder-reference-guide/salesforce.comsearch|Salesforce.com Search]], and [[#topic_scenario-builder-reference-guide/zendesksearch|Zendesk Search]]. [[File:Get-Next-Record-Scenario-Block.png|225px|Scenario Builder Get Next Record scenario block]] == Conditional Exits == The Get Next Record block may take the '''No more items''' conditional exit if no more items can be retrieved from the specified recordset. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Direction === Choose whether the next or the previous record should be retrieved. === Recordset name === ''Recordset name'' is the recordset from which the record should be retrieved. The name is selected from the list of available recordsets, which is populated from all [[#topic_scenario-builder-reference-guide/dbexecute|DB Execute]], [[#topic_scenario-builder-reference-guide/fetchurl|Fetch URL]], [[#topic_scenario-builder-reference-guide/rightnowsearch|RightNow Search]], [[#topic_scenario-builder-reference-guide/salesforce.comsearch|Salesforce.com Search]], and [[#topic_scenario-builder-reference-guide/zendesksearch|Zendesk Search]] blocks of the scenario. The columns of the retrieved records (if any) are stored in the scenario variables ''RS.[name]'' (e.g., ''RS.id''). [[File:Get-Next-Record-Scenario-Block-Settings.png|800px|thumbnail|center|Scenario Builder Get Next Record scenario block settings]] = Get Statistics= The Get Statistics scenario block obtains one or more statistics and saves their values in scenario variables for future use. [[File:Get-Statistics-Scenario-Block.png|225px|Get Statistics scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === add === Clicking the '''add''' link will add a statistic and specify the following: * '''Variable Name''': the name of the variable where the statistic will be stored. Variables are specified using the ''$(varname)'' format. * '''Statistic''': the type of statistic that is requested. * '''Service''': the service with respect to which the statistic is requested. By default, the service currently attributed to the given interaction. [[File:Get-Statistics-Settings.png|450px|thumbnail|center|Get Statistics scenario block settings]] = Get User Configuration= The Get User Configuration scenario block obtains one or more of the properties of a user, such as username, phone number, email address, or unique identifier, and saves them in scenario variables for future use. [[File:Get-User-Configuration-Block.png|225px|Scenario Builder Get User Configuration scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Find user by === ''Find user by'' specifies the type of the property that will be used to find the user. You can find a user by using the following properties: * '''Login ID''' – The username * '''Email address''' – The user’s email address * '''Phone''' – The user’s assigned phone extension or default hardphone number * '''User ID''' – The global unique identifier of this user in system configuration; global identifiers can be used, for example, to associate contacts/cases/interactions in third-party systems with agents who handled them === Value === ''Value'' specifies the value of the property that will be used to find the user. === User properties to return === Click '''add''' to select the type of property that you want to use in the scenario and the name of the variable where its value will be stored. The following property descriptions refer to their names as they appear in the Contact Center Administrator application. * '''First Name''' – The user’s first name * '''Last Name''' – The user’s last name * '''Login ID''' – The user’s username * '''Email address''' – The user’s email address * '''Softphone number''' – The user’s phone extension * '''Hardphone number''' – The user’s default hardphone number * '''Team ID''' – The global unique identifier of the user’s team in system configuration * '''Team name''' – The name of the user’s team * '''Voice Mail Greeting URL''' – The link to user’s currently selected voicemail greeting * '''Skill''' – The name of user’s skill from the specified group; this parameter can be used for group-based routing; see the description of option ''Specific skill from variable'' of the Find Agent block for more information * '''User ID''' – The global unique identifier of this user in system configuration; user ID can be used, for example, to associate contacts/cases/interactions in third-party systems with agents who handled them in order to facilitate personal routing; see the description of option ''Specific agent'' of the [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block for more information. Scenario variables can be specified as values using the ''$(varname)'' format. For more information, see ''Contact Center Administrator Guide'' sections [[#topic_contact-center-administrator-guide/users|Users]], [[#topic_contact-center-administrator-guide/teams|Teams]], and [[#topic_contact-center-administrator-guide/skilllevels|Skill Levels]]. [[File:Get-User-Configuration-Block-Settings.png|450px|thumbnail|center|Scenario Builder Get User Configuration scenario block settings]] = Goto= The Goto scenario block redirects the processing flow of the scenario to a specified destination in the flowchart. [[File:Goto-Scenario-Block.png|225px|Scenario Builder Goto scenario block]] To redirect the flow using this block, follow these steps: # Add a Goto block to the desired location in the flowchart. The Scenario Builder will mark the block in red until you define a destination for it. # Select the Goto block in the flowchart. The Edit Pane will display a copy of the flowchart. # In the Edit Pane, click the desired Goto destination (i.e., the building block to which you want to redirect the flow using this Goto block). The flowchart displays the new name of the Goto block, which indicates the location in the flowchart to which the block redirects the processing flow. The format of the name is ''Goto “[destination block title]”''. The Scenario Builder will highlight the Goto block in red if you remove its destination block during editing. In the following example, a Goto block is used to direct a call to voicemail if the call is placed on a holiday. [[File:Goto-Block-Example.png|650px|thumbnail|center|Example of a Goto block redirecting a call to voicemail]] = Identify Contact = The ''Identify Contact'' block performs a search for a contact and associates the contact with the current interaction if a single match is found. The block can search either internal or external sources, such as those configured in section [[#topic_contact-center-administrator-guide/identification|Call Center Configuration > Identification]]. [[File:Identify-Contact-522.PNG|225px|Identify Contact scenario block]] == Conditional Exits == The Identify Contact block may take one of the following conditional exits: Failed, No Data, or Multiple Matches === Failed === The ''Failed'' conditional exit is executed if the search operation or network connectivity to an external CRM site times out. === No Data === The ''No Data'' conditional exit is executed if no data matching the specified search criteria is found. === Multiple Matches === The ''Multiple Matches'' conditional exit is executed if the specified search yields multiple matches. == Settings == === Title Text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Search by === The ''Search by'' drop-down menu allows you to select the source of identification. You may select '''Email address''', '''External ID''', '''Messenger ID''', '''Phone''', or a [[Contact-center-administrator-guide/CustomFields#Contact|custom contact field]]. Note: Custom contact fields will not appear in the ''Search by'' menu unless the checkbox '''Searchable''' has been selected. For more information, see [[Contact-center-administrator-guide/CustomFields#Contact|Custom Fields]]. === Search address === The ''Search address'' field is where to enter a text or variable item containing the email address, external ID, messenger service ID, or telephone number of the contact to search for; search is limited to what option is selected in the [[#Searchby|Search by]] setting. === External Type / Messenger Type === If '''External ID''' is the selected [[#Searchby|Search by]] option, choose either '''Salesforce''' or '''Zendesk'''from the drop-down menu, as the external source. If '''Messenger ID''' is the selected [[#Searchby|Search by]] option, choose '''Facebook''', '''Telegram''', '''Viber''', '''LINE''', or '''Twitter''' as the messenger service source. === Time limit === The ''Time limit'' field is where you may enter a time limit, in seconds, for the search. The default time is 15 seconds and valid values range from one to 99 seconds. This setting is more important for external identification sources (e.g., Salesforce) that may be slow to return the values. It serves as a reminder for scenario writers that a call/chat can spend noticeable time in this block. [[File:Identify-Contact-Settings-522.PNG|650px|thumb|center|Identify Contact scenario block settings]] = If= The If scenario block allows branching of a scenario based on verification of some specified conditions. Multiple conditional exits (branches) can be configured in the same block. [[File:If-Scenario-Block.png|225px|Scenario Builder If scenario block]] == Branches and Conditions == A branch can include one or more logical expressions (conditions), where each condition verifies one the following: * Caller’s number * Current date * Current date and time * Current time * Day * Dialed number * Estimated waiting time * Scenario variable (HOP) * Scenario variable (number) * Scenario variable (string) Use the '''Add branch''' button to add a branch corresponding to the desired conditional exit. Provide a label that will identify the corresponding conditional exit in the flowchart. Click the '''add condition''' link to define a logical expression for verification of one of the above parameters. [[File:If-Block-Settings.png|450px|thumbnail|center|Scenario Builder If scenario block settings]] == Multiple Conditions == Multiple conditions in a branch can be joined by either the AND (default) or OR operator. * AND is used if all specified conditions in a branch must be met in order for the scenario to take the given branch exit. * OR is used when it is sufficient for one of the specified conditions to be met in order for the scenario to take the given branch exit. If necessary, add more branches as described. (Note that there is a limit of 20 branches per If block.) The branches are tried in the order in which they are defined in the block. If none of the branches leads to a positive verification, the block that directly follows the given ''If'' block in the flowchart is executed. == Typical Uses == The following are examples of some typical uses of the If block. === Current Date and Time === The ''Current date and time'' condition is normally used to check the interaction arrival time against the Hours of Operation (HOP) specified in the associated [[#topic_contact-center-administrator-guide/dial-in|scenario entry]], as illustrated in the [[#topic_scenario-builder-reference-guide/scenarioexample|Scenario Example]]. In addition, the ''current date and time'' condition can be used to check the current date and time against the configured calendar hours of operation (HOP) without involving an HOP variable. [[File:Current-Date-Time-316.png|650px|thumbnail|center|The current date and time is checked against the default HOP, without using a variable]] === Current Time === The ''Current Time'' condition can be used along with a Find Agent block to set queue limits based on the time of day. For example, the Current Time condition may be set in the If block to find an agent and set queue limits: "If 10-5 (where ''10-5'' refers to ''10:00 am to 5:00 pm''), find an agent with queue limit of 20" and/or "If 5-7 (where ''5-7'' refers to ''5:00 pm to 7:00 pm''), find an agent with queue limit of 10." === Estimated Waiting Time === The ''Estimated Waiting Time'' condition can be used to determine further processing of the interaction based on the time that the given interaction is likely to wait in the service queue before it can be delivered to an agent. (Note, however, that the estimated waiting time condition related to the Virtual Queue function is defined in the [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block.) === Scenario variable (HOP) === The ''Scenario variable (HOP)'' condition can be used to check the interaction arrival time against any other HOP defined as a [[#topic_contact-center-administrator-guide/dial-in|scenario parameter]]. = Internal Message= The Internal Message scenario block is used to send an [[#topic_agent-guide/howtouseinternalchat|internal chat]] message to a specified user. [[File:Internal-Message-Block.png|225px|Scenario Builder Internal Message scenario block]] == Conditional Exits == The Internal Message block may take the '''Failed''' conditional exit if the attempt to send the message has failed. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Username === This is the username of the message recipient. === Message === The ''message'' is the text of the message to be sent. Variables in the ''$(varname)'' format can be used in the message text. [[File:Internal-Message-Block-Settings.png|450px|thumbnail|center|Scenario Builder Internal Message scenario block setting]] = Log= The Log scenario block adds a message to the Scenario Engine log file. This block is intended for debugging and testing purposes only, and it may be removed in production versions of scenarios. [[File:Log-Scenario-Block.png|225px|Scenario Builder Log scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Text message === ''Text message'' is the free-form content of the message. You can use scenario variables in the text (e.g., ''This is a test log message for call from $(item.from) to $(item.to)''). === Log Level === ''Log Level'' specifies the Scenario Engine log level where this message will appear. [[File:Log-Scenario-Block-Settings.png|350px|thumbnail|center|Scenario Builder Log scenario block settings]] = Menu= [[File:Menu-Scenario-Block.png|225px|Scenario Builder Menu scenario block]] The Menu scenario block plays a menu prompt with options to choose from and then allows the caller to select an option by pressing a dual-tone multi-frequency (DTMF) key. DTMF refers to telephone touch-tones (numbers from 0 to 9, as well as symbols # and *), which are transmitted from phones to other communication devices, such as IVR. == How It Works == The Menu block moves through the following steps: # The menu prompt announces options with corresponding keys from a phone keypad (0-9, *, #). Each selected option corresponds to a conditional exit.

# The caller presses the key corresponding to the desired menu option.

# The block receives the input from the caller and processes the corresponding conditional exit. If a key is not defined, it has no meaning and is considered invalid. The Menu block informs the caller if the input is invalid, or if the time allotted for the caller to enter digits expires. If a caller enters an invalid option or does not enter an option in the allotted time, the scenario executes the subsequent block in the flowchart. == Properties == [[File:Menu-Block-Settings.png|650px|thumbnail|center|Scenario Builder Menu scenario block settings]] === Prompt to play === ''Prompt to play'' is the prompt that the scenario initially plays to the caller. Usually this prompt explains the available menu options. For example, the prompt can say, ''For customer service, press 1, for technical support, press 2, to speak with an operator, press the pound sign.'' Learn more about managing prompts in this guide's [[5.3:Scenario-builder-reference-guide/VoicePrompts | Voice Prompts]] section. === Valid choices === These are the numeric key values assigned to each menu option. To assign a menu option to a key, select the checkbox corresponding to that key. When you enable a key, a text field appears where you can enter a description of the option enabled by this key. The description you enter here will appear in the flowchart as the label of the conditional exit corresponding to the key. By default, the label is the key name. === Invalid input prompt === The ''Invalid input prompt'' is the prompt that the scenario plays when the caller enters an invalid key. Click '''Select''' to choose to ignore a specific invalid digit selection. === Allow interrupting prompt by a phone button === Select this setting in order to allow callers to interrupt the prompts by entering the desired option at any time; uncheck this setting if input is not allowed until the prompt is complete. === Ignore invalid choices === Select this setting to ignore the caller's invalid input. If a caller enters an invalid option, the scenario executes the subsequent block in the flowchart. === Input Timeout === ''Input Timeout'' is the number of seconds that the scenario waits for a caller’s input after playing the initial prompt or its short version before playing the Timeout prompt. If left blank, the block will wait for input indefinitely. === Timeout prompt === The ''Timeout prompt'' is the prompt that the scenario plays when the time allotted for the caller to respond expires. === Short version of main prompt === The ''short version of the main prompt'' (''Prompt to play'') is what the scenario plays after the ''Timeout prompt'' and ''Invalid input prompt''. This prompt can remind the caller about the available menu options. === Retries === ''Retries'' represents the maximum number of times that the voice application will allow the caller to provide input after the input timeout expiration or invalid input. If the number of retries is reached without successful input, the scenario moves to the next block in the flowchart. This parameter can either be set explicitly or via a scenario variable. This parameter can be set to zero to exit menu without retries. == Conditional Exits == With the Menu block, you can configure a conditional exit for each telephone key (0-9, *, #). By default, the block has conditional exits for keys 1 and 2.
= Microsoft Dynamics Create Object= [[File:MS365-Create-Block-53.PNG|225px|Microsoft Dynamics Create Object scenario block]] The Microsoft Dynamics Create Object scenario block creates a specified object in the Dynamics 365 database. You may find it useful to pair this block with the [[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicssearchobject|Microsoft Dynamics Search Object block]]; if you search the Dynamics 365 CRM database for an object and do not find it, you can opt to create that object. == Properties == [[File:MS365-Create2-Properties-53.JPG|450px|thumbnail|center|Microsoft Dynamics Create Object properties]] === Title text === The name of the instance of the block (any name). === Object type === The type of object you want to create in the Dynamics 365 database. Select from one of the following types: * Account * Case * Contact * Contract * Invoice * Lead * Opportunity * Order * Quote === Variable name for object ID === The name of the variable that will be used as identifier for the Dynamics 365 object to be created. The variable name of the object ID will be set only if the block succeeds. === Set fields === This setting is reserved. === Raw JSON === Where object properties are specified in JSON format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. == Conditional Exits == If the create operation has failed, the block will take the ''Failed'' exit. = Microsoft Dynamics Delete Object= [[File:MS365-Delete-Block-53.PNG|225px|Microsoft Dynamics Delete Object scenario block]] The Microsoft Dynamics Delete Object scenario block is used for deleting a specified object in the Dynamics 365 database. You may find it useful to pair this block with the [[5.3:Scenario-builder-reference-guide/MicrosoftDynamicsSearchObject | Microsoft Dynamics Search Object block]]; you can search the Dynamics 365 CRM database for an object and then use the Delete Object block to remove it. == Properties == [[File:MS365-Delete-Properties-53.PNG|450px|thumbnail|center|Microsoft Dynamics Delete Object properties]] === Title text === The name of the instance of the block (any name). === Object type === The type of object you want to delete in the Dynamics 365 database. Select from one of the following types: * Account * Case * Contact * Contract * Invoice * Lead * Opportunity * Order * Quote === Object ID === The object ID is the name of the variable that will be used to identify the Dynamics 365 object to be deleted. The variable name of the object ID will be set only if the block succeeds. == Conditional Exits == If the create operation has failed, the block will take the ''Failed'' or ''No Data'' exit. === Failed === This exit is taken if the search operation failed due to invalid parameters, timeout, or network connectivity to the Dynamics 365 CRM. === No Data === This exit is taken if no data matching the specified search criteria is found. = Microsoft Dynamics Screen Pop= [[File:MS365-Screenpop-Block-53.PNG|225px|Microsoft Dynamics Screen Pop scenario block]] The Microsoft Dynamics Screen Pop scenario block specifies what Dynamics 365 data to be displayed for the agent when the interaction is delivered to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block. == Properties == [[File:MS365-Screenpop-Properties-53.PNG|800px|thumbnail|center|Microsoft Dynamics Screen Pop properties]] === Title text === The name of the instance of the block (any name). === Pop screen upon answer === Selecting this checkbox will screen pop the specified data to the agent upon accepting the interaction. If selected, this applies to any of the following screen pop options. === Pop object === Screen pops a specified Dynamics 365 object to the agent. === Pop a search result === Screen pops specified search result(s) to the agent. === Cancel screen pop === Cancels the screen pop of a specific Dynamics 365 object that may have been set by a previous use of this block in the same scenario. === Object Identifier === The name of the variable that identifies the Dynamics 365 object to be displayed. It can be specified as an application variable in the ''$(varname)'' format. === Object type === The type of object from the Dynamics 365 database that you want to screen pop. Select from one of the following types: * Account * Case * Contact * Contract * Invoice * Lead * Opportunity * Order * Quote = Microsoft Dynamics Search Object = [[File:MS365-Search-Block-53.PNG|225px|Microsoft Dynamics Search Object scenario block]] The Microsoft Dynamics Search Object block finds an existing object in the Dynamics 365 database. When using this block, we assume that we have some information about a contact, such as case state, account number, or name, and we use that information for data lookup. You can use this block to search for a variety of data object types, including Account, Case, Contact, Contract, Invoice, Lead, Opportunity, Order, and Quote. == Properties == [[File:MS365-Search2-Properties-53.JPG|450px|Microsoft Dynamics Search Object properties]] === Title Text === The name of the instance of the block (any name). === Object type === The type of object you want to search for in the Dynamics 365 database. Values may be manually entered in this field or selected from the drop-down menu. Note that the value in the ''Object type'' field is the Dynamics '''Entity Set Name'''. For more information, see [https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/query-data-web-api Query Data using the Web API]. Select from one of the following types: * Account * Case * Contact * Contract * Invoice * Lead * Opportunity * Order * Quote === Query === This field allows free-form entry of of text in Dynamics 365 search URL syntax. ==== Recordset name ==== A recordset is a set of records (presented either as a table or a query from a table) in JSON format, which holds the results of the search that this block is doing. The recordset name is the name of the recordset in JSON format. When entering the recordset name (e.g., "MScase"), you are declaring your recordset in a field name, and the value entered in this field can then be used in a number of subsequent blocks to dictate further actions (e.g., passing the value to a [[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicscreateobject|Microsoft Dynamics Create Object]] block if information about a contact is not found). == Conditional Exits == === Failed === This exit is taken if the search operation failed due to invalid parameters, timeout, or network connectivity to the Dynamics 365 CRM. === No Data === This exit is taken if no data matching the specified search criteria is found. = Microsoft Dynamics Select Account= [[File:MS365-Select-Block-53.PNG|225px|Microsoft Dynamics Select Account scenario block]] Your contact center configuration may contain multiple Microsoft Dynamics 365 [[#topic_contact-center-administrator-guide/integrationaccounts|integration accounts]] for access to different Dynamics 365 apps. Use the Microsoft Dynamics Select Account block to specify the integration account that will be used by subsequent Microsoft Dynamics blocks in the given scenario. If this block is not used, all Microsoft Dynamics blocks in the given scenario will use access data from the integration account marked as ''Default account''. For more information, see the ''Contact Center Administrator Guide'', section [[#topic_contact-center-administrator-guide/integrationaccounts/microsoftdynamics365| Microsoft Dynamics 365 Integration]]. == Properties == [[File:MS365-Select-Properties-53.PNG|550px|thumbnail|center|Microsoft Dynamics Select Account scenario block properties]] === Title text === The name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Account === The name of the Microsoft Dynamics Select Account integration account that will be used for access to Dynamics 365 data by subsequent Microsoft Dynamics blocks in the given scenario. = Microsoft Dynamics Update Object= [[File:MS365-Update-Block-53.PNG|225px|Microsoft Dynamics Update Object scenario block]] The Microsoft Dynamics Update Object scenario block is used for making changes to a specified object in the Dynamics 365 database. You may find it useful to pair this block with the [[#topic_scenario-builder-reference-guide/scenarioblocks/microsoftdynamicssearchobject|Microsoft Dynamics Search Object block]]; if you search the Dynamics 365 CRM database for an object and want to edit it, you can opt to update that object. == Properties == [[File:MS365-Update2-Properties-53.JPG|450px|thumbnail|center|Microsoft Dynamics Update Object properties]] === Title text === The name of the instance of the block (any name). === Object type === The type of object you want to create in the Dynamics 365 database. Select from one of the following types: * Account * Case * Contact * Contract * Invoice * Lead * Opportunity * Order * Quote === Object identifier === The object ID is the name of the variable that will be used to identify the Dynamics 365 object to be updated. The variable name of the object ID will be set only if the block succeeds. === Set fields === This setting is reserved. === Raw JSON === Where object properties are specified in JSON format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. == Conditional Exits == If the create operation has failed, the block will take the ''Failed'' or ''No Data'' exit. === Failed === This exit is taken if the search operation failed due to invalid parameters, timeout, or network connectivity to the Dynamics 365 CRM. === No Data === This exit is taken if no data matching the specified search criteria is found. = Play-Listen = [[File:Play-Listen-Scen-53.PNG|225px|Play-Listen scenario block]] The Play-Listen scenario block is a key part of Bright Pattern's [[#topic_contact-center-administrator-guide/concepts/conversationalivr| conversational IVR]]. The block enables natural conversation in an automated scenario, using the combination of integrated text-to-speech and speech-to-text technologies, along with integrated chatbots, to "talk" to customers on inbound voice calls and "listen" for their spoken or DTMF (i.e., touch tones) response. To use this block, your contact center must have a [[#topic_contact-center-administrator-guide/integrationaccounts/speechtotext| Speech To Text]] (STT) integration account and a [[#topic_contact-center-administrator-guide/integrationaccounts/texttospeech| Text to Speech]] (TTS) integration account. (Note that for scenarios in which input from the caller is expected in response to a prompt, use the [[#topic_scenario-builder-reference-guide/menu|Menu]] block.) == How It Works == On a call, if the Play-Listen block detects that the caller is talking or entering touch tones on the phone, the voice prompt will stop playing, and one of the following will happen: * If a DTMF key is detected, the DTMF exit will be taken, leaving the key in the buffer for subsequent DTMF blocks. * If there is no change in voice detection, the Play-Listen block will take the Timeout exit. * If a vocal change is detected, the caller's voice data will be fed into the selected ''transcriber'' (see below) until the voice changes back to a lower level. The transcription result will be saved into the specified ''recognized phrase'' variable (see below) and the Play-Listen block will take the normal exit. == Properties == In this block's properties, you will configure Play-Listen to play a voice prompt for the caller, collect the caller's spoken response or DTMF response, offer bot suggestions to the caller, and route the caller if the block fails. [[File:Scenario-Builder-Play-Listen-Settings-5399maint.PNG|800px|thumbnail|center|Scenario Builder Play-Listen scenario block settings]] === Prompt to play === This is the prompt that the scenario will play to the caller. The Play-Listen block uses text-to-speech technology to convert bot response text into speech in a specified language. The prompt will sound like a robot. You have the option to record your own voice segment and upload it to the Prompts list as a .WAV file. Learn more about managing prompts in this guide's section, [[5.3:Scenario-builder-reference-guide/VoicePrompts | Voice Prompts]]. ==== Allow interrupting prompt by customer voice ==== When this checkbox is enabled, if the Play-Listen block detects that a caller is talking while the configured prompt is playing, the prompt will be interrupted. Note that this setting is unchecked by default. Enabling this checkbox may be useful as a subsequent [[#topic_scenario-builder-reference-guide/scenarioblocks/menu|Menu]] block does not require a second input and a subsequent [[#topic_scenario-builder-reference-guide/scenarioblocks/collectdigits|Collect Digits]] block no longer requires variable concatenation (i.e., starting from Bright Pattern Contact Center version 5.5.5). === Transcriber === The ''transcriber'' is the Speech-to-Text (STT) engine that takes the caller's vocal response and converts it to text, thus producing a text transcription of whatever was spoken. Select the [[Contact-center-administrator-guide/IntegrationAccounts#Speech_To_Text_Integration_.28STT.29 | STT integration account]] that has been configured for your contact center. [[File:Transcriber1-53.PNG|800px|thumbnail|center|Select transcriber]] === Recognized phrase === The ''recognized phrase'' uses a variable to represent whatever the customer says. In this field, enter the variable that receives the caller's spoken "phrase" (e.g., "user_phrase" or "bot_phrase"). The variable name can be anything you want, as long as you use the same variable name consistently in your scenario. The variable/recognized phrase is set using the [[#topic_scenario-builder-reference-guide/setvariable| Set Variable]] block. === Confidence === ''Confidence'' indicates the speech-to-text service's confidence in its identification of the speakers and the words that are spoken. In this field, confidence is represented by a variable that receives the confidence value from your integrated speech-to-text engine. As with the recognized phrase variable, you can enter any variable you want here (e.g., "cc"), as long as you use it consistently later. Your STT engine conveys confidence as a numeric value, 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. If confidence is low, the scenario can escalate the call to a real agent. === Max timeout === The default value is 20 seconds. When the ''max timeout'' is reached, the scenario will exit the Play-Listen block using the ''Timeout'' conditional exit (see below). === Re-use digit from interrupting button in the next block === If the [[#DTMF|DTMF]] conditional exit is taken (i.e., DTMF is received as an input), and this checkbox is enabled, the received DTMF code is saved in the buffer and may be used in a subsequent [[#topic_scenario-builder-reference-guide/menu|Menu]] block. == Conditional Exits == The scenario can exit the Play-Listen block through the DTMF exit, Failed exit, or Timeout exit. [[File:ConIVR3-53.PNG|800px|thumbnail|center|DTMF and Failed conditional exits]] === DTMF === Dual-tone multi-frequency (DTMF) refers to telephone touch-tones. If the Play-Listen block detects that the caller is transmitting numeric information (numbers from 0 to 9, as well as symbols # and *) on the phone, it will take the ''DTMF'' exit, running through the scenario as specified. Note that when a customer is speaking, if they press a DTMF key, this exit will be taken. When a DTMF key is pressed, the first DMTF entry will populate the [[Scenario-builder-reference-guide/Reference/VariablesandExpressions/Variables#.24.28playListenDTMF.29|$(playListenDTMF)]] variable. To define what the scenario will do once the exit is triggered, drag a scenario block over to the DTMF exit. In the example shown above, when the DTMF exit is triggered, an internal message is sent to a specified agent, so that the agent knows that touch-tone information was provided via the IVR. Then, the scenario uses the [[#topic_scenario-builder-reference-guide/goto| Goto]] block to go to the [[#topic_scenario-builder-reference-guide/findagent| Find Agent]] block. === Failed === The ''Failed'' exit is taken when the Play-Listen block has delivered the prompt but has failed to collect a response from the caller. To define what the scenario will do once the exit is triggered, drag a scenario block over to the Failed exit. In the example shown above, when the Failed exit is triggered, an internal message is sent to a specified agent, so that the agent knows that conversational IVR didn't get a response from the caller. Then, the scenario uses the [[#topic_scenario-builder-reference-guide/goto| Goto]] block to go to the [[#topic_scenario-builder-reference-guide/findagent| Find Agent]] block. === Timeout === If the Play-Listen block does not detect any changes in vocal input or if the call is silent, the block will take the Timeout exit. To define what the scenario will do once the exit is triggered, drag a scenario block over to the Timeout exit. You may wish to use the [[#topic_scenario-builder-reference-guide/goto| Goto]] block to go to the [[#topic_scenario-builder-reference-guide/findagent| Find Agent]] block. == Recommended Reading == Explore Bright Pattern's tutorials to learn more about how to use the Play-Listen block: * [[#topic_contact-center-administrator-guide/concepts/conversationalivr| What Is Conversational IVR?]] * [[#topic_tutorials-for-admins/voice/conversationalivrconfiguration| How to Configure Conversational IVR]] * [[#topic_scenario-builder-reference-guide/conversationalivrscenario| How to Use Conversational IVR in a Scenario]] = Play Prompt= [[File:Play-Prompt-Block.png|225px|Play Prompt scenario block]] The Play Prompt scenario block plays a voice or music prompt to the caller. This building block is also useful for reporting an error or the outcome of an operation for testing purposes. For scenarios in which input from the caller is expected in response to a prompt, use the [[#topic_scenario-builder-reference-guide/menu|Menu]] and [[#topic_scenario-builder-reference-guide/collectdigits|Collect Digits]] blocks. == Properties == [[File:Play-Prompt-Block-Settings.png|450px|thumbnail|center|Scenario Builder Play Prompt scenario block settings]] === Prompt to play === ''Prompt to play'' is the prompt that the scenario will play to the caller. Learn more about managing prompts in this guide's section, [[5.3:Scenario-builder-reference-guide/VoicePrompts | Voice Prompts]]. '''Note:''' Some service configuration changes that affect agent behavior are not picked up dynamically by Agent Desktop. Thus, after making a change to voice prompts, we recommend that all affected logged-in agents refresh their browser page. === Allow interrupting prompt by phone button === Select this checkbox to allow callers to interrupt the prompt by pressing a phone key. === Re-use digit from interrupting button in the next block === Select this checkbox if the digit(s) entered by the user should be preserved for potential use in the scenario block that immediately follows this one. If the next block is [[#topic_scenario-builder-reference-guide/menu|Menu]] or [[#topic_scenario-builder-reference-guide/collectdigits|Collect Digits]], its initial prompt will be interrupted immediately and the preserved digit(s) will be used as input. If the next block is another Play Prompt block, its prompt will be skipped altogether as long as the option ''Allow interrupting prompt by phone button'' is selected in that block. === Exit immediately and continue playing prompt in background === Select this checkbox to exit the block immediately and proceed with normal scenario execution while the prompt playback continues in the background until one of the following occurs: # Termination of the call by the listening party

# Execution of the [[#topic_scenario-builder-reference-guide/exit|Exit]] block

# Execution of the [[#topic_scenario-builder-reference-guide/stopprompt|Stop Prompt]] block

# Execution of any other scenario block containing a voice prompt. Note one exception to this fourth action: if another Play Prompt block is executed with this option unchecked, the requested prompt will be played once, and the playback of the original continuous prompt will resume.
= Record= The Record scenario block provides a way for a scenario to record a message over the phone and store it as a shared voice segment for subsequent use in other scenarios. Such a shared voice segment must first be [[#topic_contact-center-administrator-guide/sharedvoicesegments|created via the Contact Center Administrator application]] and then selected as the value of property ''Shared voice prompt'' of this block. [[File:Record-Block.png|225px|Scenario Builder Record scenario block]] This block will record the message in the “current” scenario language. The default current language is ''English - United States''. To change the current language, use the [[#topic_scenario-builder-reference-guide/setpromptlanguage|Set Prompt Language]] block. To record one voice segment in two different languages in the same scenario, you can set the first desired language, use the Record block, then set the second language, and use the Record block again with the same setting of the ''Shared voice prompt'' property. '''Note:''' Before Bright Pattern Contact Center version 3.7.7, a combination of the Record and [[#topic_scenario-builder-reference-guide/email|EMail]] scenario blocks were used to implement recording and distribution of voicemail messages. In version 3.7.7, the [[#topic_scenario-builder-reference-guide/voicemail|Voicemail]] block was introduced to combine the above functions and support various storage and playback options specific to voicemail. Starting from version 3.8, Bright Pattern Contact Center Software also supports a [[#topic_contact-center-administrator-guide/voicemail|built-in voicemail function]]. == Conditional Exits == The Record block may take one of the following conditional exits: Silence, Error, Max Recording Time Exceeded, or Cancelled. [[File:Record-Block-Conditional-Exits.png|300px|thumbnail|center|Scenario Builder Record conditional exits]] === Silence === Silence is detected. The ''Detect Silence'' checkbox must be selected, and the ''Cancel on initial silence of'' parameter must be specified. === Error === A scenario block error occurs. === Max Recording Time Exceeded === The ''Maximum duration'' is exceeded. === Cancelled === The recording is cancelled by the user. == Prompts == The Record block plays the '''Confirmation menu prompt''' after replaying the recorded message. This prompt will normally offer the following options: accept the recording, record again, and cancel recording. The user will be expected to select the desired option by pressing the phone key specified for each option (by default, these are digits 1, 2, and 3, respectively). == Settings == [[File:Scenario-Builder-Record-Block-Settings-5312.PNG|650px|thumbnail|center|Scenario Builder Record scenario block settings]] === Title text === The name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Maximum duration === Specifies the maximum duration of the recording in seconds. === Recording encoding === The type of encoding method being used. Select G.711 (default) for the best quality, or GSM6.10 for a smaller file. === Recording mode === Allows you to select from either of the following recording options: ==== Shared Voice Segment that can be used in IVR Prompts ==== Allows you to select any shared voice segment you have configured to use in IVR prompts. [[#topic_contact-center-administrator-guide/sharedvoicesegments|Shared Voice Segments]] are configured in Contact Center Administrator. ==== Store recording accessible via a URL ==== Allows you to access recordings via URL through either Agent Desktop or when sent as an email attachment. '''Note''': In order to enable these options, there are additional configuration steps listed per the following methods. ==== Name of the variable to store secure URL to play via Agent Desktop ==== Allows you to name a variable to store recordings to play via Agent Desktop. For this feature to work, you must have [[#Transcribe_recording_.28uses_Speech_to_Text_Integration_Account.29|Transcribe recording (uses Speech To Text integration account)]] and [[#Natural_Language_Understanding_.28sentiment.29_account|Natural Language Understanding (NLU)]] checked and configured, as well as variables entered in fields corresponding with [[#Name_of_the_variable_to_store_text_transcript_of_the_recording|text transcripts]] and [[#Name_of_the_variable_to store_sentiment_of_recording|sentiments]]. '''Note''': To ensure this feature is working properly, you may need to make sure that the recording, transcript, and sentiment were received (use the [[#topic_scenario-builder-reference-guide/log|Log]], [[#topic_scenario-builder-reference-guide/email|EMail]], or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] blocks to obtain variables). You may also need to verify that clicking on the received recording URL makes Agent Desktop come up in your browser and requires authentication. After logging in successfully, the URLs will become available. ==== Name of the variable to store recording URL to use as email attachment ==== Allows you to name a variable to store the recording as an email attachment (e.g., “recording_url”). '''Note''': This variable must be connected to an [[#topic_scenario-builder-reference-guide/email|EMail]] block in the same scenario to send the URL via email (e.g., “$(recording_url)”). ==== Store recording into a string variable, base-64 encoded ==== This option allows you to store the recording into a string variable, which is Base64 encoded; the format of the recording is the Resource Interchange File Format (RIFF) (i.e., essentially a .WAV file). The length of the recording is hard-limited to 30 seconds. When configured, this option makes it possible to pass voice recordings in RESTful API calls (e.g., voice biometrics enrollment, verification). === Detect silence === If selected, the Record block will analyze the voice stream in order to reject empty messages and determine the end of message. The ''Detect silence'' option requires more processing power. === Confirm before saving === If selected, the Record block will play the recording back to the caller and ask the caller to confirm or re-record the message before it is saved. === Beep at start of recording === If selected, the Record block will provide a tone indicating the beginning of the recording. === Confirmation menu prompt (after recorded message replay) === The name of the confirmation menu segment that will be used after the recorded message replay. To configure the menu prompt message and/or language, click on the '''Select option''' link to bring up the prompts list. === Accept recording" DTMF (default 1) === The touch-tone value that will be used to accept the recording (e.g., "Press 1 to accept the recording."). The default value is 1. === Record again" DTMF (default 2) === The touch-tone value that will be used to record the message again (e.g., "Press 2 to re-record the message."). The default value is 2. === Cancel recording" DTMF (default 3) === The touch-tone value that will be used to cancel recording (e.g., "Press 3 to cancel."). The default value is 3. === Transcribe recording (uses Speech to Text Integration Account) === When selected, this uses your integrated [[5.2:contact-center-administrator-guide/IntegrationAccounts#Speech_To_Text_Integration_.28STT.29|Speech To Text]] account to transcribe recorded conversations. '''Note''': This option is only available if the setting [[#Store_recording_accessible_via_a_URL|Store recording accessible via a URL]] is selected. === Natural Language Understanding (sentiment) account === Allows you to select the [[5.2:contact-center-administrator-guide/IntegrationAccounts#Natural_Language_Understanding_Integration|Natural Language Understanding (NLU)]] account you wish for sentiment recording. === Name of the variable to store text transcript of the recording === If a [[#Transcribe_recording_.28uses_Speech_to_Text_Integration_Account.29|Speech To Text (STT)]] account has been selected for this Record block, this field allows you enter the name the variable you want associated with the STT account (e.g., "transcript_survey"). '''Note''': This variable may be linked to [[scenario-builder-reference-guide/SaveSurveyResponse#Conversation_or_recording_text_transcript|Save Survey Response]] block for saving survey responses related to recorded text transcripts. === Name of the variable to store sentiment of recording === If a [[#Natural_Language_Understanding_.28sentiment.29_account|Natural Language Understanding (NLU)]] account has been selected for this Record block, this field allows you to name the variable you want associated with the sentiments determined by your NLU account (e.g., "sentiment_survey"). '''Note''': This variable may be linked to [[scenario-builder-reference-guide/SaveSurveyResponse#Conversation_or_recording_sentiment|Save Survey Response]] block for saving survey responses related to recorded sentiments. = Request Callback= The Request Callback scenario block implements the ''Virtual Queue'' option when such an option is requested via an associated [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block. The Request Callback block takes the following actions: # Confirms the callback request # Releases the original inbound call # Places the associated callback request in the virtual queue # Waits for a matching agent # Makes the callback when an agent becomes available or the estimated wait time (EWT) expires For more information, see the [[#topic_virtual-queue-tutorial/overview|''Virtual Queue Tutorial'']]. The block uses the skill requirements set in the Find Agent block. [[File:Request-Callback-Block.png|225px|Scenario Builder Request Callback scenario block]] == Conditional Exits == The Request Callback block may take one of the following conditional exits: No Agents, Time Out, No Answer, or Busy. === No Agents === The No Agents conditional exit is executed if no matching agents are logged in (or the last matching agent logs out while the callback request is waiting in the queue). === Time Out === The Time Out conditional exit is executed if no matching agents are found or predicted to be found within the time specified in the ''Cancel request after'' parameter. === No Answer === The No Answer conditional exit is executed if the party that requested the callback does not answer when called back. This exit will also be used for any other reason that the callback attempt might fail, except when the party is ''busy''. === Busy === The Busy conditional exit is executed if the party that requested the callback is busy when called back. == Prompts == The Request Callback block plays the ''Confirmation prompt'' to confirm that the callback request has been accepted. The caller may release the call at any time during the prompt. Otherwise, the block will release the call as soon as the prompt is finished. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Confirmation prompt === You can select a ''Confirmation prompt'' from the list of existing prompts, or you can create your own. === Callback phone === ''Callback phone'' is the phone number to be called during the callback attempt. The caller ID (ANI) of the original inbound call is used by default. === Cancel request after === The ''Cancel request after'' setting specifies the time after which the virtual call (i.e., the callback request) will be canceled if no matching agents can be found. === Start dialing === If an agent becomes available for a given virtual call before the estimated wait time (EWT), the callback is made at the moment when the agent becomes available. Otherwise, the callback attempt is made a few seconds before EWT expiration, based on the prediction that an agent will have become available by the time the callback is answered by the customer. The ''Start dialing'' setting defines how many seconds in advance of the EWT expiration that the callback attempt shall be made. (Note that if an agent does not become available at that time, the answered call is placed in the first position in the service queue to be connected to the next available agent.) You can choose to have the Virtual Queue option ignore (i.e., override) the EWT by setting the value in ''Start dialing'' to "0" (zero). Doing so will make the Virtual Queue option ignore the EWT, and instead, reserve an agent. When a skilled agent becomes ''Ready'', the callback will be initiated. '''Note:''' If you set ''Start dialing'' to zero, the reserved agent will not be able to change the agent state to ''Not Ready''. Because this will pose a change in agent behavior, agents should be alerted about such a change when modifications to this setting are made. === No Answer Timeout === ''No Answer Timeout'' specifies for how long the block will wait for the party to answer before taking the No Answer conditional exit. [[File:Request-Callback-Block-Settings.png|750px|thumbnail|center|Scenario Builder Request Callback scenario block settings]] = Request Input= The Request Input scenario block is used to request information from a chat customer. It can be used, for example, to ask for customer information at the beginning of the chat session (e.g., first and last name, email address, etc.), or to offer the customer a satisfaction survey at the end of the session. [[File:Request-Input-Block.png|225px|Scenario Builder Request Input scenario block]] == Conditional Exits == The Request Input block may take the ''Timeout'' conditional exit if no customer input is received within the specified timeout. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Prompt with === This setting represents the type of prompt to be used to request input. * To request input via a message directly in the chat window, select '''text message''' and specify the text in the '''Message to send''' field. * To request input via a predefined form, select '''form''' and use the '''Form name''' field to specify the name of the form that is to be displayed by the client chat application. These forms are defined in [[#topic_chat-widget-configuration-guide/in-scenarioandmanually-sentforms|Chat Widget Configuration Application > In-Scenario and Manually-Sent forms]]. '''Note:''' Starting with Bright Pattern Contact Center version 3.12, option ''HTML'' is no longer available for new chat scenarios. All forms should now be created in the client application and called from the chat scenario via the ''form'' option. Forms created in previous software versions using this option will continue to be supported. === Timeout after === The ''Timeout after'' setting specifies for how long the block will wait for customer’s input before taking the Timeout conditional exit. [[File:Request-Input-Block-Settings.png|450px|thumbnail|center|Scenario Builder Request Input scenario block settings]] == Results == If the requested input data comes from a form, its field values can be used as $(item.externalChatData.abc) where abc is a field name. If the requested input comes as a chat message, $(item.message) can be used to access the text. = Request Skill or Service= The Request Skill or Service scenario block sets the skill requirements for the given interaction. Note that the minimum skill levels are set in the [[#topic_scenario-builder-reference-guide/findagent|Find Agent]] block. [[File:Request-Skill-Block.png|225px|Scenario Builder Request Skill or Service scenario block]] == Settings == The Request Skill or Service scenario block has two drop-down lists. The first one lists the skill groups currently configured in the system. The second one lists the skills configured for the selected skill group. Settings should be configured as follows: * In the first drop-down list, select the skill group containing the skill that an agent must have in order to be considered qualified to handle this interaction. * In the second drop-down list, select the skill that an agent must have in order to be considered qualified to handle the interaction. The label of the Request Skill block will appear in the flowchart in this format: ''Request Skill or Service “[skill group]=[skill]”'' * To remove all possible prior skill requirements for this interaction and to use only the skills specified in this block, select the '''Reset prior skill requirements''' checkbox. '''Note''': If a custom scenario is used for an [[#topic_contact-center-administrator-guide/servicesandcampaigns/outboundtab|outbound campaign]], note that it is not recommended to use this scenario block to change the service to a difference service. The result of this is the list of dispositions presented to and used by agents will not match the list of dispositions for the outbound campaign results. [[File:Request-Skill-Block-Settings.png|650px|thumbnail|center|Scenario Builder Request Skill or Service scenario block settings]] = Retrieve Internal Record= The Retrieve Internal Record scenario block allows you to get data about internal records. Note: This scenario block will be replaced by the [[#topic_scenario-builder-reference-guide/brightpatternsearchobject|Bright Pattern Search Object]] block starting in version 5.2.2 of Bright Pattern Contact Center software. While the block will still be supported in scenarios created with previous versions of the software, it will not be possible to add this block to any new scenarios, post upgrade. [[File:Retrieve-Internal-Block-50.PNG|225px|Scenario Builder Comment scenario block]] == Conditional Exits == The Retrieve Internal Record block may take the ''Failed'' conditional exit if the attempt to retrieve the record has failed. The block may take the ''No Data'' conditional exit if no internal record data is available. == Settings == [[File:Retrieve-Internal-Record-50.PNG|350px|thumbnail|center|Scenario Builder Retrieve Internal Record scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object Type === ''Object Type'' is the type of internal record object to be retrieved. You can select one of the following objects from the drop-down menu: * Case * Contact * Company * Activity === Object ID === ''Object ID'' is the identifier of the internal record object to be retrieved. === Variable name for object JSON === ''Variable name for object JSON'' is the name of the variable that will be used as identifier for the internal record object to be retrieved. The variable name of object ID will be set only if the block succeeds. = RightNow Create Object= The RightNow Create Object scenario block creates a specified object in the RightNow database. Note that to populate the custom fields in RightNow activity history records the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:RightNow-Create-Object-Block.png|225px|Scenario Builder RightNow Create Object scenario block]] == Conditional Exits == The RightNow Create Object block may take the ''Failed'' conditional exit if the create operation has failed. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Object type === ''Object type'' is the type of RightNow object to be created. You can either select one of the standard objects from the drop-down menu, or you can enter the name of the desired custom object type. === Variable name of object ID === This is the name of the variable that will be used as identifier for the RightNow object to be created. The variable name of object ID will be set only if the block succeeds. === Set fields === This setting is reserved. === Raw JSON === The ''Raw JSON'' parameter is where object properties are specified in JSON format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:RightNow-Create-Object-Block-Settings.png|450px|thumbnail|center|Scenario Builder RightNow Create Object scenario block settings]] = RightNow Screen Pop= The RightNow Screen Pop scenario block specifies RightNow data to be displayed for the agent when the interaction is connected to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block. [[File:RightNow-Screen-Pop-Block.png|225px|Scenario Builder RightNow Screen Pop scenario block]] == Settings == === Title text === ''Title text'' is the name of the block instance. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Pop screen upon answer === By default, the screen pop occurs as soon as the interaction is delivered to the agent (i.e., during the alert phase); select this checkbox if you want the screen pop to occur when the agent accepts the interaction for handling. === pop object === Use this option when the scenario can precisely identify the object associated with the interaction using object ID. A RightNow page with the object properties will be displayed to the agent. === pop search results === Use the ''Search results'' option to run a predefined RightNow report for object selection. The results of the report will appear on the agent's screen. * '''Report ID''' - The identifier of the RightNow report to be run for object selection * '''Filters''' - Click ''add'' to define a filter for selecting records within this report. Multiple filters can be defined. ** '''Expression''' - The table name and field name from the RightNow report definition that will be used as a selection criterion (e.g., ''contacts.any_phone_raw'') ** '''Operator''' - The operator used for selection ** '''Value''' - The Value can be a single value, a list of values, or a value range. Values can be defined as scenario variables (e.g., ''$(ANI)''). === Cancel screen pop === The available interaction data cannot be used to identify any relevant RightNow records. Use the ''Cancel screen pop'' option to cancel screen pop of a specific RightNow page that may have been set by a previous use of this block in the same scenario. === Object Identifier === ''Object Identifier'' is the identifier of the RightNow object to be displayed. It must be specified if the ''Object'' option is selected, and it may be specified as an application variable in the form ''$(varname)''. === Object type === ''Object type'' is the type of the RightNow object to be displayed. [[File:RightNow-Screen-Pop-Block-Settings.png|450px|thumbnail|center|Scenario Builder RightNow Screen Pop scenario block settings]] = RightNow Search= The RightNow Search scenario block executes the specified RightNow record selection statement written in the RightNow Object Query Language (ROQL). [[File:RightNow-Search-Block.png|225px|Scenario Builder RightNow Search scenario block]] The columns of the first record of retrieved recordset are stored in variables ''<recordset_name>.<column_name>''. For that statement, the results will be stored in variables ''Recorset.id'' and ''Recordset.name''. The number of returned records is stored in variable ''<recordset_name>.__count__'' (e.g., ''RS.__count__.''). Note the double underscores in front and after count; they are used to reduce the chance of confusing the name of this variable with a column name in a recordset. To iterate through the recordset, use the [[#topic_scenario-builder-reference-guide/getnextrecord|Get Next Record]] block. == Conditional Exits == The RightNow Search block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the search operation failed. === No data === The ''No data'' conditional exit is executed if no data matching the specified search criteria is found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === ROQL Query === ''ROQL Query'' is the record selection statement in the RightNow Object Query Language. It may contain application variables specified as ''$(varname)''. === Recordset name === ''Recordset name'' is the name of the recordset that will be retrieved via this search operation. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'' respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:RightNow-Search-Block-Settings.png|450px|thumbnail|center|Scenario Builder RightNow Search scenario block settings]] = RightNow Select Account= Your contact center configuration may contain multiple RightNow [[#topic_contact-center-administrator-guide/integrationaccounts|integration accounts]] for access to different RightNow systems. Use the RightNow Select Account block to specify the integration account that will be used by subsequent RightNow blocks in the given scenario. If this block is not used, all RightNow blocks in the given scenario will use access data from the integration account marked as ''Default account''. [[File:RightNow-Select-Account-Block.png|225px|Scenario Builder RightNow Select Account scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Account === ''Account'' is the name of the RightNow integration account that will be used for access to RightNow data by subsequent RightNow blocks in the given scenario. [[File:RightNow-Select-Account-Block-Settings.png|650px|thumbnail|center|Scenario Builder RightNow Select Account scenario block settings]] = RightNow Update= The RightNow Update scenario block updates the properties of the specified RightNow object. Note that to populate the custom fields in RightNow activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:RightNow-Update-Object-Block.png|225px|Scenario Builder RightNow Object scenario block]] == Conditional Exits == The RightNow Update block may take one of the following conditional exits: Failed or No data. === Failed === The ''Failed'' conditional exit is executed if the update operation failed. === No data === The ''No data'' conditional exit is executed in the specified object is not found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Object Type === ''Object type'' is the type of RightNow object to be created. You can either select one of the standard objects from the drop-down menu or enter the name of the desired custom object type. === Object Identifier === ''Object Identifier'' is the identifier of the object to be updated. === Set fields === This setting is reserved. === Raw JSON === ''Raw JSON'' is where the object properties to be updated are specified in JSON format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'' respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to update an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:RightNow-Update-Object-Block-Settings.png|350px|thumbnail|center|Scenario Builder RightNow Object scenario block settings]] = Salesforce.com Delete= The Salesforce.com Delete scenario block is the part of [http://www.brightpattern.com/call-center-software/salesforce-integration/ Salesforce.com Integration with Bright Pattern Contact Center]. This block deletes the specified Salesforce.com (SFDC) object from the SFDC database. [[File:Salesforce-Delete-Block.png|225px|Scenario Builder Salesforce.com Delete scenario block]] == Conditional Exits == The Salesforce.com Delete block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the delete operation failed. === No Data === The ''No Data'' conditional exit is executed in the specified object is not found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object type name === ''Object type name'' is the type of the SFDC object to be deleted as defined in the SFDC application. It may be specified as an application variable in the ''$(varname)'' format. === Object ID === ''Object ID'' is the identifier of the SFDC object to be deleted as defined in the SFDC application. The Object ID may be specified as an application variable in the ''$(varname)'' format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to delete an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Salesforce-Delete-Block-Settings.png|450px|thumbnail|center|Scenario Builder Salesforce.com Delete scenario block settings]] = Salesforce.com Insert= The Salesforce.com Insert scenario block is the part of [http://www.brightpattern.com/call-center-software/salesforce-integration/ Salesforce.com Integration with Bright Pattern Contact Center] This block creates the specified Salesforce.com (SFDC) object in the SFDC database. Note that to populate the custom fields in SFDC activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:Salesforcecom-Insert-Block.png|225px|Scenario Builder Salesforce.com Insert scenario block]] == Conditional Exits == The Salesforce.com Insert block may take the ''Failed'' conditional exit if the insert operation fails. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object type name === This is the type of the SFDC object to be created as defined in the SFDC system. It may be specified as an application variable in the ''$(varname)'' format. === Variable name of object ID === This is the name of the variable that will be used as identifier for the SFDC object to be created. It will be set only if the block succeeds. === Object fields === ''Object fields'' are object properties. Click ''add'' and specify the property ''Name'' as defined in the SFDC system. Then specify the desired ''Value''. Repeat for the remaining object properties. Field values may be specified as application variables in the ''$(varname)'' format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Salesforcecom-Insert-Block-Settings.png|350px|thumbnail|center|Scenario Builder Salesforce.com Insert scenario block settings]] = Salesforce.com Screenpop= The Salesforce.com Screenpop scenario block is the part of [http://www.brightpattern.com/call-center-software/salesforce-integration/ Salesforce.com Integration with Bright Pattern Contact Center] This block specifies the Salesforce.com (SFDC) data to be displayed for the agent when the interaction is delivered to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block. [[File:Salesforcecom-Screenpop-Block.png|225px|Scenario Builder Saleforce.com Screenpop scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Screenpop action === ''Screenpop action'' refers to the type of data to be displayed. * The ''Show object'' option can be used when the scenario can identify the object associated with the interaction. An SFDC page with the object properties will be displayed to the agent. * The ''Show query results'' option can be used if such a record cannot be identified precisely, but the available interaction data can be used as search criteria for relevant records. An SFDC page with search results will be displayed. * The ''No screenpop'' option can be used to cancel screen pop of a specific SFDC page that may have been set by a previous use of this block in the same scenario. === Object ID === ''Object ID'' is the identifier of the SFDC object to be displayed. It must be specified if the ''Show object'' option is selected. It can be specified as an application variable in the ''$(varname)'' format. === Search terms === ''Search terms'' are the same as search criteria. They may be specified as application variables in the ''$(varname)'' format, and they must be specified if the ''Show query results'' option is selected. [[File:Salesforcecom-Screenpop-Block-Settings.png|800px|thumbnail|center|Scenario Builder Saleforce.com Screenpop scenario block settings]] = Salesforce.com Search= The Salesforce.com Search scenario block is the part of [http://www.brightpattern.com/call-center-software/salesforce-integration/ Salesforce.com Integration with Bright Pattern Contact Center]. [[File:Salesforcecom-Search.png|225px|Scenario Builder Saleforce.com Search scenario block]] This block executes the specified Salesforce.com (SFDC) record selection statement written in either the Salesforce Object Query Language (SOQL) or Salesforce Object Search Language (SOSL). Scenario variables can be used in this statement in the ''$(varname)'' from. Consider this example of an SOQL statement that uses the ''$(ANI)'' variable: ''SELECT id, name FROM Accounts WHERE phone = ‘$(ANI)’''. The columns of the first record of retrieved recordset are stored in variables ''<recordset_name>.<column_name>''. For that statement, the results will be stored in variables ''Recorset.id'' and ''Recordset.name''. The number of returned records is stored in variable ''<recordset_name>.__count__'' (e.g., ''RS.__count__''). (Note the double underscores in front and after count; they are used to reduce the chance of confusing the name of this variable with a column name in a recordset.) To iterate through the recordset, use [[#topic_scenario-builder-reference-guide/getnextrecord|Get Next Record]] block. == Conditional Exits == The Salesforce.com Search block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the search operation failed. === No Data === The ''No Data'' conditional exit is executed if no data matching the specified search criteria is found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Name the retrieved recordset === This is the name of the recordset that will be retrieved via this search operation. ''Name of the retrieved recordset'' is a mandatory field. === Query language === ''Query language'' is the language used for the data query. Possible language options include the Salesforce Object Query Language (SOQL) and Salesforce Object Search Language (SOSL). Unlike SOQL, which can only query one object at a time, a single SOSL query can be used to search multiple objects, which can both simplify and improve efficiency of searches, especially in large SFDC environments. For more information, see [http://www.salesforce.com/us/developer/docs/soql_sosl/index_Left.htm Salesforce docs]. === Statement === ''Statement'' refers to the record selection statement in the selected ''Query language''. It may contain application variables in the ''$(varname)'' format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Salesforcecom-Search-Settings.png|650px|thumbnail|center|Scenario Builder Saleforce.com Search scenario block settings]] = Salesforce.com Select Account= Your contact center configuration may contain multiple Salesforce [[#topic_contact-center-administrator-guide/integrationaccounts|integration accounts]] for access to different Salesforce systems. Use the Salesforce.com Select Account block to specify the integration account that will be used by subsequent Salesforce blocks in the given scenario. If this block is not used, all Salesforce blocks in the given scenario will use access data from the integration account marked as ''Default account''. [[File:Salesforce-Select-Account.png|225px|Salesforce.com Select Account scenario block]] == Settings == [[File:Salesforce-Select-Account-Settings.png|550px|thumbnail|center|Salesforce.com Select Account scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Account === ''Account'' is the name of the Salesforce integration account that will be used for access to Salesforce data by subsequent Salesforce blocks in the given scenario. = Salesforce.com Update= The Salesforce.com Update scenario block is the part of [http://www.brightpattern.com/call-center-software/salesforce-integration/ Salesforce.com Integration with Bright Pattern Contact Center]. This block updates properties of the specified Salesforce.com (SFDC) object. Note that to populate the custom fields in SFDC activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:Salesforcecom-Update-Block.png|225px|Scenario Builder Saleforce.com Update scenario block]] == Conditional Exits == The Salesforce.com Update block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the update operation failed. === No Data === The ''No Data'' conditional exit is executed if the specified object is not found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object type name === ''Object type name'' is the type of Salesforce.com (SFDC) object to be created as defined in the SFDC system. It may be specified as an application variable in the ''$(varname)'' format. === Object ID === ''Object ID'' is the identifier of the SFDC object to be updated. It may be specified as an application variable in the ''$(varname)'' format. === Fields to update === ''Fields to update'' are the object properties to be updated. Click '''add''' and specify the property '''Name''' as defined in the SFDC system. Then specify the desired new ''Value''. If necessary, repeat for the other object properties to be updated. Field values may be specified as application variables in the ''$(varname)'' format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to update an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Salesforcecom-Update-Block-Settings.png|450px|thumbnail|center|Scenario Builder Saleforce.com Update scenario block settings]] = Save Survey Response= Bright Pattern Contact Center provides post-interaction surveys to collect first-hand information from customers, which can help supervisors and teams assess agent performance and customer satisfaction. Surveys allow for up to five questions for customers to answer, with complete reporting on that data. The ''Save Survey Response'' scenario block saves the customer survey response data for a completed interaction for reporting purposes. [[File:Save-Survey-Response-Block.png|225px|Scenario Builder Save Survey Response scenario block]] The block assumes that the data received are responses to variations of the following survey questions: # Was your issue resolved on your first contact with us? # On a scale from one to nine, how would you rate your overall satisfaction with our service? # On a scale from one to nine, how likely are you to recommend our product to your friend/colleague? The Customer Survey [[#topic_contact-center-administrator-guide/scenariosoverview|scenario template]] provides an example of how to use the Save Survey Response block in an interactive voice response-based (IVR-based) survey. The collected survey data is saved in your contact center's historical reports in order to provide insights on Net Promoter Score (NPS), First Call Resolution (FCR), and more. The aggregated survey data are written in the following tables of the Reporting Database: [[#topic_reporting-database-specification/service_in_time_counters|service_in_time_counters]], [[#topic_reporting-database-specification/agent_performance|agent_performance]], and [[#topic_reporting-database-specification/surveys|surveys]]. Aggregated survey data appear in the following stock reports: * [[#topic_reporting-reference-guide/agentperformancereport|Agent Performance]] * [[#topic_reporting-reference-guide/intra-teambyservicereport|Intra-Team by Service]] * [[#topic_reporting-reference-guide/intra-teamperformancereport|Intra-Team Performance]] * [[#topic_reporting-reference-guide/teamoperationqualityreport|Team Operation Quality]] * [[#topic_reporting-reference-guide/teamperformancereport|Team Performance]] * [[#topic_reporting-reference-guide/servicemetricsreport|Service Metrics]] == Settings == [[File:Scenario-Builder-Save-Survey-Response-52.PNG|600px|thumbnail|center|Scenario Builder Save Survey Response scenario block settings]] === Issue was resolved === The ''Issue was resolved'' response is stored in the ''$(first_call)'' variable, as is required for reporting purposes. The allowed value is 0 or 1 (integer value only). === Contact satisfaction === The ''Contact satisfaction'' response is stored in the ''$(contact_satisfaction)'' variable, as is required for reporting purposes. The allowed range is from -2147483648 to 2147483647. === Net Promoter Score data === The ''Net Promoter Score data'' response is stored in the ''$(NPS_raw)'' variable, as is required for reporting purposes. The integer number range is from 0 to 10. === Conversation or recording text transcript === ''Conversation or recording text transcript'' is an additional field for storing custom survey information related to conversations or recorded text transcripts. For example, variables from the [[scenario-builder-reference-guide/Record#Name_of_the_variable_to_store_text_transcript_of_the_recording|Record]] block may be entered here (e.g., "$(transcript_survey)"). === Conversation or recording sentiment === ''Conversation or recording sentiment'' is an additional field for storing custom survey information related to conversations or recorded sentiments. For example, variables from the [[scenario-builder-reference-guide/Record#Name_of_the_variable_to_store_sentiment_of_recording|Record]] block may be entered here (e.g., "$(sentiment_survey)"). === Additional (custom) fields === ''Additional (custom) fields'' are any configured [[#topic_contact-center-administrator-guide/customsurveyfields|Custom Survey Fields]]; the maximum number of custom survey fields is nine. If no custom survey fields have been configured, this area of the block will be empty. [[File:Scenario-Builder-Save-Survey-Response-Custom-Survey-Fields-52.PNG|650px|thumb|center|Examples of custom survey fields]] = Search Directory= The Search Directory scenario block checks the phone numbers of the [[#topic_contact-center-administrator-guide/staticentries|configured static entries]] to see if any of them matches the specified number. If a match is found, the block updates the specified variable with the name of the static entry. This block can be used, for example, to substitute the caller ID number of an incoming call with the contact name, when the call is delivered to a user’s Agent Desktop. [[File:Search-Directory-Block.png|225px|Scenario Builder Search Directory scenario block]] === Conditional Exits === The Search Directory block may take the '''Not Found''' conditional exit if the supplied number does not match any directory entries. [[File:Search-Directory-Not-Found.png|300px|thumbnail|center|Scenario Builder Search Directory conditional exit]] == Settings == === Number to search === ''Number to search'' is the number to look up or the name of the variable that holds the number (e.g., ''$(item.from)''). === Variable to save name to === This parameter represents the name of the variable to update with the name of the matching static entry (e.g., ''$(item.fullName)''). [[File:Search-Directory-Block-Settings.png|450px|thumbnail|center|Scenario Builder Search Directory scenario block settings]] = Self-Service Provided= The Self-Service Provided scenario block tells reporting that a self-service function was used by the caller during the call. Placing this block in the scenario marks the interaction as successfully served by the interactive voice response (IVR) portion of the voice scenario or automated forms of the chat scenario. The Self-Service indicator is stored in the call detailed records and can be used in reports to distinguish the calls successfully that were served by an IVR from the calls that were simply abandoned by callers at that stage of processing. [[File:Self-Service-Provided-Block.png|450px|thumbnail|center|Scenario Builder Self-Service Provided scenario block]] = Send Message+ = The Send Message+ scenario block is used to send messages to customers. Note that the types of messages you can send changes depending on whether you are creating a voice or chat scenario. [[File:Send-Message-Plus-53.PNG|225px|Scenario Builder Send Message+ scenario block]] == Chat Scenarios == === Conditional Exit === The Send Message+ block for chat scenarios may take the following conditional exit. ==== Timeout ==== The Send Message+ block in chat scenarios may take the ''Timeout'' conditional exit. A Timeout occurs when the amount of time configured in [[#Timeout_after,_sec|Timeout after, sec]] has been exceeded due to no input text being received. Note that if not specified, the default timeout value is 600 seconds. [[File:Send-Message-Plus-Chat-53.PNG|300px|thumbnail|center|Send Message+ conditional exit for chat]] === Settings === ==== Media type ==== When used in a chat scenario, the Send Message+ block can be used to send either a chat or an SMS message. For the ''Media type'' setting, select either CHAT or SMS. If the media type is set to SMS, the service on behalf of which the text messages are sent must have the "Outbound chat accounts" property specified. If you want to be able to receive and process possible replies to this message, an SMS/MMS access number should be configured in your ''Messaging/Chat'' scenario entry for the given chat scenario. ==== Message ==== ''Message'' is the text of the message to be sent to the customer. Variables in the ''$(varname)'' format can be used in the message text. ==== Send to this number ==== If sending an SMS message, specify the number to which the text message will be sent. Variables in the ''$(varname)'' format can be used. [[File:Send-Message-Plus-Chat-Settings-1-53.PNG|650px|thumbnail|center|Send Message+ settings for chat]] == Voice Scenarios == In order to be able to send SMS, the access number associated with the given scenario entry point must have the SMS capability. If you want to be able to receive and process possible replies to the messages sent via this scenario, you need to: * Configure a chat service to receive such SMS replies. * Add the number that you use to send the messages via this scenario as an SMS/MMS access number for the Messaging/Chat entry that you will configure for the given chat service. === Conditional Exit === The Send Message+ block for voice scenarios may take the following conditional exit. ==== Send error ==== The ''Send error'' conditional exit if the attempt to send a text message returned an error. [[File:Send-Message-Plus-Voice-Conditional-Exit-53.PNG|300px|thumbnail|center|Send Message+ conditional exits for voice]] === Settings === The Send Message+ block for voice scenarios sends text messages (i.e., SMS) only. ==== Message ==== ''Message'' is the text of the SMS to be sent to the customer. Variables in the ''$(varname)'' format can be used in the message text. ==== Send to this number ==== When sending an SMS message, specify the number to which the text message will be sent. Variables in the ''$(varname)'' format can be used. [[File:Send-Message-Plus-Voice-Settings-1-53.PNG|650px|thumbnail|center|Send Message+ settings for voice]] = ServiceNow Create Object= The ServiceNow Create Object scenario block creates a specified object in the ServiceNow database. Note that to populate the custom fields in ServiceNow activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:ServiceNow-Create-Object-316.png|225px|Scenario Builder ServiceNow Create Object scenario block]] == Conditional Exits == The ServiceNow Create Object block may take the ''Failed'' conditional exit if the create operation has failed. == Settings == [[File:ServiceNow-Create-Object-2.png|450px|thumbnail|center|ServiceNow Create Object block properties]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Object type === ''Object type'' is the type of ServiceNow object to be created. You can either select one of the standard objects from the drop-down menu, or you can enter the name of the desired custom object type. === Variable name of object ID === This is the name of the variable that will be used as identifier for the ServiceNow object to be created. The variable name of object ID will be set only if the block succeeds. === Set fields === This setting is reserved. === Raw JSON === Clicking ''Raw JSON'' enables object properties to be specified in JSON format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. = ServiceNow Screen Pop= The ServiceNow Screen Pop scenario block specifies ServiceNow data to be displayed for the agent when the interaction is connected to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block. [[File:ServiceNow-ScreenPop-316.png|225px|Scenario Builder RightNow Screen Pop scenario block]] == Settings == [[File:ServiceNow-Screen-Pop.png|450px|thumbnail|center|Scenario Builder RightNow Screen Pop scenario block settings]] === Title text === ''Title text'' is the name of the block instance. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Pop screen upon answer === By default, the screen pop occurs as soon as the interaction is delivered to the agent (i.e., during the alert phase); select this checkbox if you want the screen pop to occur when the agent accepts the interaction for handling. === pop object === Use this option when the scenario can precisely identify the object associated with the interaction using object ID. A ServiceNow page with the object properties will be displayed to the agent. === pop search results === Use this option to run a predefined ServiceNow report for object selection. The results of the report will appear on the agent's screen. Report ID is the identifier of the ServiceNow report to be run for object selection. === cancel screen pop === The available interaction data cannot be used to identify any relevant ServiceNow records. Use the ''cancel screen pop'' option to cancel screen pop of a specific ServiceNow page that may have been set by a previous use of this block in the same scenario. === Object Identifier === ''Object Identifier'' is the identifier of the ServiceNow object to be displayed. It must be specified if the ''Object'' option is selected, and it may be specified as an application variable in the form ''$(varname)''. === Object type === ''Object type'' is the type of the ServiceNow object to be displayed. = ServiceNow Search= The ServiceNow Search scenario block is used to obtain ServiceNow data. The block executes the specified ServiceNow record selection statement written in the ServiceNow Encoded Query String. [[File:ServiceNow-Search-316.png|225px|Scenario Builder RightNow Search scenario block]] The columns of the first record of the retrieved recordset are stored in variables ''<recordset_name>.<column_name>''. For that statement, the results will be stored in variables ''Recordset.id'' and ''Recordset.name''. The number of returned records is stored in variable ''<recordset_name>.__count__'' (e.g., ''RS.__count__.''). Note the double underscores in front and after count; they are used to reduce the chance of confusing the name of this variable with a column name in a recordset. To iterate through the recordset, use the [[#topic_scenario-builder-reference-guide/getnextrecord|Get Next Record]] block. == Conditional Exits == The ServiceNow Search block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the search operation failed. === No data === The ''No data'' conditional exit is executed if no data matching the specified search criteria is found. == Settings == [[File:ServiceNow-Search-2.png|450px|thumbnail|center|Scenario Builder ServiceNow Search scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object type === ''Object type'' is the type of object (e.g., “problem” or “incident”). It is selected from the drop-down menu or entered manually as a custom object. ===Query=== ''Query'' is the record selection statement. It may contain application variables specified as ''$(varname)''. === Recordset name === ''Recordset name'' is the name of the recordset that will be retrieved via this search operation. The recordset name is the same as the value that you entered for ''Variable name of object ID'' in the ServiceNow Create Object block. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'' respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. = ServiceNow Select Account= Your contact center configuration may contain multiple ServiceNow [[#topic_contact-center-administrator-guide/integrationaccounts|integration accounts]] for access to different ServiceNow systems. Use the ServiceNow Select Account block to specify the integration account that will be used by subsequent ServiceNow blocks in the given scenario. If this block is not used, all ServiceNow blocks in the given scenario will use access data from the integration account marked as ''Default account''. [[File:ServiceNow-Select-Account-316.png|225px|Scenario Builder RightNow Select Account scenario block]] == Settings == [[File:ServiceNow-Select-Account.png|650px|thumbnail|center|Scenario Builder ServiceNow Select Account scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Account === ''Account'' is the name of the ServiceNow integration account that will be used for access to ServiceNow data by subsequent ServiceNow blocks in the given scenario. = ServiceNow Update Object= The ServiceNow Update Object scenario block updates the properties of the specified ServiceNow object. Note that to populate the custom fields in ServiceNow activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:ServiceNow-Update-Object-316.png|225px|Scenario Builder ServiceNow Object scenario block]] == Conditional Exits == The ServiceNow Update Object block may take one of the following conditional exits: Failed or No data. === Failed === The ''Failed'' conditional exit is executed if the update operation failed. === No data === The ''No data'' conditional exit is executed in the specified object is not found. == Settings == [[File:ServiceNow-Update-Object-2.png|450px|thumbnail|center|Scenario Builder ServiceNow Object scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Object Type === ''Object type'' is the type of ServiceNow object to be created. You can either select one of the standard objects from the drop-down menu or enter the name of the desired custom object type. === Object Identifier === ''Object Identifier'' is the identifier of the object to be updated. === Set fields === This setting is reserved. === Raw JSON === ''Raw JSON'' enables object properties to be specified in JSON format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'' respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed attempt to update an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. = Set Agent State= The Set Agent State allows you to set an agent's state. [[File:Set-Agent-State-Block.png|225px|Scenario Builder Set Agent State scenario block]] == Conditional Exits == The Set Agent State block may take the ''Authentication Failed'' conditional exit if the supplied extension number and PIN combination does not match credentials of any configured user. [[File:Set-Agent-State-Conditional-Exit.png|300px|thumbnail|center|Scenario Builder Set Agent State conditional exit]] == Settings == === Agent’s digital ID (extension) === ''Agent’s digital ID'' is the agent’s extension number or the name of the variable that holds the extension number (e.g., ''$(varPhone)''). === Over the phone agent PIN === ''Over the phone agent PIN'' is the agent’s PIN or the name of the variable that holds the agent’s PIN (e.g., ''$(varPIN)''). === New state === This is the desired new state to set the agent to. [[File:Set-Agent-State-Settings-New-54.PNG|650px|thumbnail|center|Scenario Builder Set Agent State scenario block settings]] = Set Case = The ''Set Case'' block associates a case with the current interaction. When the interaction is delivered to the agent, the Case tab will be automatically displayed on [[#topic_agent-guide/understandingscreen-pop|screen-pop]] forms. [[File:Set-Case-522.PNG|225px|Set Case scenario block]] == Conditional Exits == There are no conditional exits. == Settings == === Title text === ''Title Text'' is the name of the instance of the block. Enter a name in the text field and the new name of the block will appear in the flowchart. === Case ID === This is the record ID for the case to be associated with the interaction. === Replace === When enabled, this checkbox indicates if a new case should be added to the list of cases on the interaction or replace any existing cases on the interaction. [[File:Set-Case-Settings-522.PNG|650px|thumb|center|Set Case block settings]] = Set Custom Reporting Field= The Set Custom Reporting Field scenario block can be used to define custom reporting fields in a scenario. Note it is possible to set custom reporting fields directly from Agent Desktop if the JavaScript API method [[#topic_desktop-javascript-api-specification/setreportingcustomfield|setReportingCustomField]] is enabled. [[File:Set-Custom-Reporting-Field-Block-50.PNG|225px|Set Custom Reporting Field scenario block]] == Settings == [[File:Set-Custom-Reporting-Field-50.PNG|650px|thumbnail|center|Set Custom Reporting Field scenario block settings]] === Field === ''Field'' is the name of the custom reporting field to be used in the scenario. === Value === ''Value'' is the scenario variable that will be copied into the custom reporting field. = Set Disposition= The Set Disposition scenario block allows scenarios to specify a [[#topic_contact-center-administrator-guide/dispositionstab|disposition]] for the interaction. [[File:Set-Disposition-Block.png|225px|Scenario Builder Set Disposition scenario block]] == Settings == '''Set Disposition''' ''Set Disposition'' is the disposition name or the associated numeric code. If the disposition with the specified name or numeric code cannot be found, the interaction disposition will be set to ''Disposition Not Found''. [[File:Set-Disposition-Block-Settings.png|750px|thumbnail|center|Scenario Builder Set Disposition scenario block settings]] = Set Priority= [[File:Set-Priority-Block.png|225px|Scenario Builder Set Priority scenario block]] The Set Priority scenario block specifies the priority of the given interaction relative to other interactions competing for the same resources. Priority set by this block supersedes the priority that may be preconfigured at the [[#topic_contact-center-administrator-guide/dial-in|scenario entry]] level. == Why Set Priority? == Setting priority can help certain calls move through the service queue faster. The following examples illustrate some common reasons to prioritize calls. ::'''Example 1:''' Calls from platinum-level customers may be given a higher priority relative to other calls requesting the same service to minimize the wait time for high-value interactions. ::'''Example 2:''' Calls internally transferred to a service may be given a higher priority relative to the directly arriving calls to minimize the wait time for customers who have previously waited in a queue. ::'''Example 3:''' Some of your agents are qualified to provide both sales and customer service. You can assign a higher priority to sales calls. This priority will be taken into account every time an agent that possess both sales and customer service skills becomes available. Note that if your agents are qualified to provide different services, priority can be used to prioritize calls depending on the service that is requested. === How is Priority Calculated? === Priority is calculated on a per-interaction basis by multiplying the current time spent in queue by the priority number (i.e., each interaction receives its own priority number). The higher the priority number, the faster the interaction moves in the queue. For more information, see [[#Priority_Values|Priority Values]]. == Settings== The Set Priority block has just one setting, ''Priority'', which is where you enter the value of the priority relative to other interactions in queue. [[File:Set-Priority-Block-Settings.png|450px|thumbnail|center|Scenario Builder Set Priority scenario block settings]] === Priority Values === Priority can affect a call in the following ways: * It helps a call move through the service queue faster. * It decreases the estimated waiting time (EWT) for a call. * It is used in EWT prompts and in the Virtual Queue option to deliver callbacks. The possible value range for priority is from 0.01 to 100. The recommend value range is from 0.1 to 10. Note that '''the maximum recommended priority value is 10'''. If priority is set too high, then the system can wait for the next available agent and will not offer virtual queue callbacks. The instantaneous priority of an interaction is calculated as a function of its set priority and the time that the interaction has spent in the service queue. Priority is specified in numeric values: * '''0.5''': Specify 0.5 to make the interaction move through the queue at half the speed of interactions with priority 1. * '''1''': The default interaction priority is 1. * '''2''': Specify 2 to double the speed with which the given interaction will move through the queue relative to interactions with priority 1. = Set Prompt Language= The Set Prompt Language scenario block determines the language in which the blocks following this block will play their prompts. This block is typically used in the conditional exits of the [[#topic_scenario-builder-reference-guide/menu|Menu]] block that offers a choice of languages to the caller. This block can also be used to determine the language in which the [[#topic_scenario-builder-reference-guide/record|Record]] block will record shared voice segments. [[File:Set-Prompt-Language-Block.png|225px|Scenario Builder Set Prompt Language scenario block]] Note that each application you develop has built-in multilingual prompt management. You can add or remove languages using the Prompt Manager. Each prompt has versions for all languages defined in the system. By default, English is always defined. The block has a drop-down list containing all languages defined for your scenario. You can enable additional languages for the scenario in the ''Prompt List'' dialog box. To configure the block, select the language in the drop-down list. The label of the Set Prompt Language block changes in the flowchart will display ''Set Prompt Language “[language]”.'' Once the Set Prompt Language block sets the language, each subsequent block will play (or record) prompts in that language until another Set Prompt Language block changes the language. [[File:Set-Prompt-Language.png|800px|thumbnail|center|Setting the Prompt language]] = Set Variable= This block sets a value for a scenario variable. Note it is possible to push variables directly to scenarios and [[#topic_contact-center-administrator-guide/workflowentries|workflows]] if the JavaScript API method [[#topic_desktop-javascript-api-specification/postvariable|postVariable]] is enabled. [[File:Set-Variable-Block.png|225px|Set Variable block]] == Settings == === Variable name === This is the name of the variable. The ''Variable name'' can be set to be anything you like. === Value === The ''Value'' is the desired variable value. In the example image shown, the value is $(targetDisconnectedCause), which is being used as a conditional exit in the scenario. [[#topic_scenario-builder-reference-guide/variables|Variables]] in the ''$(varname)'' format can be used as values. Values can be specified as either expressions or literal [scenario-builder-reference-guide/StringExpressions|strings]]. Literal strings are passed exactly as entered. [[#topic_scenario-builder-reference-guide/integerexpressions|Expressions]] must begin with assignment sign ''='' as the first character. For example, ''2+2'' will produce ''2+2'', whereas ''=2+2'' will produce ''4''. The expression result produces one of the following data types: [[#topic_scenario-builder-reference-guide/stringexpressions|strings]], [[#topic_scenario-builder-reference-guide/integerexpressions|integers]], and [[#topic_scenario-builder-reference-guide/floatingpointexpressions|floating point numbers]]. [[File:Editing-Set-Variable-Settings.png|650px|center|Editing the Set Variable settings]] = Start Another Scenario= The Start Another Scenario block starts the specified scenario from within the given (parent) scenario. Variables defined in the parent scenario carry over to the sub scenario. After the sub scenario finishes executing, control returns to the parent scenario (except when terminated by error or disconnect). The parent scenario will resume by executing the next block in the flowchart. [[File:Start-Another-Scenario.png|225px|Scenario Builder Start Another Scenario block]] To configure the block, select the desired sub scenario in the drop-down list. The label of the block in the flowchart will display ''Start Another Scenario “[scenario name]”.'' In the scenario shown, you can see that the Start Another Scenario block is used if the call is disconnected. [[File:Start-Another-Scenario-Settings.png|800px|thumbnail|center|Scenario Builder Start Another Scenario block settings]] = Stop Prompt= The Stop Prompt scenario block stops the playback of a continuous prompt if such playback was previously enabled by executing the [[#topic_scenario-builder-reference-guide/playprompt|Play Prompt]] block with option ''Exit immediately and continue playing prompt in background''. [[File:Stop-Prompt.png|225px|Scenario Builder Stop Prompt scenario block]] = Voicemail= The Voicemail scenario block records a voicemail message of a specified maximum duration, stores it in the system (optionally encrypted), and sends an email notification to the message recipient. Depending on the settings, the email may either contain an access link or the message itself attached as an audio file. If the email contains the link, the recipient may have to log into the system before the message can be played back to the recipient. For more information, see the Bright Pattern Contact Center ''Agent Guide'', section [[#topic_agent-guide/listeningtovoicemailmessages|Listening to Voicemail Messages]]. [[File:Voicemail-Block.png|225px|Scenario Builder Voicemail scenario block]] '''Note:''' The system provides a [[#topic_contact-center-administrator-guide/voicemail|built-in (default) voicemail function]]. Use the Voicemail block only if you need voicemail capabilities that the generic built-in voicemail function does not support (e.g., different content of the email notification depending on the type of call). Voicemail messages are stored in the system for the same period of time as call recordings. == Conditional Exits == The Voicemail block will take the ''Failed'' conditional exit if a block error occurs. == Settings == [[File:Voicemail-Settings.png|800px|thumbnail|center|Scenario Builder Voicemail scenario block settings]] === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Maximum duration === This setting specifies the maximum length of the voicemail message, in seconds. If this time is exceeded, recording will be stopped and the recorded portion of the message will be stored. If not specified, the recording will stop when either the person leaving the message presses a DTMF key, hangs up, or presses the pound (#) key; or when the default duration of 30 seconds is exceeded. === Recording encoding === ''Recording encoding'' is the encoding method. Select '''G.711''' (default) for the best quality or '''GSM6.10''' for a smaller file. The latter may be essential if you intend to send voicemail recordings as email attachments. === Beep at start of recording === If this setting is selected, the Voicemail block will provide a tone (i.e., beep) indicating the beginning of the recording. === Encrypt recording === If this setting is selected, the recording will be stored encrypted. === Send URL to email === This is the email address of the voice message recipient. A scenario variable can be specified as the value using the ''$(varname)'' format. === From display name === This is the display name of the email sender. A scenario variable can be specified as the value using the ''$(varname)'' format. === From email address === This is the email address of the email sender. A scenario variable can be specified as the value using the ''$(varname)'' format. === Subject === ''Subject'' is the subject line of the email. Can contain scenario variables in the $(varname) format. === Body === ''Body'' is the text to be sent as a message body. If the email notification contains an access link (as opposed to an audio file attachment), the link should consist of your Agent Desktop URL and variable ''$(URL_SUFIX)'' (e.g., ''http://abc-insurance.my-service-provider.com/$(URL_SUFIX)''). === Allow any user to listen === If this setting is selected, any user registered in the system will be able to listen to the voice message upon clicking the URL and logging in. Use this option if message recipients may need to forward some of their voicemail to other users. === Allow only this user === Only the specified user will be able to listen to this message upon clicking the URL and logging in. === Attach voice recording file to email === If this setting is selected, a copy of the voice message will be attached to the email as an audio (''.WAV'') file. The attachment will be unencrypted even if the ''Encrypt recording'' option is selected. = Wait= The Wait scenario block will pause scenario execution for a specified number of seconds. [[File:Wait-Scenario-Block.png|225px|Scenario Builder Wait scenario block]] == Settings == The ''Wait duration'' setting is where you specify the number of seconds for which any scenario execution should be paused. Decimal fractions are allowed. In the scenario shown, the wait duration is set for 2 seconds, which gives the system 2 seconds to wait before answering the call. '''Note''': Regarding the use of decimals, there is a known issue that rounds the wait time up to the next second. It will be addressed in a future release. [[File:Wait-Block.png|800px|thumbnail|center|Scenario Builder Wait scenario block]] = Web Screen Pop= This block specifies what to display for the agent when the interaction is connected to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] or [[#topic_scenario-builder-reference-guide/connectchat|Connect Chat]] block. [[File:Web-Screen-Pop-in-Scenario.png|450px|center|Web Screen Pop block used in scenario]] Note that services may also have [[#topic_contact-center-administrator-guide/activityforms|activity forms]] associated with them. If an interaction is associated with a service that has a configured activity form, both the activity form and the content specified in this block will appear in the [[#topic_agent-guide/understandingscreen-pop|tabs of the Agent Desktop]]. To specify which content shall appear in the active tab, use option '''Display activity form before/after web screen pop(s)''' of the [[#topic_contact-center-administrator-guide/activitytab|Activity tab]] of the given service. Note also that by default, specified screen pop content will be displayed in the [[#topic_agent-guide/userinterfaceoverview|Context Information Area]] of the Agent Desktop. This area is not shown when Agent Desktop is run minimized using the [[#topic_agent-guide/understandingscreen-pop|Pop-out function]]. Thus, when using web screen pop, consider one of the following options: * Open screen pop in a separate window/tab (see setting '''Open in popup window''') * Disabling agents' [[#topic_contact-center-administrator-guide/privileges|privilege]] '''Force pop-out phone window''' For an example of how to use the Web Screen Pop block in a scenario, see [[#topic_scenario-builder-reference-guide/howtocreatechatscenariothatpopscaseorcontactinformation|How to Create a Chat Scenario That Pops Case or Contact Information]]. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Label === The ''Label'' field is where you may enter a separate, customer-facing name for the URL. === Open in popup window === This indicates whether screen pop should appear in the [[#topic_agent-guide/userinterfaceoverview|Context Information Area]] of the Agent Desktop application (default) or in a separate window. === Keep open when interaction is finished === When selected, this option keeps open the pop-out browser tab when the interaction is finished. Note that this option is not available for selection unless ''Open in popup window'' is selected. === Pop screen upon answer === By default, the screen pop occurs as soon as the interaction is delivered to the agent (i.e., during the alert phase); select this checkbox if you want the screen pop to occur when the agent accepts the interaction for handling. === Screenpop action === ''Screenpop action'' indicates whether the pop-up will open a web page (default) or display text. === URL of the page to open === This specifies the URL of the web page that should be opened if the ''Open web page'' screen pop action is selected. A query string can be added to supply variables for the screen pop page (e.g., ''http://www.localhost.com/Webform2.aspx?accountnumber=$(custNum)'') === Text to display === This specifies the text to be displayed if the '''Display text''' screen pop action is selected. === Additional URLs === This can be used to specify URLs of optional additional web pages to be opened if the '''Open web page''' screen pop action is selected. [[File:Webscreen-Pop-block-3-17-1.PNG|550px|center|Web Screen Pop scenario block settings]] = Zendesk API Request = [[File:Zendesk-API-Request-Scenario-Block-5312.PNG|225px|Zendesk API Request scenario block]] The Zendesk API Request scenario block allows you to make a free-form Zendesk API request to Zendesk using JSON, making it possible to take a variety of actions with your integrated account. The block uses your preconfigured [[#topic_contact-center-administrator-guide/callcenterconfiguration/integrationaccounts/zendesk|Zendesk integration account]] for authorization and so forth. Note that the HTTP method is configurable and the returned results are processed the same way as they are with the [[#topic_scenario-builder-reference-guide/scenarioblocks/fetchurl|Fetch URL]] scenario block. [[File:Zendesk-API-Request4-5399.PNG|650px|thumb|center|Zendesk API Request scenario block settings example]] == Settings == === Title text === The name of the instance of the block. === Request type === The type of method to be used to retrieve content from the specified Zendesk URL. Select from the following request types, or write in another method manually: * GET (default) * POST * PUT * PATCH * DELETE === URL === In this field, set '''requests.json''' in order to create an entity in Zendesk. When this scenario block executes, it constructs a request to the Zendesk API. The block takes the integration account configuration URL '''https://.zendesk.com''' and appends '''/api/v2/''' and '''requests.json''' to it. === Extra Headers === ''Extra headers'' are the HTTP headers to add to the request (e.g., for authentication purposes). Headers are specified in name-value pairs, where name is the header name (e.g., "Authorization"), and value is the header value (e.g., "Bearer D18273561286FE9"). The value of the header can contain variables, and variables will be substituted with their value when the block is executed. By default, the list of extra headers is empty. For an example of using extra headers to make API requests on behalf of any end user, see the ''Zendesk Integration Guide'', section Zendesk Scenario Examples. To define a header, click '''add''', type in the name, and type in the value. === Set fields === This setting is reserved. === Raw JSON === Where object properties are specified in JSON format. '''Note''': The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain the content of responses indicating a failed attempt to create an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. === Initial path in the result JSON === If the response body contains JSON, this setting can be used to save into scenario variables a specific part of the data. Example: ''myobject.node.list[4]''. The default is "none"; the path starts from the root of the returned JSON. === Scenario variable prefix for JSON data === This string will be used as the name of the variable to receive parsed JSON data. Note that if the initial path above points to an array, depending on the value of the following ''GetNext'' option, this variable would either contain the array or its first (and subsequent) elements. === Use GetNext block to loop through data === This box is selected if the JSON response data (at the initial path) is an array. The scenario variable will be set to the first element of the array and GetNext block could be used to iterate over the array elements, setting scenario variable to the next element. == Conditional Exits == === Failed === The ''Failed'' conditional exit is taken if an error occurred during the API method execution. === No Data === The ''No Data'' conditional exit is executed if no data is returned in the body of the HTTP response. = Zendesk Create Object= The Zendesk Create Object scenario block creates a specified object in the Zendesk database. Objects that can be created are tickets and users. For more information, see the following articles on [https://developer.zendesk.com/rest_api/docs/core/tickets#creating-tickets creating tickets] and [https://developer.zendesk.com/rest_api/docs/core/users#create-user creating users]. Note that to populate the custom fields in Zendesk activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:Zendesk-Create-Object-Block.png|225px|Scenario Builder Zendesk Create Object scenario block]] == Conditional Exits == The Zendesk Create Object block will take the '''Failed''' conditional exit if the create operation has failed. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Object type === ''Object type'' is the type of the Zendesk object to be created. An object can be either a ticket or a user. === Variable name of object ID === This is the name of the variable that will be used as an identifier for the Zendesk object to be created. The variable name of object ID will be set only if the Zendesk Create Object block succeeds. === Set fields === This setting is reserved. === Raw JSON === ''Raw JSON'' is where object properties are specified in JSON format. The code and the body of the received HTTP response will be stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain the content of responses indicating a failed attempt to create an object. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Zendesk-Create-Object-53.PNG|650px|thumbnail|center|Scenario Builder Zendesk Create Object scenario block settings]] = Zendesk Screen Pop= The Zendesk Screen Pop scenario block specifies Zendesk data to be displayed for the agent when the interaction is connected to this agent through the [[#topic_scenario-builder-reference-guide/connectcall|Connect Call]] block or [[#topic_scenario-builder-reference-guide/connectchat|Connect Chat]] block. Note that this scenario block may be preceded by the [[#topic_scenario-builder-reference-guide/zendesksearch|Zendesk Search]] block in order to pop returning customer information. [[File:Zendesk-Screen-Pop-Block.png|225px]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Pop screen upon answer === By default, the screen pop occurs as soon as the interaction is delivered to the agent (i.e., during the alert phase); select this checkbox if you want the screen pop to occur when the agent accepts the interaction for handling. === Object === Use this option when the scenario can precisely identify the object associated with the interaction. A Zendesk page with the object properties will be displayed to the agent. === Object ID === ''Object ID'' is the identifier of the Zendesk object to be displayed. It must be specified if the '''Object''' option is selected. It may be specified as an application variable in the ''$(varname)'' format. === Object type === This is the type of the Zendesk object to be displayed. It can be either a ticket or a user. === Nothing === The available interaction data cannot be used to identify any relevant Zendesk records. Use the ''Nothing'' option to cancel screen pop of a specific Zendesk page that may have been set by a previous use of this block in the same scenario. [[File:Zendesk-Screen-Pop-Settings.png|350px|center|Zendesk Screen Pop scenario block settings]] = Web Screen Pop Block with Zendesk Integration = The scenario engine enables both web screen pop and CRM screen pop (i.e., Zendesk Screen Pop) by using subsequent blocks in a scenario. The scenario engine controls such screen pop configuration and sends information about all enabled screen pops to the Agent Desktop application. '''Step 1: Place screen pop blocks on your scenario.''' * In the Bright Pattern Contact Center Scenario Builder, drag a '''Web Screen Pop''' scenario block onto the scenario. * Drag a '''Zendesk Screen Pop''' scenario block onto the scenario, beneath the '''Web Screen Pop''' block. [[File:Web-CRM-Screen-Pop-Blocks.png|450px|center|Web screen pop and Zendesk screen pop blocks placed together in scenario]] '''Step 2: Configure settings for each screen pop block.''' In order for screen pop to work, you must specify the settings for each block. '''[[#topic_scenario-builder-reference-guide/webscreenpop|Web Screen Pop]]''' settings include '''Title text''', '''Screenpop action''', the '''URL of the page to open''', and '''Additional URLs''' (if any). Checking the boxes determines whether screen pops open in a pop-up window and if screen pop is enabled when an interaction is answered. [[File:Web-Screen-Pop-Settings.png|550px|center|Configure settings for Web screen pop]] Agents accepting interactions in the Agent Desktop application should now receive any enabled screen pops on the desktop interface. For more information on screen pop, refer to the ''[[#topic_agent-guide/understandingscreen-pop|Agent Guide]]''. = Zendesk Search= The Zendesk Search scenario block utilizes an API to execute a search request within your Zendesk account. The search request is entered in the [[#Searchstring|Search string]] field (i.e., in ''$(varname)'' format) and returns the search results to the [[#Recordsetname|recordset name]] field. For more information regarding specific information you can search for, refer to Zendesk's [https://developer.zendesk.com/rest_api/docs/core/search Search API] and [https://support.zendesk.com/hc/en-us/articles/203663226 Zendesk Support search reference] articles. [[File:Zendesk-Search-Scenario-Block.png|225px|Scenario Builder Zendesk Search scenario block]] The columns of the first record of the retrieved recordset are stored in the variables ''<recordset_name>.<column_name>''. For that statement, the results will be stored in the variables ''Recorset.id'' and ''Recordset.name''. The number of returned records is stored in the variable ''<recordset_name>.__count__'' (e.g., ''RS.__count__''). (Note the double underscores in front and after count; they are used to reduce the chance of confusing the name of this variable with a column name in a recordset.) To iterate through the recordset, use the [[#topic_scenario-builder-reference-guide/getnextrecord|Get Next Record]] block. == Conditional Exits == The Zendesk Search block may take one of the following conditional exits: Failed or No Data. === Failed === The Zendesk Search block will execute the Failed conditional exit if the search operation failed. === No Data === The No Data conditional exit is executed if no data matching the specified search criteria is found. [[File:Zendesk-Search-Scenario-Exits.png|300px|thumbnail|center|Scenario Builder Zendesk Search conditional exits]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the Update button at the bottom of the Edit pane. The new name of the block appears in the flowchart. === Recordset name === ''Recordset'' is the name of the recordset that will be retrieved via this search operation. Note that the recordset name may be used as a variable (i.e., in ''$(varname)'' format) in the [[#topic_scenario-builder-reference-guide/zendeskscreenpop|Zendesk Screen Pop]] block to pop returning customer information. === Max results === ''Max results'' is the maximum number of records in the recordset. === Search string === ''Search string'' is the record selection statement, and it may contain application variables specified in the ''$(varname)'' format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Zendesk-Search-Settings.png|450px|thumbnail|center|Scenario Builder Zendesk Search scenario block settings]] = Zendesk Select Account= Your contact center configuration may contain multiple Zendesk [[#topic_contact-center-administrator-guide/integrationaccounts|integration accounts]] for access to different Zendesk systems. Use the Zendesk Select Account scenario block to specify the integration account that will be used by subsequent Zendesk blocks in the given scenario. If this block is not used, all Zendesk blocks in the given scenario will use access data from the integration account marked as ''Default account''. [[File:Zendesk-Select-Account-Block.png|225px|Scenario Builder Zendesk Select Account scenario block]] == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Account === ''Account'' is the name of the [http://www.brightpattern.com/zendesk-integrations/ Zendesk integration] account through which Zendesk data will be accessed by subsequent Zendesk blocks in the given scenario. [[File:Zendesk-Select-Account-Block-Settings.png|450px|thumbnail|center|Scenario Builder Zendesk Select Account scenario block settings]] = Zendesk Update Object = The Zendesk Update Object scenario block updates the properties of the specified Zendesk object. Objects that can be updated are tickets and users. (For more information, refer to Zendesk's articles on [https://developer.zendesk.com/rest_api/docs/core/tickets#updating-tickets updating tickets] and [https://developer.zendesk.com/rest_api/docs/core/users#update-user updating users].) Note that to populate the custom fields in Zendesk activity history records, the [[#topic_scenario-builder-reference-guide/attacheddata|Attached Data]] block must be used. [[File:Zendesk-Update-Object.png|225px|Scenario Builder Zendesk Update Object scenario block]] == Conditional Exits == The Zendesk Update Object block may take one of the following conditional exits: Failed or No Data. === Failed === The ''Failed'' conditional exit is executed if the update operation failed. === No Data === The ''No Data'' conditional exit is executed if the specified object is not found. == Settings == === Title text === ''Title text'' is the name of the instance of the block. Enter a name in the text field and click the '''Update''' button at the bottom of the ''Edit'' pane. The new name of the block appears in the flowchart. === Object type === ''Object type'' is the type of Zendesk object to be created. The object can be either a ticket or a user. === Object ID === ''Object ID'' is the identifier of the object to be updated. === Set fields === This setting is reserved. === Raw JSON === ''Raw JSON'' is where the object properties to be updated are specified in JSON format. The code and the body of the received HTTP response is stored in local variables ''$(integrationResultCode)'' and ''$(integrationResultBody)'', respectively. For troubleshooting purposes, use the [[#topic_scenario-builder-reference-guide/email|EMail]] or [[#topic_scenario-builder-reference-guide/internalmessage|Internal Message]] block to obtain the content of the responses indicating a failed attempt to update an object. For more information, refer to the description of the variable [[#topic_scenario-builder-reference-guide/variables|''$(integrationResultBody)'']]. [[File:Zendesk-Update-Object-Settings.png|400px|thumbnail|center|Scenario Builder Zendesk Update Object scenario block settings]]