This document outlines different approaches to configure load distribution and skill overflow that can be used with various brands.
LivePerson needs a solution to distribute workload amongst different agent groups based on pre-defined rules. The objective is to optimize agent utilization and ensure a seamless customer experience.
High-Level Requirements
- Accounts:
- Brand Production Account Number
- Brand Development Account Number
- Human Skill:
- Name:
{Skill Name}
- Description:
{Skill Description}
- Scenario: The goal is to configure load balancing for messaging to prioritize the first agent group and only engage the second group if the first group reaches capacity.
Solution Options
Three options are presented for achieving the desired load balancing behavior:
Option #1 Load Balancing Based on Agent Group
This option leverages LivePerson's built-in load balancing functionality to distribute conversations proportionally across different agent groups.
Pros | Cons |
---|
Easy to implement | Limited control over load distribution |
| Cannot prioritize one group over the other dynamically |
| Load can only be split based on a static percentage (e.g., 80/20) |
Option #2 Show Conversation Buttons Based on Agent Status on Skills
Implement a bot logic that displays conversation buttons based on agent availability and load within specific skills.
Sample configuration for engagement controller
- Establishing a new bot skill and duplicating an existing bot.
- Generating fresh engagements and assigning the new bot to these engagements.
- Crafting a new skill for the second agent group and assigning it accordingly.
- The new bot should be set to escalate to the new agent group.
- Configuring engagement rules, incorporating agent load and online status as parameters.
Pros | Cons |
---|
More control over load and online status. It allows loading the first group before the second group. | Requires additional effort. |
Option #3 Bot Logic for Transfer Based on Load
This option utilizes a custom bot to assess agent load in real-time and transfer conversations accordingly.
Sample Bot Logic
- Configuration:
- Create a new agent skill.
- Implement the Key Messaging Metrics API to retrieve agent load data ().
- Bot Logic:
- Upon conversation start, the bot queries agent availability and load for the designated skill using the Key Messaging Metrics API.
- Routing logic:
- If agents in the primary group are online and have capacity (load < 100%), transfer the conversation to the primary group.
- Else if agents in the secondary group are online and have capacity, transfer the conversation to the secondary group.
- As a fallback, transfer the conversation to the primary group regardless of load.
Pros | Cons |
---|
Highest control over load and online agent availability | Requires the most development effort |
Dynamic prioritization and routing based on real-time metrics |
|
Key Messaging Metrics API Details
This section provides detailed information regarding the LivePerson Key Messaging Metrics API, including:
- Request Body Example: Shows the structure of the API request to retrieve relevant agent load data.
javascript:
{
"filters": {
"time": {
"from": 1573378572695, // NOW - 1 min
"to": 1573464967376 // NOW
},
"agentGroupIds": [
"1111111111" // Offshore group ID
],
"agentSkillIds": [
"2222222222" // Destination skill ID
],
"userTypes": [
"HUMAN"
],
"effectiveAgentStatus": [
"ONLINE"
]
},
"includeAgentMetadata": "true",
"metricsToRetrieveCurrentValue": [
"agent_load",
"active_conversations",
"assigned_conversations",
"agent_current_status",
"agent_current_status_start_time",
"agent_current_status_reason",
"agent_current_status_reason_start_time"
]
}
- Response Payload Example: Explains the response structure and highlights fields used for decision-making in the bot logic.
Fields with // Highlighted
comment are necessary for bot logic decision-making.
javascript:
{
"agentViewRecords": [
{
"agentId": "2434634412", // Highlighted
"agentGroupId": -1,
"agentCurrentStatus": "ONLINE",
"agentCurrentStatusStartTime": 1597063917599,
"agentCurrentStatusReasonId": "NA",
"agentCurrentStatusReasonStartTime": 1597063919759,
"activeConversations": 4,
"assignedConversations": 4, // Highlighted
"agentLoad": 0.133, // Highlighted
"onlineDuration": 6555810,
"loginDuration": 6555810,
"avgWaitTime": 71470.5,
"avgWaitTimeFirstResponse": 136519.0,
"avgTimeToResponse": 68209.5,
"agentStatusDurationList": [
{
"agentStatus": "AWAY",
"agentStatusDuration": 2000
},
{
"agentStatus": "ONLINE",
"agentStatusDuration": 6555810
}
],
"agentMetadata": {
"agentName": "test@liveperson.com",
"agentNickname": "test@liveperson.com",
"agentLoginName": "test@liveperson.com",
"agentGroupName": "Main Group", // Highlighted
"configuredMaxSlots": 30, // Highlighted
"agentSkills": [
{
"skillId": 2434921912,
"skillName": "skill1"
},
{
"skillId": 3662292910,
"skillName": "Skill2"
}
]
}
}
]
}
This document serves as a comprehensive guide for Solution Engineers at LivePerson, empowering them with strategies to manage load distribution and skill overflow effectively across diverse brand environments.