Skill-Based Call Routing with an Auto Attendant ChoiceIn the Bright Pattern Contact Center realm, ''skills'' are the various abilities of users that can be defined in the Contact Center Administrator application. Skills can be defined as any topic or language pertinent to your contact center (e.g., accounting, Arabic, IT, etc.) Skills are rated in section [[Contact-center-administrator-guide/UsersandTeams/SkillLevels|Skill Levels]] per user from 0 to 100 (i.e., 0 being the lowest skill possible, and 100 being the highest skill possible). Additionally, users can be skilled for a [[Contact-center-administrator-guide/ServicesandCampaigns/AssignmentsTab|service or campaign]].Through scenarios, it is possible to route interactions to higher-skilled agents before lower-skilled ones. This lets your customers interact with your most knowledgeable agents, which provides the best customer service experience. Additionally, skill-based routing is great to use when training new, lower-skilled agents; this provides them the opportunity to learn while preventing them from being overwhelmed with interactions.This scenario details how to configure basic skill-based routing with an option for customers to enter in an extension directly (i.e., "auto attendant"). The skills used in this example are [[Contact-center-administrator-guide/CallCenterConfiguration/AuxiliarySkills|Auxiliary Skills]] but they may be changed to [[Contact-center-administrator-guide/CallCenterConfiguration/LanguageSkills|Language Skills]] (e.g., your contact center provides services in English, French, and Spanish).[[File:App_Skill-Based_Call_Routing_%2B_Auto_Attendant.zip]]For instructions on how to import this file into your contact center, see the ''Contact Center Administrator Guide'', section [[Contact-center-administrator-guide/ScenariosOverview#How_to_Export_and_Import_Scenarios|Scenarios Overview > How to Export and Import Scenarios]].For general information about scenarios, refer to section [[Scenario-builder-reference-guide/ScenarioBuilderOverview|Scenario Builder Overview]].This voice scenario uses a menu to route customers to skilled agents and includes an option to dial the extension of a specific agent. This is accomplished by using the following blocks: [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]], [[Scenario-builder-reference-guide/ScenarioBlocks/RequestSkillorService|Request Skill or Service]], [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits|Collect Digits]], [[Scenario-builder-reference-guide/ScenarioBlocks/SetVariable|Set Variable]], [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent|Find Agent]], and two instances of [[Scenario-builder-reference-guide/ConnectCall|Connect Call]].Note that this is an example scenario only and not intended for production use. All [[Scenario-builder-reference-guide/ScenarioBuilderOverview#Conditional_Exits|conditional exits]] should be defined with actions for production use. The diagram shown illustrates what the complete scenario looks like when designed in the Scenario Builder application.[[File:SBR-0-53.PNG|800px|thumb|center]]In this scenario, the [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block allows callers to select a menu choice that routes them to either a skilled agent or allows them to enter the extension of a specific agent directly. When configuring the [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block, we create a [[Scenario-builder-reference-guide/ScenarioBlocks/Menu#Properties|prompt to play]], then configure our [[Scenario-builder-reference-guide/ScenarioBlocks/Menu#Properties|valid menu choices]]. In this example call center, the skills are "Customer Service," "Accounting," and "Shipping and Logistics," so we create valid choices in the block for each of these. Additionally, we create the choice for the "Auto Attendant" (i.e., the caller can enter an extension).[[File:SBR-1-1-53.PNG|650px|thumb|center|Menu block configuration]]Next, for each skill-based choice we added in the [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block, we add the [[Scenario-builder-reference-guide/ScenarioBlocks/RequestSkillorService|Request Skill or Service]] block and configure the corresponding skill. This is done by selecting the skill group from the first drop-down menu (i.e., auxiliary, language, etc.), then the specific skill from the skill group in the next drop-down menu. Note that the [[Scenario-builder-reference-guide/ScenarioBlocks/RequestSkillorService|Request Skill or Service]] block acts as a connector between the [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block and the [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent|Find Agent]] block, where the skill-based routing happens.[[File:SBR-2-53.PNG|650px|thumb|center|Request Skill or Service block configuration]]For the [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block choice "Auto Attendant," we allow customers to connect to a specific agent via the agent's extension number. This is accomplished by using the [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits|Collect Digits]] block, the [[Scenario-builder-reference-guide/ScenarioBlocks/SetVariable|Set Variable]] block, and a [[Scenario-builder-reference-guide/ConnectCall|Connect Call]] block.All extensions in our example call center begin with 10 (e.g., 1003), so, rather than have the customer enter in the full four-digit extension, we configure a [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits#Properties|prompt to play]] that tells them to enter the last two digits of the extension. The [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits|Collect Digits]] block records the two digits the customer enters and stores them in the variable configured in the field [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits#Properties|Name of the variable to store the result]]; in our example, we call this variable ''extension''. [[File:SBR-4-53.PNG|650px|thumb|center|Collect Digits block configuration]]Next, the variable ''extension'' we created in the [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits|Collect Digits]] block is passed to the [[Scenario-builder-reference-guide/ScenarioBlocks/SetVariable|Set Variable]] block; this is where the first two digits of the actual extension are added back on to the variable. This is done by appending the number "10" before the begining of the variable like so: ''10$(extension)''For example, a customer enters in ''39'' in the [[Scenario-builder-reference-guide/ScenarioBlocks/CollectDigits|Collect Digits]] block, which, when passed through [[Scenario-builder-reference-guide/ScenarioBlocks/SetVariable|Set Variable]], becomes ''1039'', the actual extension.[[File:SBR-5-53.PNG|650px|thumb|center|Set Variable configuration]]Finally, the variable ''$(extension)'' we created in the [[Scenario-builder-reference-guide/ScenarioBlocks/SetVariable|Set Variable]] block is passed to the following [[Scenario-builder-reference-guide/ConnectCall|Connect Call]] block and entered in the [[Scenario-builder-reference-guide/ScenarioBlocks/ConnectCall#Override_Destination|Override Destination]] field. This ensures the call will go to the specific extension rather than any available agent.Note that in this branch of the scenario (i.e., the "Auto Attendant" menu choice), if the customer does not enter an extension or the system does not recognize it, we use [[Scenario-builder-reference-guide/ScenarioBlocks/Goto|Goto]] blocks to route the caller to the [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent|Find Agent]] block.[[File:SBR-6-53.PNG|800px|thumb|center|Connect Call block configuration]]If the caller selected a skill-based choice from the menu (i.e., they did not select the "Auto Attendant" choice), we will need the call to go to the most appropriately skilled agent.To accomplish this, the [[Scenario-builder-reference-guide/ScenarioBlocks/RequestSkillorService|Request Skill or Service]] blocks we configured for each [[Scenario-builder-reference-guide/ScenarioBlocks/Menu|Menu]] block choice are configured as [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent#Settings|Wait Conditions]] in the [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent|Find Agent]] block. The ''Wait Condition'' allows the system to find the most appropriately skilled agent for the interaction; however, if the skill condition is not met within the [[Scenario-builder-reference-guide/ScenarioBlocks/FindAgent#Settings|Wait time]], the caller will be routed to the next skill group, and ultimately, any available agent.[[File:SBR-7-53.PNG|800px|thumb|center|Find Agent block configuration]]After an agent has been found, the call is connected in the [[Scenario-builder-reference-guide/ConnectCall|Connect Call]] block. For more information about Find Agent and Connect Call, see [[Scenario-builder-reference-guide/HowtoCreateaBasicScenario|How to Create a Basic Scenario]]. As a reminder, define all [[Scenario-builder-reference-guide/ScenarioBuilderOverview#Conditional_Exits|conditional exits]].