Scenario Builder Reference Guide

Bright Pattern Documentation

Generated: 5/14/2021 4:02 am
Content is available under license unless otherwise noted.

Purpose

The Bright Pattern Contact Center Scenario Builder Reference Guide describes the building blocks of the Bright Pattern scenario language and how those blocks are managed in the Scenario Builder application. The function of each scenario block, its parameters, and usage are explained. An example of a typical scenario is provided in the last section of this guide.

For information about scenario management in the context of contact center configuration, such as association of scenarios with interaction access points, refer to the Bright Pattern Contact Center Administrator Guide.


Example of a scenario in the Scenario Builder



Audience

The Bright Pattern Scenario Builder Reference Guide is intended for professionals responsible for the design, development, and testing of interaction processing logic in your contact center.

Participants are expected to be familiar with general principles of computer programming and to have a solid understanding of contact center operations and resources that are involved in such operations, including agents and teams, services and skills, schedules, and access points.



Scenario Builder Overview

For every customer interaction that enters your contact center, Bright Pattern Contact Center software has to process that specific interaction to determine what to do with it (e.g., what prompts or announcements to apply, what resources to queue for, what music to play, or when to over-flow to alternate resources). The logic of such automated interaction processing is defined in a scenario. Execution of a scenario with respect to a specific interaction is triggered by a particular event, such as the arrival of a call at a specific access number, or the initiation of a chat session from a specific web page.

Scenarios are designed and edited in the Scenario Builder application. This application is launched from the Contact Center Administrator application when you add a new scenario or select an existing one for editing. For more information, see section Scenarios Overview of the Bright Pattern Contact Center Administrator Guide.


Scenario Builder


Scenario Engine

The Scenario Engine is the component of Bright Pattern Contact Center software that executes your scenarios. Starting from version 5.0, should scenario failover occur (i.e., the Scenario Engine fails while processing a Voice scenario), the scenario will be transferred to a backup Scenario Engine; this will restart the scenario from the last executed block and prevent active, connected calls from being disconnected.

The following are some examples of what can occur at various stages of scenario failover:

Note: Real-time statistics are incrementially affected by scenario failovers in some instances. For example, for queued calls, one inbound call will increase statistic value by two (e.g., the first time when it was queued by original Scenario Engine, the second time when it was switched over to new Scenario Engine).

Graphical User Interface

Scenario Builder incorporates a graphical user interface (GUI) with which you can visually connect a sequence of functional blocks, thus building your scenario. These blocks are known as scenario blocks. Scenarios are created using a flowchart format that represents the sequence of interaction processing steps in the scenario. Different scenario blocks perform different functions, such as playing prompts, collecting digits, or looking for available agents.

To add a block to the scenario, select it from the list on the left and drag it to the desired location within the scenario. To remove a block from a scenario, select the block within the scenario and drag it back to the list of blocks on the left.

Scenario Blocks

Each block has its own configuration attributes, which appear in the edit pane on the right when the block is added to the flowchart or selected within the flowchart. The attributes specify the function represented by the block. For example, the Play Prompt block has an attribute that specifies which prompt shall be played when this block is executed in a specific processing step of a specific scenario. The scenario blocks described in this guide may have configuration attributes related to conditional exits, prompts, and/or settings.

Conditional Exits

The scenario typically processes blocks sequentially; however, some blocks have multiple paths that the scenario can take after processing the block. These paths are called conditional exits. Conditional exits enable you to determine how the voice scenario responds to certain conditions that may occur during the processing of an interaction, such as an agent not responding to a call. Each conditional exit appears in the flowchart as green text beneath the block to which it applies. A conditional exit may contain a flow of blocks to handle specific situations.

Prompts

Many blocks use voice prompts to request input from callers, inform callers about events, or play music while callers are waiting for an agent. These prompts can be either prerecorded audio files or static prompts that the system generates using Text-to-Speech (TTS) functionality from textual prompt descriptions. The Prompt Manager dialog box in Scenario Builder lists all prompts the open voice scenario uses, and it lets you set the languages in which the voice scenario can play prompts.

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.

The subsequent sections of this guide describe specific scenario blocks, their attributes, and usage. The blocks are listed in alphabetical order.



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).


Scenario Builder Accept scenario block


Important:


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.


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.


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.


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).


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 Accept block at the beginning of a scenario.

Scenario Builder Answer scenario block


There are no settings or configuration parameters for this block.


Important:

Using the 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.




Attached Data

The Attached Data scenario block adds or changes custom data associated with interactions processed by the given scenario. The attached data is sent to the Agent Desktop application when interactions are distributed to agents, and the data can be provided to any other integrated applications. For example, this scenario block can be used to populate custom fields in customer relationship management (CRM) activity history records.


Scenario Builder Attached Data 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 a data item

This parameter defines a new data element that should be added to the given interaction as a new key-value pair. Or, it specifies a new value for an existing key-value pair. To populate custom fields in CRM activity history records, specify custom field names as data item names with the desired values.


Scenario Builder Attached Data scenario block settings



Chat Bot Select Account

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 a couple of important functions:

It's possible for your contact center to have many bot integrations. Thus, it's important to specify which bot to use.

Settings

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 add an integration account.




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.


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 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 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 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 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:


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. Note this block will replace the Retrieve Internal Record block starting from version 5.2.2 of Bright Pattern Contact Center software.


Bright Pattern Search Object scenario block


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.


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

Search settings will vary depending on what object type you are searching for. The options are listed as follows:


Case

To search by case, select either ID, Number, 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 has been selected. For more information, see Custom Fields.

For any of these options, you may then select Equal, Empty, or Not empty from the second drop-down menu. If you select Equal, a field will appear and you will have the option to enter a text or variable item.


Bright Pattern Search Object case settings


Company

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 has been selected. For more information, see Custom Fields.

For all these options, you may then select Equal, Empty, or Not empty from the second drop-down menu. If you select Equal, a field will appear and you will have the option to enter a text or variable item.


Bright Pattern Search Object company settings


Contact

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 has been selected. For more information, see Custom Fields.

For all these options, you may then select Equal, Empty, or Not empty from the second drop-down menu. If you select Equal, a field will appear and you will have the option to enter a text or variable item.


Bright Pattern Search Object contact settings


Activity history

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 has been selected. For more information, see Custom Fields.

For all these options, you may then select Equal, Empty, or Not empty from the second drop-down menu. If you select Equal, a field will appear and you will have the option to enter a text or variable item.


Bright Pattern Search Object activity history settings


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 Bright Pattern Create Object block if a contact's name is not 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.


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 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:

Custom Contact Fields

Custom Contact Fields that have been configured in 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 Case & Contact Management > Custom Fields > Company will appear here; you may enter text items in these fields.

Collect Digits

The Collect Digits scenario block prompts the caller to input a string of digits using the phone keypad, and it collects the digits.


Scenario Builder Collect Digits scenario block


Specifically, the block initiates the following actions:

  1. The block plays a prompt requesting digit input and waits for input.
  2. 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.
  3. The caller enters the digits using the phone keypad.
  4. 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.
  5. The input can be started over by entering the specified Clear Input digit (usually *), if necessary.
  6. Upon completion, the block saves the entered digits as a scenario variable with the specified name.


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.


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.

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.


Scenario Builder Collect Digits scenario block settings


< Previous | Next >

Comment

The Comment scenario block allows you to enter internal comments related to this scenario. Comments have no effect on run-time operations.


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.


Scenario Builder Comment scenario block settings


< Previous | Next >

Connect Call

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 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 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 dial-out entries.


Settings

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 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 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 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.

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 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) variable (typically, the agent found by the preceding 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.


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 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 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.


Set Variable block added to scenario


The If and 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.


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.


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.


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.


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 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.


Setting the properties for the Connect Chat block


< Previous | Next >

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.


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.


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:

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 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:


Scenario Builder DB Execute scenario block settings


< Previous | Next >

EMail

The Email scenario block sends an email, with an attachment if so configured. It can be used together with the Record block to send recorded voice messages.

For SMTP server configuration, see section Email Settings of the Contact Center Administrator Guide.


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

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.

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 / Address

This is the email address of the email sender. A scenario variable can be specified as the value using the $(varname) format.

To / Address(es)

This specifies 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.

Message / Subject

This is 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 / Body

This is 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.

URL of the recording to attach

URL of the recording to attach is the full HTTP URL of the voice recording previously done by a 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 Voicemail, was introduced to combine the aforementioned functions and support various storage and playback options specific to voicemail.)


Scenario Builder EMail scenario block settings


< Previous | Next >

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.


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.


Scenario Builder Exception Handler Try/Catch conditional exits


The Exception Handler block initially executes the Try 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.


Scenario Builder Exception Handler scenario block settings


< Previous | Next >

Exit

The Exit scenario block disconnects the currently active interaction and exits the scenario.


Scenario Builder Exit scenario block


The following example scenario shows Exit blocks in a web chat scenario.


Scenario Builder Exit block used in a web chat scenario


< Previous | Next >

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.

Fetch URL scenario block


Conditional Exits

The Fetch URL block may take one of two conditional exits: Failed or No Data.


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:

URL to fetch

URL to fetch is the HTTP/HTTPS URL of the web content to get. Query string parameters are specified separately.

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 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. The setting is displayed only if request type POST is selected.

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

Body is the data to be submitted in the request body. The setting is displayed only if request type POST is selected.

Body is the data to be submitted. The format of the data must correspond to the Content Type above. 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.


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:

  1. It will be parsed.
  2. If the "GetNext" option is enabled and the item the initial path is pointing to is a regular, non-associative array:
    1. The scenario variable will be set to the first item of the array.
    2. The GetNext block could be used to initialize the variable to the next and subsequent items.
  3. 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:


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 EMail or Internal Message block to obtain content of responses indicating a failed attempt. For more information, see the description of variable $(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:


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:

When the following codes are received, the block retries the request to the provided redirect URL using the originally specified request method:

When the following status codes are received, the conditional exit Failed will be selected:


< Previous | Next >

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 Omni-Channel Routing settings may determine the frequency with which certain interaction types are routed to your agents.


Find Agent scenario block


Important:

The Connect Call or 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:

  1. The scenario collects data from a caller.
  2. Based on the collected data, the scenario determines the qualifications necessary to handle the call.
  3. The scenario uses the Find Agent block to find an agent with the necessary qualifications (e.g., Peter at extension 151).
  4. That agent’s extension is stored internally in the $(destination) variable. In this example, the variable is set to 151.
  5. 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

Find Agent (Chat) 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.

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 Send Message block does. For example, the periodic message could include 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 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 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 Request Callback). The Virtual Queue option applies to voice scenarios only. For more information, see the 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.

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 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 default Music on hold and in queue 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 (i.e., before the Music on hold starts).

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 default Music on hold and in 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 audio treatments for voice calls, allowing you to vary the audio treatments played while waiting in the queue.



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 DB Execute, Fetch URL, RightNow Search, Salesforce.com Search, and Zendesk Search.


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 DB Execute, Fetch URL, RightNow Search, Salesforce.com Search, and 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).


Scenario Builder Get Next Record scenario block settings


< Previous | Next >

Get Statistics

The Get Statistics scenario block obtains one or more statistics and saves their values in scenario variables for future use.


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:


Get Statistics scenario block settings


< Previous | Next >

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.


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:

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.


Scenario variables can be specified as values using the $(varname) format.


For more information, see Contact Center Administrator Guide sections Users, Teams, and Skill Levels.


Scenario Builder Get User Configuration scenario block settings


< Previous | Next >

Goto

The Goto scenario block redirects the processing flow of the scenario to a specified destination in the flowchart.


Scenario Builder Goto scenario block


To redirect the flow using this block, follow these steps:

  1. 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.
  2. Select the Goto block in the flowchart. The Edit Pane will display a copy of the flowchart.
  3. 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.


Example of a Goto block redirecting a call to voicemail


< Previous | Next >

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 Call Center Configuration > Identification.


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 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 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 Search by setting.

External Type / Messenger Type

If External ID is the selected Search by option, choose either Salesforce or Zendeskfrom the drop-down menu, as the external source.

If Messenger ID is the selected 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.


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.


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:


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.


Scenario Builder If scenario block settings


Multiple Conditions

Multiple conditions in a branch can be joined by either the AND (default) or OR operator.

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 scenario entry, as illustrated in the 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.


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 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 scenario parameter.



< Previous | Next >

Internal Message

The Internal Message scenario block is used to send an internal chat message to a specified user.


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.


Scenario Builder Internal Message scenario block setting


< Previous | Next >

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.


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.


Scenario Builder Log scenario block settings


< Previous | Next >

Menu

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 DTMF key.


Scenario Builder Menu scenario block


The Menu block moves through the following steps:

  1. The menu prompt announces options with corresponding keys from a phone keypad (0-9, *, #). Each selected option corresponds to a conditional exit.
  2. The caller presses the key corresponding to the desired menu option.
  3. 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.

To assign a menu option to a key, select the checkbox corresponding to that key in the Valid choices section. 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.


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.


Prompts

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.

Timeout prompt

The Timeout prompt is the prompt that the scenario plays when the time allotted for the caller to respond expires.

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.

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.


Settings

Scenario Builder Menu scenario block settings


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.

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.

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.



< Previous | Next >

Play Prompt

The Play Prompt scenario block plays a voice or music prompt. 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 Menu and Collect Digits blocks.


Play Prompt scenario block


Prompts

With the Play Prompt block, Prompt to play is the prompt that the scenario will play to the caller. Click select to select (or create) the prompt that this block will play. Prompts already defined for this scenario will appear in a new dialog window. Select the desired prompt and click Select. To create a new prompt, click the Add new button.

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.

Settings

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 Menu or 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:

  1. Termination of the call by the listening party
  2. Execution of the Exit block
  3. Execution of the Stop Prompt block
  4. 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.


Scenario Builder Play Prompt scenario block settings


< Previous | Next >

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 created via the Contact Center Administrator application and then selected as the value of property Shared voice prompt of this block.


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 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 EMail scenario blocks were used to implement recording and distribution of voicemail messages. In version 3.7.7, the 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 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.


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

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. 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 (uses Speech To Text integration account) and Natural Language Understanding (NLU) checked and configured, as well as variables entered in fields corresponding with text transcripts and 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 Log, EMail, or 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 EMail block in the same scenario to send the URL via email (e.g., “$(recording_url)”).


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 Speech To Text account to transcribe recorded conversations.

Note: This option is only available if the setting Store recording accessible via a URL is selected.

Natural Language Understanding (sentiment) account

Allows you to select the Natural Language Understanding (NLU) account you wish for sentiment recording.

Name of the variable to store text transcript of the recording

If a 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 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 (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 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 Find Agent block. The Request Callback block takes the following actions:

  1. Confirms the callback request
  2. Releases the original inbound call
  3. Places the associated callback request in the virtual queue
  4. Waits for a matching agent
  5. Makes the callback when an agent becomes available or the estimated wait time (EWT) expires


For more information, see the Virtual Queue Tutorial.

The block uses the skill requirements set in the Find Agent block.


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. EWT is a rolling average of the last 20 calls, on a per-service basis, that were answered. This reflects the average time of how long those calls waited in queue.

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.


Scenario Builder Request Callback scenario block settings


< Previous | Next >

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.


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.

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.


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 Find Agent block.


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:


Scenario Builder Request Skill or Service scenario block settings


< Previous | Next >

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 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.


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

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:

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 Attached Data block must be used.


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 EMail or Internal Message block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable $(integrationResultBody).


Scenario Builder RightNow Create Object scenario block settings


< Previous | Next >

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 Connect Call block.


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.

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.


Scenario Builder RightNow Screen Pop scenario block settings


< Previous | Next >

RightNow Search

The RightNow Search scenario block executes the specified RightNow record selection statement written in the RightNow Object Query Language (ROQL).


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 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 EMail or Internal Message block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable $(integrationResultBody).


Scenario Builder RightNow Search scenario block settings


< Previous | Next >

RightNow Select Account

Your contact center configuration may contain multiple RightNow 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.


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.


Scenario Builder RightNow Select Account scenario block settings


< Previous | Next >

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 Attached Data block must be used.


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 EMail or 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 $(integrationResultBody).


Scenario Builder RightNow Object scenario block settings


< Previous | Next >

Salesforce.com Delete

The Salesforce.com Delete scenario block is the part of Salesforce.com Integration with Bright Pattern Contact Center. This block deletes the specified Salesforce.com (SFDC) object from the SFDC database.


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 EMail or 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 $(integrationResultBody).


Scenario Builder Salesforce.com Delete scenario block settings


< Previous | Next >

Salesforce.com Insert

The Salesforce.com Insert scenario block is the part of 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 Attached Data block must be used.


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 EMail or 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 $(integrationResultBody).


Scenario Builder Salesforce.com Insert scenario block settings


< Previous | Next >

Salesforce.com Screenpop

The Salesforce.com Screenpop scenario block is the part of 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 Connect Call block.


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.

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.


Scenario Builder Saleforce.com Screenpop scenario block settings


< Previous | Next >

Salesforce.com Search

The Salesforce.com Search scenario block is the part of Salesforce.com Integration with Bright Pattern Contact Center.


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 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 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 EMail or Internal Message block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable $(integrationResultBody).


Scenario Builder Saleforce.com Search scenario block settings


< Previous | Next >

Salesforce.com Select Account

Your contact center configuration may contain multiple Salesforce 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.


Salesforce.com Select Account scenario block


Settings

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.



< Previous | Next >

Salesforce.com Update

The Salesforce.com Update scenario block is the part of 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 Attached Data block must be used.


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 EMail or 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 $(integrationResultBody).


Scenario Builder Saleforce.com Update scenario block settings


< Previous | Next >

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.


Scenario Builder Save Survey Response scenario block


The block assumes that the data received are responses to variations of the following survey questions:

  1. Was your issue resolved on your first contact with us?
  2. On a scale from one to nine, how would you rate your overall satisfaction with our service?
  3. On a scale from one to nine, how likely are you to recommend our product to your friend/colleague?


The Customer Survey 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: service_in_time_counters, agent_performance, and surveys.

Aggregated survey data appear in the following stock reports:


Settings

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 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 Record block may be entered here (e.g., "$(sentiment_survey)").

Additional (custom) fields

Additional (custom) fields are any configured 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.


Examples of custom survey fields



Search Directory

The Search Directory scenario block checks the phone numbers of the 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.


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.


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)).


Scenario Builder Search Directory scenario block settings


< Previous | Next >

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.


Scenario Builder Self-Service Provided scenario block


< Previous | Next >

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.


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 has been exceeded due to no input text being received.


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.

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. Note that in order for this option to work in voice scenarios, an SMS/MMS access number should be configured in your Messaging/Chat entry.


Send Message+ settings for chat


Voice Scenarios

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.


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. Note that in order for this option to work in voice scenarios, an SMS/MMS access number should be configured in your Messaging/Chat entry.


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 Attached Data block must be used.


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

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 EMail or Internal Message block to obtain content of responses indicating a failed attempt to create an object. For more information, see the description of variable $(integrationResultBody).


< Previous | Next >


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 Connect Call block.


Scenario Builder RightNow Screen Pop scenario block


Settings

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.



< Previous | Next >



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.


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 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

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 EMail or Internal Message block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable $(integrationResultBody).



< Previous | Next >



ServiceNow Select Account

Your contact center configuration may contain multiple ServiceNow 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.


Scenario Builder RightNow Select Account scenario block


Settings

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.


< Previous | Next >



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 Attached Data block must be used.


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

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 EMail or 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 $(integrationResultBody).


< Previous | Next >

Set Agent State

The Set Agent State scenario block supports agent authentication via phone (i.e., using extension and PIN) when agents select the Dial-in and keep line open option as their phone device option. Also known as a nailed connection, this option allows agents to establish a phone connection with the system from any phone and use this established physical connection for handling of subsequent calls within their login sessions.


Scenario Builder Set Agent State scenario block


A scenario that supports authentication via phone will usually begin with a Collect Digits block, which prompts the caller to enter their extension number and PIN and stores them in variables. The Set Agent State block then verifies the supplied extension number and PIN against the user configuration to authenticate the caller. If the agent is successfully authenticated, the block returns the agent's current state and stores it in variable $(agentState). If the state is Not Ready, the Not Ready reason will be stored in the variable $(notReadyReason). To support this process, Bright Pattern provides a scenario template called External Agent Dial In.

Note that instead of reporting the agent’s current state, the block can be used to switch the agent to another desired state.


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.


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)).

Action

This is the desired action; either get the current agent’s state or set it to one of the listed state. Note that for the agent authentication scenario described, the action must be set to GET_STATE.


Scenario Builder Set Agent State scenario block settings


< Previous | Next >

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 screen-pop forms.


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.


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 setReportingCustomField is enabled.


Set Custom Reporting Field scenario block


Settings

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.




< Previous | Next >

Set Disposition

The Set Disposition scenario block allows scenarios to specify a disposition for the interaction.


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.


Scenario Builder Set Disposition scenario block settings


< Previous | Next >

Set Priority

The Set Priority scenario block specifies the priority of the given interaction relative to other interactions competing for the same resources.


Scenario Builder Set Priority scenario block


Several examples how priorities are determined are given.

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.


Interaction priorities

The value range for priority setting is from 1 to 100. 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 set by this block supersedes the priority that may be preconfigured at the scenario entry level.


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.


Scenario Builder Set Priority scenario block settings


< Previous | Next >

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 Menu block that offers a choice of languages to the caller. This block can also be used to determine the language in which the Record block will record shared voice segments.


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.


Setting the Prompt language


< Previous | Next >

Set Variable

This block sets a value for a scenario variable.

Note it is possible to push variables directly to scenarios and workflows if the JavaScript API method postVariable is enabled.


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.

Variables in the $(varname) format can be used as values. Values can be specified as either expressions or literal strings. Literal strings are passed exactly as entered.

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: strings, integers, and floating point numbers.


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.


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.


Scenario Builder Start Another Scenario block settings


< Previous | Next >

Stop Prompt

The Stop Prompt scenario block stops the playback of a continuous prompt if such playback was previously enabled by executing the Play Prompt block with option Exit immediately and continue playing prompt in background.


Scenario Builder Stop Prompt scenario block


< Previous | Next >

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 Listening to Voicemail Messages.


Scenario Builder Voicemail scenario block


Note: The system provides a 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

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.



< Previous | Next >

Wait

The Wait scenario block will pause scenario execution for a specified number of seconds.


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.


Scenario Builder Wait scenario block


< Previous | Next >

Web Screen Pop

This block specifies what to display for the agent when the interaction is connected to this agent through the Connect Call or Connect Chat block.


Web Screen Pop block used in scenario


Note that services may also have 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 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 Activity tab of the given service.

Note also that by default, specified screen pop content will be displayed in the Context Information Area of the Agent Desktop. This area is not shown when Agent Desktop is run minimized using the Pop-out function. Thus, when using web screen pop, consider one of the following options:


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 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.


Web Screen Pop scenario block settings


< Previous | Next >

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 creating tickets and creating users.

Note that to populate the custom fields in Zendesk activity history records, the Attached Data block must be used.


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 EMail or 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 $(integrationResultBody).


Scenario Builder Zendesk Create Object scenario block settings


< Previous | Next >

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 Connect Call or Connect Chat block.


Zendesk-Screen-Pop-Block.png


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.


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.


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. 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.


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 Agent Guide.


< Previous | Next >

Zendesk Search

The Zendesk Search scenario block executes the specified Zendesk record selection statement. (For more information, refer to Zendesk's Search API and Zendesk Support search reference articles.)


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 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.


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.

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 EMail or Internal Message block to obtain content of responses indicating a failed search attempt. For more information, see the description of the variable $(integrationResultBody).


Scenario Builder Zendesk Search scenario block settings


< Previous | Next >

Zendesk Select Account

Your contact center configuration may contain multiple Zendesk 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.


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 Zendesk integration account through which Zendesk data will be accessed by subsequent Zendesk blocks in the given scenario.


Scenario Builder Zendesk Select Account scenario block settings


< Previous | Next >

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 updating tickets and updating users.)

Note that to populate the custom fields in Zendesk activity history records, the Attached Data block must be used.


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 EMail or 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 $(integrationResultBody).


Scenario Builder Zendesk Update Object scenario block settings


< Previous | Next >

Variables

This section describes the variables that are used in Bright Pattern Contact Center scenarios and workflows.

Variables are accessed using the common $(varname) format. They can be used in integer and string expressions.

Most of the scenario variables are local (i.e., their values are available to the scenario where they are defined and to the sub-scenarios that are started from that parent scenario using the Start Another Scenario block). Variable $(item.customerPhone), as well as all variables in the General or Local category of scenarios launched for consult calls and blind transfers, inherit values of the same variables of the associated primary calls. To share data between independent scenarios, consider using blocks Fetch URL or DB Execute to store variable values in a persistent storage and to access them from other scenarios.


Local Variables

$(destination)

$(destination) specifies the destination for the Connect Call or Connect Chat block.

$(___sip_response_code___)

$(___sip_response_code___) is an optional variable that specifies the SIP response code sent on an unanswered inbound call. The default is 480. It works only if the scenario has Accept or Answer blocks and the scenario finishes before the Answer block.

$(fetchURLResultBody)

$(fetchURLResultBody) specifies the body of HTTP response received by the most recent Fetch URL block. Note that the block will report the same value via the $(integrationResultBody) variable.

$(fetchURLResultCode)

$(fetchURLResultCode) specifies the code of HTTP response received by the most recent Fetch URL block. Note that the block will report the same value via the $(integrationResultCode) variable..

$(integrationResultBody)

$(integrationResultBody) specifies the body of HTTP response received by the most recent of these integration blocks:

To understand why an attempt to look up or update data in a third-party application may have failed, consider using this variable and the corresponding $(integrationResultCode) after each integration block in the following manner:

$(integrationResultCode)

$(integrationResultCode) specifies the code of HTTP response received by the most recent of the integration blocks. For more information, see the description of the $(integrationResultBody) variable.

$(agentState)

$(agentState) specifies the state of the agent obtained by the most recent Set Agent State block.

$(notReadyReason)

$(notReadyReason) specifies the Not Ready reason of the agent obtained by the most recent Set Agent State block.

$(targetDisconnectedCause)

In the event of agent connection loss during a chat with a customer, the $(targetDisconnectedCause) variable informs the chat scenario of the cause of the agent's disconnection in the Target Disconnected branch of Connect Chat block. Possible causes could be one of the following: "UserHangup," "SystemHangup," "UserLogout," or "Failure."

$(doNotRecord)

$(doNotRecord) can be set to 1 or true (case insensitive) prior to Connect Call block to disable voice recording. This overrides all recording settings in configuration. Recording can still be enabled manually via Agent Desktop or via desktop API methods. See also $(banVoiceRecording).

$(banVoiceRecording)

The $(banVoiceRecording) variable can be set to 1 or true (case insensitive) to ban voice recording for the entire call. This overrides all recording settings in configuration. It will also block any any attempts to enable recording manually via Agent Desktop or via desktop API methods. See also $(doNotRecord).

$(banMonitoring)

The $(banMonitoring) variable can be set to "1" or "true" (case insensitive) to ban call monitoring by a supervisor.

$(ttsVoice)

$(ttsVoice) can be set to specify the TTS voice to be used by the scenario.

$(botContext)

The $(botContext) variable is part of the sentiment analysis context.

$(XXX)

$(XXX) is a custom (user-defined) variable. Substitute XXX with a meaningful variable name (e.g., $(accountNumber)). Custom variables are used to pass custom data between blocks of the same scenario and to transfer such data from scenarios of primary customer calls to the associated dependent calls (consultations and blind transfers). Scenarios launched for consult calls and blind transfers will recreate all custom variables defined in scenarios of the associated primary calls and will inherit their values.


Screenpop Data

$(screenpopData.XXX)

$(screenpopData.XXX) specifies the list of the screen pop data received or set by interactive voice response (IVR). An actual list of available screen pop data elements depends on the particular IVR and integration.


Media Item (Call, Chat) Properties

$(item.globalInteractionId)

$(item.globalInteractionId) specifies the Global interaction identifier.

$(item.interactionId)

$(item.interactionId) specifies the interaction identifier. This parameter is maintained for backward compatibility. Starting with Bright Pattern Contact Center version 3.11, the $(item.globalInteractionId) variable is recommended for use in any operations involving interaction identification.

$(item.interactionStepId)

$(item.interactionStepId) specifies the interactions step identifier. This variable can be used to obtain recordings and the related metadata via the Recording Retrieval API.

For any other operations involving interaction identification, the $(item.globalInteractionId) variable should be used.

$(item.media)

$(item.media) specifies the media type. This variable can be set to voice or chat.

$(item.from)

$(item.from) specifies the origination address (i.e., phone number or chat user display name). This variable is also known as ANI.

$(item.to)

$(item.to) specifies the destination address (i.e., dialed phone number or chat launch point name). This variable is also known as DNIS.

$(item.priorTo)

$(item.priorTo) specifies the prior destination address (phone number or chat launch point name). It is used for forwarded calls.

$(item.contactId)

$(item.contactId) specifies the ID of the CRM contact associated with the caller, if any.

Note: This variable is available in workflows.

$(item.firstName)

$(item.firstName) specifies the customer first name. The scenario may get or set this variable. Setting the variable also updates the historical database interaction step as well as customer chat party information.

Note: This variable is available in workflows.

$(item.lastName)

$(item.lastName) specifies the customer last name and passes the ANI for SMS interactions. The scenario may get or set this variable. Setting the variable also updates the historical database interaction step as well as customer chat party information.

Note: This variable is available in workflows.

$(item.customerPhone)

$(item.customerPhone) specifies the customer phone number. This variable enables passing customer phone information from scenarios of primary inbound and outbound customer calls to scenarios of the associated consultations and blind transfers.

Note: This variable is available in workflows.

$(item.email)

$(item.email) specifies the customer email address. It may contain multiple addresses separated by a comma or semicolon, and the scenario may get or set this variable.

Note: This variable is available in workflows.

$(item.sendTranscript)

For chat interactions, scenario must set the $(item.sendTranscript) variable to 1 to have a session transcript emailed to the customer. The variable can be set at any time. The transcript will be emailed to the address(es) specified in $(item.email) when the session ends. For the corresponding email template and SMTP configuration, see section Email Settings of the Contact Center Administrator Guide.

$(item.data.<name>)

$(item.data.<name>) specifies a key-value list of optional additional interaction data. To obtain content of a particular data element, use $(item.data.<name>) (e.g., $(item.data.firstName))

$(item.message)

For chat interactions, the $(item.message) variable specifies the last chat message received from the origination side.

$(item.newMessage)

For chat interactions, the $(item.newMessage) variable adds a new message as it was received from customer. This variable is used to populate a chat session with form field values. The new message is treated as it was received from the customer and is added to chat transcript.

$(item.transcript)

For chat interactions, the $(item.transcript) variable gets the full JSON transcript of the chat session.

$(item.transcript.text)

For chat interactions, the $(item.transcript.text) variable gets the text transcript of the chat session.

$(item.transcript.HTML)

For chat interactions, the $(item.transcript.HTML) variable gets the HTML formatted transcript of the chat session.

$(item.externalChatData)

For chat interactions, use the $(item.externalChatData) variable to specify the full collection of data received from the customer chat page. This is a container for all values that were entered by the customer while chat was in the Request Input block for their possible later use in the scenario.

In addition, $(item.externalChatData) can be used to pass custom variables from widget pre-chat configuration. Input fields (text boxes) can be saved as these custom variables. and the name field is what is saved as the ending of the variable (e.g., name = issue variable = $(item.externalChatData.issue)). Note that this variable is case-locked; the variable must be typed in lowercase for it to work.

$(item.externalChatData.user_platform.browser)

For chat interactions, this variable returns the type and version of the browser used by the customer. Note that this variable will contain data only if the customer-side chat application was designed using the Bright Pattern Chat Widget Configuration application.

$(item.externalChatData.user_platform.os)

For chat interactions, this variable returns the type and version of the operating system used by the customer. Note that this variable will contain data only if the customer-side chat application was designed using the Bright Pattern Chat Widget Configuration application.

$(item.externalChatData.user_platform.description)

For chat interactions, this variable returns the type and version of both the browser and operating system used by the customer. Note that this variable will contain data only if the customer-side chat application was designed using the Bright Pattern Chat Widget Configuration application.

$(item.virtualDevice)

The voice scenario may set the $(item.virtualDevice) variable to indicate that an inbound call should not be terminated when the scenario ends; instead, the call will be converted to "virtual phone" (used for external agents on PBX).

$(item.sip.headers)

$(item.sip.headers) gets the key-value list of SIP INVITE headers from inbound calls. This variable can be used to obtain content of individual P-, X- and Diversion headers. To obtain content of a particular header, use $(item.sip.headers.<header_name>) (e.g., $(item.sip.headers.X-tdm-channelnumber)).

$(item.sip.send.headers.XXX=ZZZ)

When making a call using the Connect Call block, before calling the Connect Call block, the scenario can set SIP headers to be included in INVITE in the format item.sip.send.headers.XXX=ZZZ, where XXX is a header name (e.g., "P-Customer-Type"). Note that the XXX must begin with either the letter P or the letter X.

$(item.EWT)

For voice and chat interactions, $(item.EWT) is the item's current estimated waiting time (in seconds).

$(item.queuePos)

For voice and chat interactions, $(item.queuePos) is the item’s current position in queue. This variable displays results while the interaction is in the Find Agent block; it is blank at all other times.

$(item.continuationUserId)

If the customer had contacted the system before and was connected to an agent, the $(item.continuationUserId) variable will contact the user ID of the agent. It could be used to route new customer interaction to the same agent.

$(item.averageSentiment)

If sentiment analysis is being performed on an interaction, the $(item.averageSentiment) variable is set to the current average sentiment value. It is changed whenever the average sentiment is updated.

Note: This variable is available in workflows.

$(item.sentiment)

If sentiment analysis is being performed on an interaction, the $(item.sentiment) variable is set to the sentiment value of the last analyzed phrase.

$(item.emotion)

If sentiment analysis is being performed on an interaction, the $(item.emotion) variable is set to the emotion value of the last analyzed phrase.

$(item.keywords)

If sentiment analysis is being performed on an interaction, the $(item.keywords) variable is set to the array of the keywords found in the last analyzed phrase.


Scenario Configuration Properties

$(app.version)

'$(app.version) specifies the scenario version (as reported by configuration server).

$(app.appName)

The $(app.appName) variable specifies the scenario name.

$(app.name)

$(app.name) specifies the scenario entry name.

$(app.priority)

The $(app.priority) variable holds the priority specified in the scenario launch point.

Note that all variables that begin with "app" are configuration parameters from either the scenario itself (i.e., app.name) or the launch point (i.e., app.priority).

$(app.tenantName)

$(app.tenantName) is the tenant name.


Custom Parameters

$(app.custom.XXX)

$(app.custom.XXX) names the custom parameters that can be specified in a scenario entry. The variable must follow naming convention $(app.custom.XXX), where XXX is the name of the custom parameter. All scenario variables conforming to such convention are treated as custom parameters. The list of such parameters will be displayed in the property Scenario parameters of every scenario entry associated with the given scenario. You can set values of such custom parameters for every scenario entry point separately.


User Configuration Variables

$(user.id)

$(user.id) is the unique identifier assigned to this user object in configuration.

$(user.version)

$(user.version) is the version of the user's configuration information.

$(user.loginId)

This variable is the user’s username.

Note: This variable is available in workflows.

$(user.team)

$(user.team) is the name of the team to which the user is assigned.

$(user.firstName)

$(user.firstName) is the user’s first name.

Note: This variable is available in workflows.

$(user.lastName)

$(user.lastName) is the user’s last name.

Note: This variable is available in workflows.

$(user.phone)

This variable is the phone number that the user is logged onto or the user's extension as specified in configuration.


Service Parameters

$(service.name)

$(service.name) is the name of the service (as specified in the scenario entry or in the Request Skill or Service block).

$(service.version)

$(service.version) is the version of service configuration information.

$(service.slPercent)

This variable specifies the Service level call percentage.

$(service.slTimeout)

The $(service.slTimeout) variable specifies the Service level timeout in seconds.

$(service.EWT)

$(service.EWT) is the current estimated waiting time for the service. It is calculated as the average time the last 20 answered interactions waited in the service queue before being answered.

$(service.queueLength)

$(service.queueLength) is current queue length for the service.


Outbound Target Workitem Parameters

$(workitem.id)

$(workitem.id) is the Workitem identifier.

$(workitem.firstName)

$(workitem.firstName) is the customer’s first name.

$(workitem.lastName)

$(workitem.lastName) is the customer’s last name.

$(workitem.suggestedPhone)

This variable is the customer's default phone number.

$(workitem.otherInfo)

$(workitem.otherInfo) specifies all list fields except phones, first name, and last name (e.g., $(workitem.otherInfo.MTN)).

$(workitem.fullInfo)

$(workitem.fullInfo) specifies all list fields (e.g., $(workitem.fullInfo.MTN)).




String Expressions

In Bright Pattern Contact Center, you may work with data as variables stored as values, which may be specified as strings or expressions. A string is a sequence of characters that is generally understood as a data type; often a string is implemented as an array of bytes (i.e., words) that store a sequence of elements. An expression will produce a data type such as string.

What follows is a list of tips regarding string expression structure.


< Previous | Next >

Integer Expressions

Some helpful information on using integer expressions in the Scenario Builder application is given as follows.


< Previous | Next >

Floating Point Expressions

Some helpful information on using floating point expressions in the Scenario Builder application is given as follows.


< Previous | Next >

Built-in Functions

A number of built-in functions may be used in the Scenario Builder application.

To invoke a function from a text field, prefix it with an equal sign. Example: =now("UTC")

Descriptions

The functions are described as follows.

formatdatetime(int unixtimestamp, string format)

This function formats the time as specified in the format argument. This format is the same as in Java SimpleDateFormat, as implemented by the International Components for Unicode (ICU)library.

Example: "yyyy-MM-dd'T'HH:mm'Z'" yields 2012-07-20T20:45:44.0973928Z

formatduration(duration_in_seconds)

This function converts duration in specified in seconds into MM:SS or HHH:MM:SS formats. It produces formatted string as output (e.g., formatduration(121) will return "02:01").

hmac(hash_function, key, message)

This function is used to create an authentication hash (HMAC) for MD5, SHA-1, and SHA-256, where Hash_function = (“MD5” | “SHA-1” | “SHA-256”). Returned value is a string with base64-encoded hash.

length(string)

This function returns the number of characters in a string.

now(string timezone)

This function returns the current time in the specified time zone in Unix format (number of seconds elapsed since 1/1/1970, 00:00:00 UTC). Time zone is optional; if not specified, the current time will be returned in the tenant’s default time zone.

parsedatetime(string datetime, string format)

This function returns the specified date and time in Unix format (number of seconds elapsed since 1/1/1970, 00:00:00 UTC). The date and time input is expected in the ICU’s Java SimpleDateFormat.

replace(string, search_pattern, replace_pattern, flags)


Example that takes first name from fullname variable and could be used in value section of Set Variable block: =replace("$(fullname)","(.*)\s+(.*)","\1","i")

round(floating_number, precision)

This function rounds the number to the <precision> number of digits after the point. The result is still a floating point number.

stripnondigits(string)

This function removes non-digit characters from string, leaving only digits from 0 to 9, * and # symbols (e.g., stripnondigits("123abc456") will return "123456").

titlecase(string)

This function converts string to title case (i.e., each word is capitalized).

tostring(integer)

This function converts an integer to a string (e.g., tostring(-2+1) should return "-1" as a string).

urlencode(string)

URL encodes a string, replacing special characters using the %dd notation. This is a conservative implementation that replaces all characters that are not explicitly in allowed characters.


Pattern Types

Pattern types are described as follows.


Pattern Description
^ Match beginning of a buffer
$ Match end of a buffer
() Grouping and substring capturing
[…] Match any character from the set
[^…] Match any character but the ones from the set
\\s Match whitespace
\\S Match non-whitespace
\\d Match decimal digit
\\D Match anything but decimal digit
\\r Match carriage return
\\n Match new line
+ Match one or more times (greedy)
+? Match one or more times (non-greedy)
* Match zero or more times (greedy)
*? Match zero or more times (non-greedy)
? Match zero or once
\\meta Match one of the meta characters: ^$().[*+?\


< Previous | Next >


Voice Segments

This section describes the types of voice segments that can be used to create voice prompts for scenario blocks Collect Digits, Menu, and Play Prompt. The drop-down menu of voice segment types appears when you select Add New in the Prompt list dialog and click Add voice segment. Voice segment parameters depend on the selected segment type. These segment types are explained as follows.

Note: All voice segment files must be in PCM/16-bit/8 KHz/Mono format.


Types

Voice

The Voice segment lays the content of the uploaded voice file. When creating a new segment of this type, click upload and select the voice file to be played. You can also enter the content of this message as a text in the Content field. If the scenario cannot find the file, it will convert to speech and play the text specified in this field.

Note that the text-to-speech function may not be available for all languages. You can obtain the list of the currently supported languages from your service provider.

Shared Voice

The Shared Voice segment plays the content of the selected shared voice segment defined at the contact center level for use in multiple scenarios. Select the name of the desired shared voice segment from the drop-down menu.

Voice, from parameter

This segment plays the voice segment defined as an external parameter whose value depends on which dial-in scenario entry this scenario is to be used.

Define the variable name here and set its values in property Scenario parameters of the dial-in scenario entries where this scenario will be used. Note that although the full format of the variable is $(app.custom.XXX), you only need to define the XXX part in the variable field.

Number

The Number segment plays the specified number.

It can be defined as a variable. Use Frac.digits to define the number of digits after the decimal point to which the natural numbers will be rounded when played as voice (e.g., if Frac.digits is set to 2 and the variable defined in the Value field returns 173.2534895, the voice segment will be played as one hundred seventy-three point twenty-five.

Ordinal

The Ordinal segment plays the specified number as an ordinal number. It can be defined as a variable.

Currency

The Currency segment plays the specified amount and the selected currency (e.g. sixty-nine euros). The amount can be defined as a variable.

Note that not all currencies are supported in all languages.

DateTime

The DateTime segment plays the specified date and/or time in the selected format for the selected time zone. Date and time can be defined as a variable. The input is expected in Unix time (number of seconds elapsed since 1/1/1970, 00:00:00 UTC).

The parsedatetime function can be used to convert a human-readable time string into the Unix time.

Phone

The Phone segment plays the specified phone number. The number will be pronounced according to the pattern accepted in the selected language. It can be defined as a variable.

Spell

The Spell segment spells the specified phrase, and it can be defined as a variable.

Select the Read Capitals checkbox if the capital letters in the phrase shall be preceded with the word capital (e.g., aZf will be spelled as a-z-f when the checkbox is not selected, and a-capital-z-f when it is selected).

Word

The Word segment plays a single-word .WAV file with the specified name from the <root>\audio\talkers\[selected_language]\words directory. The name can be defined as a variable.

Note that the Word segment type is currently supported for Enterprise installations only.

Personal Name

The Personal Name segment plays the specified parts of personal names with the correct intonation (e.g., for a full three-part name, the intonation will rise while playing the first name, be neutral for the middle name, and will drop for the last name). The name parts are contained in the <root>\audio\talkers\[selected_language]\names directory.

This segment type is currently supported for Enterprise installations only.

Text

This segment converts to speech and plays the specified text. The Text segment can be defined as a variable.

URL

The URL segment plays the voice content from the source indicated by the specified URL.

This segment type is designed to play back the prompts recorded by the Record block and takes the URL parameter as returned by that block.

If the URL points to some other location, the system will copy the voice content referenced by the URL, cache it locally, and use it for all subsequent scenario executions until the cache is purged. Therefore, (1) voice content referenced by the URL must be available at all times, and (2), possible changes of the voice content referenced by the URL may not be detected as long as URL itself remains unchanged.

EWT

The EWT segment plays the current estimated wait time for the given interaction in the hours, minutes, seconds format.


< Previous | Next >

Scenario Example

This section provides a simplified example of a typical scenario for processing inbound service calls.

Imagine contact center operations of a security equipment company called All Safe. The contact center provides two services: one for product sales and the other for support. Both services are provided within typical business hours and are available in two languages, English and Spanish. The company’s contact center has one general service number and uses interactive voice response (IVR) technology for language and service selection before distributing calls to qualified agents.

To support this operation, the following resources are configured in the system:


A simplified scenario for processing calls made to All Safe may look like this:

  1. First, the call arrival time is checked against the contact center operational schedule. If the call arrives outside of the business hours, an announcement is played back, prompting the caller to call again during business hours. The call is then disconnected.
  2. If the call arrives within business hours, a general greeting is played first.
  3. The caller is prompted to select a language.
  4. Based on the caller’s input, the corresponding language skill is set as one of the agent selection criteria, and the language of the subsequent voice prompts is set to match the caller’s preference. If the caller does not provide any input within a timeout, the English language is set for both the language skill and voice prompts.
  5. The caller is prompted to select the service.
  6. Based on the caller’s input, the corresponding service skill is set as one of the agent selection criteria. If the caller does not provide any input within a timeout, the General service skill is selected.
  7. The call is then queued while the system looks for an available agent who has both selected skills.
  8. As soon as such an agent becomes available, the system delivers the call to the agent extension. (If other calls are waiting for the same skill set, they are distributed to agents in the order of their arrival.)
  9. If the selected agent does not answer, the call is returned to the service queue to wait for the next available agent with the matching skills.


When translated into the Bright Pattern scenario language, the scenario description appears in the Scenario Builder application as shown.


Scenario-guide-image3.png


Once the scenario is defined, a dial-in scenario entry will have to be created in the configuration in order to associate this scenario with the corresponding external access number.


< Previous