How Does GPR Score Agents?

From Genesys Documentation
Jump to: navigation, search


GPR scores agents based on the data uploaded to the Agent and Customer Profiles or, if you are using the GPR API, on data passed in the API score request as part of the context parameter. If both are present, data from the API request takes priority over data from the Agent and Customer Profiles.

This topic explains how GPR handles various scoring scenarios, depending on your environment and your configuration settings.

Related documentation:

Default Agent Scores

If an agent belongs to the target Agent Group but GPR does not score the agent, the isAgentScoreGood and ScoreIdealAgent subroutines assign a score for that agent according to the value set for the default-agent-score configuration option.

For agents who have a default score assigned, the following KVPs reflect that value:

  • gpmAgentScore, which records the value specified in the default-agent-score option if the agent who handled the interaction had the default score. If the the AICS scoring engine calculated a score for the agent, gpmAgentScore reports the calculated score value.
  • gpmDefaultAgentScore, which records the value specified in the default-agent-score option.
  • gpmDefaultScoreUsed, which indicates whether the selected agent was assigned the default score.
  • gpmDefaultScoredAgents, which records the number of agents assigned the default agent score.

Example 1

Agents A and B log in after the scoring request is made and are each assigned the default score, which is 40. Agent A receives the interaction. The related KVPs have the following values:

  • gpmAgentScore = 40
  • gpmDefaultAgentScore = 40
  • gpmDefaultScoreUsed = 1
  • gpmDefaultScoredAgents = 2

Example 2

GPR assigns Agent C a score of 80. The default score is 40. No agents are assigned the default score. The related KVPs have the following values:

  • gpmAgentScore = 80
  • gpmDefaultAgentScore = 40
  • gpmDefaultScoreUsed = 0
  • gpmDefaultScoredAgents = 0

Score Adjustment

The GPR subroutines enable you to adjust agent scores using an Occupancy factor when URS sorts them. You control the agent occupancy setting in the agent-occupancy-factor configuration option. Scores adjusted using an agent occupancy factor are recorded in the gpmAdjustedAgentScore KVP.

Example 1

GPR returns a score of 80 for Agent A. The agent-occupancy-factor option value is 0.5. If this agent selected to receive the interaction, the agent score KVPs have the following values:

  • gpmAdjustedAgentScore = 40
  • gpmAgentScore = 80

Example 2

  • Agent A is available and has an occupancy of 80% and a score of 75
  • Agent B is available and has an occupancy of 60% and a score of 70

The following settings are configured:

  • agent-occupancy-factor = 0.5
  • use-agent-occupancy = true
  • agent-occupancy-threshold = 70%

Agent A

  • gpmAdjustedAgentScore = 40
  • gpmAgentScore = 80

Agent B

  • gpmAdjustedAgentScore = 75
  • gpmAgentScore = 75

As a result, the call is routed to Agent B

Important
This adjusted score is used only for sorting the agent scores in the ScoreIdealAgent subroutine. The adjusted agent score is not used in the isAgentScoreGood subroutine to compare the agent score with the configured threshold. The actual returned score is used.


Threshold Scores

To implement the agent holdout feature, GPR checks the score returned for the agent against the threshold value configured in the score-base-threshold option. URS calls the isAgentScoreGood subroutine to suppress routing to an agent who is in ready state if this agent does not provide an acceptable match for the interaction. This is used in conjunction with relaxation thresholds to target better-matched agents preferentially, expanding the pool of agents if the best-matched agents are unavailable.

  • See Agent Holdout Options for the complete list of options used for agent holdout and threshold settings.

Score Relaxation Timeouts

By design, URS checks the threshold relaxation ("awakens") at two-second intervals. As a result, the minimum real-world value for threshold-relaxation-timeout is 2 because the threshold relaxation is checked only every two seconds. Even though the default value for the threshold-relaxation-timeout option is 1, URS applies the threshold relaxation only at two-second intervals.

When the initial­-threshold­-timeout value has elapsed, the minimum score required to allow an agent to handle the interaction is reduced by the configured relaxation step. This relaxation step can be applied multiple times, depending on the option settings you specify.

Example 1

GPR returns a score of 50 for Agent A. The threshold and relaxation options have the following values:

  • score-based-threshold = 55
  • initial­-threshold­-timeout = 2
  • threshold-relaxation-timeout = 4
  • threshold-relaxation-step = 4

Agent A is selected after 6 seconds. The related KVPs have the following values:

  • gpmAgentScore =50
  • gpmInitialScoreThreshold = 55
  • gpmFinalScoreThreshold = 47
URS attempts for Agent A Threshold Value Result
Interaction queued and scoring completed in the same second 55 (initial threshold value) agent score (50) < threshold (55)
after 2 seconds 51 (first relaxation applied, 55-4) agent score (50) < threshold (51)
after 4 seconds 51 (no change from previous step) agent score (50) < threshold (51)
after 6 seconds 47 (second relaxation applied, 51-4) agent score (50) > threshold (47); interaction routed to agent

Example 2

GPR returns a score of 30 for Agent B. The threshold and relaxation options have the following values:

  • score-based-threshold = 40
  • initial­-threshold­-timeout = 5
  • threshold-relaxation-timeout = 2
  • threshold-relaxation-step = 5

Agent A is selected after 8 seconds. The related KVPs have the following values:

  • gpmAgentScore =30
  • gpmInitialScoreThreshold = 40
  • gpmFinalScoreThreshold = 30
URS attempts for Agent B Threshold Value Result
Interaction queued and scoring completed in the same second 40 (initial threshold value) agent score (30) < threshold (40)
after 2 seconds 40 (no change from previous step) agent score (30) < threshold (40)
after 4 seconds 40 (no change from previous step) agent score (30) < threshold (40)
after 6 seconds (initial timeout is 5 seconds, but relaxation is applied only when URS awakens) 35 (first relaxation applied, 40-5) agent score (30) < threshold (35)
after 8 seconds 30 (second relaxation applied, 35-5) agent score (30) = threshold (30); interaction routed to agent

Example 3

GPR returns a score of 35 for Agent C. The threshold and relaxation options have the following values:

  • score-based-threshold = 40
  • initial­-threshold­-timeout = 5
  • threshold-relaxation-timeout = 1 (no value specified, default value used)
  • threshold-relaxation-step = 1 (no value specified, default value used)

Agent C is selected after 10 seconds. The related KVPs have the following values:

  • gpmAgentScore =35
  • gpmInitialScoreThreshold = 40
  • gpmFinalScoreThreshold = 34
URS attempts for Agent C Threshold Value Result
Interaction queued and scoring completed in the same second 40 (initial threshold value) agent score(35) < threshold (40)
after 2 seconds 40 (no change from previous step) agent score (35) < threshold (40)
after 4 seconds 40 (no change from previous step) agent score (35) < threshold (40)
after 6 seconds (initial timeout is 5 seconds, but relaxation is applied only when URS awakens) 38

first and second relaxation applied:

  • first relaxation after initial 5 seconds
  • second relaxation after next 1 second
agent score (35) < threshold (38)
after 8 seconds 36 (third and fourth relaxations applied, 38 - 2) agent score (35) < threshold (36)
after 10 seconds 34 (fifth and sixth relaxations applied, 36 - 2) agent score (35) > threshold (34); interaction routed to agent

How the Availability Status of Agents in the Target Agent Group is Determined

URS provides agent availability information to GPR. It checks with Stat Server on the agent login status of the specified target group before making the scoring request, and adds the list of matching agents in the request field 'action_filters'.

The GetActionFilters subroutine reads the login statuses specified to be available for routing from the login-status-expression configuration option.

  • To use this functionality, set the value of the use-action-filters configuration option to false (the default value is true).

Sample scoring request showing a list of agents employee IDs in the field action_filters, where POC0x strings indicate IDs of agents with a required login status:

{ 
"token":"<api_token>",
"format_as_map":"true",
"context_id":"3600",
"log_request":"true",
"action_filters":"EMPLOYEE_ID in [\"POC01\",\"POC02\",\"POC03\",\"POC04\"]",
"context":
{
    "PR_TYPE":"Gold",
   "PR_LANG":"French"
}
}
Important
  • This architecture increases the load on URS by approximately 15%. Use the Sizing Guide to verify that you have sufficient URS bandwidth available.
  • Only alphanumeric characters, spaces, and underscores are supported in the names of Stat Server Application objects. Names including other special characters cause a malformed scoring request.
  • The EMPLOYEE_ID field should not contain the parenthesis characters ( or ). When the use-action-filters option is set to false and a scoring request contains an agent EMPLOYEE_ID value that includes ( or ), GPR returns an error.
Comments or questions about this documentation? Contact us for support!