Customizing the Chat Routing Strategy
When you create your Web Engagement application, Genesys Web Engagement also creates default Engagement Logic and Chat Routing SCXML strategies in the \apps\application_name\_composer-project\ folder. Orchestration Server (ORS) uses these strategies to decide whether and when to make a proactive offer and which channels to offer (chat or web callback).
The default Chat Routing strategy delivers chat interactions that are initiated in Genesys Web Engagement to a specific target. Although this strategy is included as part of the Web Engagement installation, it is possible to use your own existing strategy for routing. For example, a URS-based chat routing strategy; however, in this scenario you will need to adjust the Web Engagement solution to support the pacing algorithm functionality.
You can modify the Chat Routing SCXML by importing the Composer project into Composer. The project is located here: \apps\application name\_composer-project\WebEngagement_ChatRouting\. Refer to the sections below for details about the Chat Routing strategy and how it can be modified.
Note: The strategies deployed out of the box with GWE 8.1.2 are made for Composer 8.1.300.89 projects. If you use a newer version of Composer, make sure that you upgrade these projects by following the upgrade procedure.
Main Interaction Workflow
The default entry point to the GWE Chat Routing strategy is the Interaction Queue specified in the wes.connector.chatServer.queueWebengagement option on the Backend Server application.
The interaction process pulls interactions from this queue and sends them through the chat workflow:
The default Chat Routing strategy is straightforward and includes the following highlights in the workflow:
- Obtain information from the User Data of the chat interaction that is being routed. See the AssignCategory block in the Chat Routing Strategy for details.
- Send messages to the chat session from the routing strategy. See Sending Messages from the Chat Routing Strategy into the Chat Session for details.
- Branch the workflow based on categories obtained from the chat interaction User Data. See the BranchingByCategory block for details.
- Route to skill-based Virtual Groups. See the RouteCustomerServer and RouteCustomerCare blocks for details.
- Route to a static Agent Group. See Routing to a Static Agent Group for details.
Routing to a Static Agent Group
When you plan to route an interaction to a static Agent Group, you should specify the name of this group and the name of the Stat Server in the Target property of the RouteInteractionDefault block.
In the image above, the Stat Server name is specified through the Variable(_data.StatServerName) variable. You can define this variable, or others like it, in Composer and Genesys Administrator.
Specifying Variables in Composer
- Double click the interaction process - in this case, webme_chat.ixnprocess.
- Make sure that there are no elements selected in the opened interaction process.
- Access the interaction process variables by clicking "Access Project Variables", marked with a red square in the image below:
- In the image above, the StatServerName variable is used in the default Chat Routing strategy.
Specifying Variables in Genesys Administrator
The StatServerName parameter is set automatically by the Provisioning Tool when you install Genesys Web Engagement, but it can be changed manually.
- Navigate to Provisioning > Environment > Scripts and find the script with the entry-point Interaction Queue. In this case, the script is Webengagement_Chat.Routing.
- In the Configuration tab, open the Orchestration section.
- Now you can see a list of parameters that are passed into the Chat Routing strategy, including StatServerName.
Sending Messages from the Chat Routing Strategy into the Chat Session
There are times when you might need to send messages into the chat session directly from the routing strategy. For example, this could be additional information messages, advertising messages, and so on.
The default Chat Routing strategy contains an External Service block that provides this functionality: