queue-use-pseudo-actions
Section: statserver
Default Value: true
Valid Values: true, false
Changes Take Effect: After restart
Restricts Stat Server’s use of the following mediation DN actions to unfiltered statistics defined using the CurrentNumber or CurrentRelativeNumberPercentage statistical categories:
- DNLogin
- DNActive
- DNReady
- AgentLogin
- AgentActive
- AgentReady
If this option is set to true, Stat Server enables this restriction and minimizes the possible overhead that could results in environments that contain a large number of origination DNs assigned to GroupPlaces or GroupAgents objects. If it is set to false, all statistical categories (but not filters) will be applicable to the listed actions.
The listing of objects for which interrelationships could exist form an object's compatibility group.
Statistical Type Sections
A statistical type (stat type) is a collection of actions, object types, category, and one subject that all help define the structure of a metric. Other factors may contribute to a metric’s definition, such as a time profile, an optional time range, and an optional filter, all described earlier in this chapter.
Each stat type definition consists of:
- A user-defined section name, which represents the name of the stat type.
- Configuration options that apply to that section.
Most stat type configuration options can be classified as one of the following:
- Options for core stat types
- Options for Java stat types
- Options for Formula stat types
A small number of the options serve both core and Java stat type classifications, but these options have differing permissible values. The table below lists all configuration options that you can use to define stat types. The third column in the table indicates that you can specify this option for stat types that are used in conjunction with a Stat Server Java extension.
Statistics that are based on core stat type definitions are calculated directly within Stat Server. Statistical values of Java stat types, on the other hand, are provided to Stat Server by another Genesys server, such as Interaction Server, Orchestration Server, or Outbound Contact Server.
Stat Type Configuration Options
Option | Description | Java |
---|---|---|
Objects | Specifies a list of comma-separated Stat Server object types to which statistics apply. The list must consist of objects of the same compatibility group. You must include this option in a stat type definition and specify a value.
Default Value: No default value Valid Values: Refer to Stat Server Object Types and Descriptions and Campaign Objects. Changes Take Effect: When Stat Server restarts. |
Yes |
MainMask | Specifies a list of comma-separated actions (or statuses in case of status-based Subject option in the Stat Type) that indicate which contact center events will be measured. This list comprises members from the following groups:
This option is mandatory for core stat types and you must specify one or more values. Use the wildcard (*) character to specify all actions; use the logical NOT (~) character to exclude the action it precedes. Use parentheses around each action (or status) that you want Stat Server to exclude from consideration of being filtered. You cannot, however, use parentheses in conjunction with * or ~. For example:
Please note that the logical NOT (~) character does not work with aliases for the group of actions, such as CallWait on mediation DNs. To exclude the whole group, each member should be excluded explicitly. For example:
If a filter were applied to a statistic having this MainMask designation, Stat Server would only apply the filter to CallInbound actions. CallOutbound actions would continue to contribute to the tally of this statistic unfiltered. It is also possible to use the * and ~ characters in selective filtering. Default Value: No default value Valid Values: Refer to Stat Server Actions, Object Statuses, and Campaign Operational Actions for a listing and description of these actions and statuses. Changes Take Effect: When Stat Server restarts. |
|
RelMask | Specifies a list of comma-separated actions (or statuses in case of status-based Subject option in the Stat Type) that indicate the superset of contact center events against which the listing of actions (or statuses) provided in the main mask will be measured. This list comprises members from one of the following groups:
Specifying this option is not mandatory, but if you do use it, you must supply one or more values. Use the wildcard (*) character to specify all actions; use the logical NOT (~) character to exclude the action it precedes; and, use parentheses around each mask that you want Stat Server to exclude from consideration of being filtered. You cannot, however, use parentheses in conjunction with * or ~. Please note that the logical NOT (~) character does not work with aliases for the group of actions, such as CallWait on mediation DNs. To exclude the whole group, each member should be excluded explicitly. For example:
Default Value: No default value Valid Values: Refer to Stat Server Actions, Object Statuses, and Campaign Operational Actions for a listing and description of these actions and statuses. Changes Take Effect: When Stat Server restarts. |
|
Category | Informs Stat Server how to calculate statistics. This section is mandatory for both core and Java stat types. You must supply one and only one value.
Default Value: No default value Valid Values:
Changes Take Effect: When Stat Server restarts. |
Yes |
JavaSubCategory | The name of the Java subclass that implements statistic calculation.
Default Value: No default value Valid Values: String specified in the following format: jarfile:subclass Changes Take Effect: When Stat Server restarts. |
Yes |
Subject | Specifies the subject type for statistics calculation that, when changed, affects the statistical value. This section is mandatory for core stat types and you must supply one and only one value.
Default Value: No default value Valid Values:
Refer to Statistical Subjects for a description of these values. Changes Take Effect: When Stat Server restarts. Important The AgentStatus and PlaceStatus objects were synonymous in releases 5.1, 6.0, and 6.1. However, they are independent in 6.5 and later releases. |
|
<business attribute> | Specifies business attributes that Stat Server applies as a filter during its computation of statistics. The value string is recognized as a single value only. Starting with release 7.1, Stat Server supports the MediaType business attribute. Specifying this option is not mandatory.
Default Value: No default value Valid Values: Non-empty string Changes Take Effect: When Stat Server restarts. The name of the business attribute must be a valid business attribute that is already defined to a particular tenant before Stat Server starts. This name cannot coincide with the reserved names for other Stat Server configuration options, such as Subject, Category, and Filter. Furthermore, the name must not contain special symbols (such as |, =, or ;) or spaces. Starting with the 8.5.105 release, Stat Server supports multiple business attribute values, specified as a comma-separated list for a given business attribute, in the stat type definition. Comma in the list of business attribute values is working as or in the related filter. Business attributes in different options of the Stat Type are working as different independent filters. This is applicable to all statistical categories, except Compound Categories and JavaCategory. Important
|
Yes |
ReasonStartOverridesStatusStart | Determines how Stat Server computes current-state statistics. If this option is set to no, Stat Server uses the timestamp that is affiliated with the agent’s current status, as in prior releases, to determine statistical values. If this option is set to yes, Stat Server also considers the timestamp that is affiliated with changes in reason code.
Default Value: no Valid Values: yes, no Changes Take Effect: When Stat Server restarts. Setting this option to yes enables Stat Server to provide more refined results for those circumstances in which agents designate different reasons for being in the same state. This option is applicable only to the CurrentStateReasons statistical category. The Subject has to be set to DNAction for monitoring reasons changes. |
|
UseSourceTimeStamps | For those metrics that qualify, this option specifies whether Stat Server uses the actual time that events were transmitted to Stat Server (source timestamp) or the time that Stat Server acknowledges receipt of the events (the default behavior) when calculating metric duration. Setting this option to yes enables better consistency with the metrics provided by Interaction Concentrator (ICON) and other downstream Genesys applications of ICON.
Qualifying metrics have both of the following characteristics:
Stat Server ignores a yes value for this option if the metric fails the qualification test. Default Value: no Valid Values: no, yes Changes Take Effect: When Stat Server restarts. Refer to Stat Server Timestamps for an extended discussion of Stat Server’s use of source timestamps. |
|
Formula | Enables Stat Server to compute user-specific quantities that are based on attached data communicated by TEvents. The Custom Formulas chapter is dedicated to an extended discussion of this subject. You can define a custom formula as described in the Custom Formulas section below.
A special specifier—DistByConnID—affects Stat Server’s mechanism of aggregating statistics for the call-related actions that are listed in the main mask. DistByConnID is applicable only to the limited number of statistical categories:
When the DistByConnID specifier is used in a stat type’s definition, Stat Server groups the statistic’s actions by connection ID (ConnID). In general, the contribution of a group of actions differs from that of the sum of contributions of the individual actions in that group—as is the case when DistByConnID is not specified for a statistic. For example, three agents are participating in the internal conference call. The ConnID is the same for all three agents. We want to calculate the value of the CurrentNumber statistic for the CallInternal action for the group of these agents. If DistByConnID is applied, the result is 1, otherwise the result is 3. Stat Server’s procedure of grouping actions by connection ID applies to the actions specified in MainMask for the objects that are associated with the statistic. The procedure differs for each statistical category and is described as follows:
Tip
Default Value: No default value Valid Values: DistByConnID, DCID, DistinguishByConnID, <custom formula> Changes Take Effect: When Stat Server restarts. Starting with release 8.5.102, the following features are available in formulas:
|
|
ApplyFilterAtActionEndOnly | With this option set to yes, Stat Server checks the filter on a durable action at its end and if it is true, then the whole action duration (not a sub-period while the filter was true) is used in a statistical algorithm.
This option is only taken into account for Subject=DNAction or Subject=CampaignAction and only for Growing and SlidingWindow aggregation intervals. Default Value: no Valid Values: yes, no Changes Take Effect: When Stat Server restarts. Important The ApplyFilterAtActionEndOnly specifier:
|
|
Description | Specifies a description for this stat type. Specifying this option is discretionary; Stat Server ignores any value that you set for this option. Default Value: No default value Valid Values: String of fewer than 256 characters Changes Take Effect: When Stat Server restarts. |
Yes |
DynamicOverloadPolicy | Defines actions that Stat Server may apply to a given statistic to reduce the overload. Default Value: 0 Valid Values:
Changes Take Effect: When Stat Server restarts. |
|
<any other name> | Defines a custom parameter (specific option) for the stat-type with Category set to JavaCategory. |
- If you want to change the definition of a stat type during runtime, you must first delete the entire stat-type definition and then re-create it with its new definition. Otherwise, Stat Server will recognize the change only upon restart.
- Stat Server clients may recognize other options for stat types that are not listed in the Table above. For instance, Data Sourcer requires that the AggregationType option be specified for statistics derived from a Stat Server Java extension. This information is processed by the client; Stat Server ignores such options.
Classification of Statistical Types
Statistical types can be classified in distinct groups—for example:
- Status-based statistics.
- Interaction-related statistics.
Status-based statistics reflect changes in object statuses and generally contain the word status in their names. Interaction-related statistics reflect the telephony or multimedia information applied to specific objects, and characterize the interaction flow passing through the objects. Additional statistics, such as ExpectedWaitTime and LoadBalance statistics, reflect other characteristics of the contact center that are not related to status changes or telephony object information.
In addition, you can classify statistics based on any part of their stat type definition, such as their type of filter, object, and/or subject, or on any other criteria that you specify.
Custom-Value Statistical Types
Custom-value stat types improve business data reporting by enabling you to define statistics that use formulas specific to your needs. Using your own formulas, you can create statistics that calculate average sales revenue per call and the total sales revenue for a specific time interval. The custom-value stat types that you define then become available to client applications that request them.
The format of custom-value stat types is similar to the format of Genesys-provided stat types. Custom-value stat types, however, lack the RelMask option and always contain the Formula option for which you must supply a value. At the top of this page see a description of the predefined statistical type format.
The Table below shows the statistical categories that apply to custom-value statistics.
Historical | Current |
---|---|
|
|
These categories are described on the Historical CustomValue Categories and Current CustomValue Categories pages.
Example
Suppose that you want to define a custom-value stat type that calculates the average sales revenue generated for every inbound call received by an agent. To accomplish this, create and define a new stat type section in the Stat Server Application object as follows:
- Open the Options tab of the Stat Server application.
- Create a new section and name it AverSalesAmountPerInboundCall, for example.
- Within this section, add the Objects option and set its value to Agent, Place, GroupAgents, GroupPlaces.
- Add the Category option to this section and set its value to AverageCustomValue.
- Add the MainMask option and set its value to CallInbound.
- Add the Subject option and set its value to DNAction.
- Add the Formula option and set its value to GetNumber("Price", 1) * GetSum("Amount"). (Refer to Custom Formula below for an explanation of this formula.)
- Apply the changes.
A configuration-file export of this section, as defined, appears as follows:
[AverSalesAmountPerInboundCall] Objects=Agent, Place, GroupAgents, GroupPlaces Category=AverageCustomValue MainMask=CallInbound Subject=DNAction Formula=GetNumber("Price", 1) * GetSum("Amount")
Custom Formulas
Note: Custom formulas can be requested with Subject=DNAction only.
Custom formulas define custom values from an action on the basis of attached data. Attached data can be attached to the call by different T-Server clients. An IVR might attach data to a call, for example, by collecting the numbers that callers press on their telephone keypads in response to a prompt. An agent might also attach data to a call using a desktop application. The language used in custom formulas is similar to that used in filters. Each formula is an arithmetic expression built from function calls and numeric constants, consisting of:
- Function calls. Custom formulas can use values from the key-value UserData lists received with TEvents related to Stat Server actions. Access to these values is provided by the functions listed in the Key-Value List Functions in Custom Formulas table below. Note that the list can include more than one pair with the same key.
- Operators, as well as parentheses (for suppressing standard precedence rules).
Operators in Custom Formulas Operator Description + Addition - Subtraction / Division * Multiplication ? Then (in an Inline IF) : Else (in an Inline IF) - Numeric constants.
Custom formulas always return a value of type float. The returned value is used in statistical calculations for each category.
The Table below lists functions to access key-value UserData lists. Local key-value lists function with data attached at the DN where the action occurs. Global key-value lists function with data attached at all participating DNs during the call.
Function | Description |
---|---|
Local Functions (Used for Local Key-Value List Calculations) | |
GetNumber("Key", Index) | Returns the numeric value of the occurrence of the given key as specified by Index:
When Index exceeds the total number of occurrences of the given key in the list, or the key does not occur in the list at all, the returned value is 0 (zero). Index is an optional attribute for this property. If not specified, Stat Server substitutes -1 for its value; hence, GetNumber("Key") is equivalent to GetNumber("Key", -1). |
GetMax("Key") | Returns the maximum value among all the values of pairs with the given key. When there are no such pairs, 0 is returned. |
GetMin("Key") | Returns the minimum value among all the values of pairs with the given key. When there are no such pairs, 0 is returned. |
GetSum("Key") | Returns the sum of all the values of pairs with the given key. When there are no such pairs, 0 is returned. |
GetAver("Key") | Returns the average of all the values of pairs with the given key. When there are no such pairs, 0 is returned. |
GetList( <List>, "Key", "Value" ) | Returns a list of data and can be used in other functions that are able to process any list of data. Example: MyFilter1=PairExists( GetList( UserData, "key1" ), "key2", "*" ). |
IsNull( <Parameter> ) | Returns true or false. The parameter can be one of the following: UserData, ExtensionReasonCode (Reason), Reasons, or Extensions. |
Note: Starting with release 8.5.102, GetAver, GetSum, GetMin, GetMax, and GetNumber are applicable not only to UserData but to any key-value list attributes: UserData, Reasons, ExtensionReasonCode (Reason), Extensions, System, or a list returned by the GetList function. | |
Global Functions (Used for Global Key-Value List Calculations) | |
GetGlobalNumber("Key", Index) | Returns the numeric value of the occurrence of the given key, attached at any DN, which is a member of the call, as specified by Index:
When Index exceeds the total number of occurrences of the given key in the list, or the key does not occur in the list at all, 0 is the returned value. Index is an optional attribute for this property. If not specified, Stat Server substitutes -1 for its value; hence, GetGlobalNumber("Key") is equivalent to GetGlobalNumber("Key", -1). |
GetGlobalMax("Key") | Returns the maximum value among all the values of pairs, attached at any DN, which is a member of the call, with the given key. When there are no such pairs, 0 is returned. |
GetGlobalMin("Key") | Returns the minimum value among all the values of pairs, attached at any DN, which is a member of the call, with the given key. When there are no such pairs, 0 is returned. |
GetGlobalSum("Key") | Returns the sum of all the values of pairs, attached at any DN, which is a member of the call, with the given key. When there are no such pairs, 0 is returned. |
GetGlobalAver("Key") | Returns the average of all the values of pairs, attached at any DN, which is a member of the call, with the given key. When there are no such pairs, 0 is returned. |
Example 1: Suppose that you want to multiply 99.99 by the sum of all the values of key-value pairs with key "Amount". To do so, enter the following formula:
99.99 * GetSum( "Amount" )
Example 2:
To count interactions that have been placed by an agent in an Interaction Queue the following stat type can be used:
Category=TotalCustomValue
Objects=Agent
MainMask=CallInbound,CallOutbound,CallInternal
Formula=PairExists( System, "Operation", "place_in_queue" ) ? 1 : 0
Subject=DNAction
GroupBy Feature
Starting with release 8.5.103, Stat Server supports the GroupBy stat type specifier. GroupBy defines the mapping of an action to a group. Each action belongs to only one group at any moment of time.
GroupBy statement is the comma separated expression list. An expression can be of types:
- bool, for example the PairExists function.
- float and int, for example GetNumber, GetMin, GetMax, and other functions from the Key-Value List Functions in Custom Formulas table.
- string, for example the GetString function.
The result value for each group is calculated individually and is defined by Category. A special token null, which indicates an absence of a key, is a possible value for an expression.
There are three optional specifiers that can be used with GroupBy in stat types:
- OrderBy
OrderBy is the comma separated list of tokens. Each token is a positive or negative integer, that refers to an index of the element in the GroupBy expression.
If OrderBy is not provided, the groups come unordered.
Use the minus (-) sign to sort in descending order.
- RowCount
RowCount is an integer stat type specifier that allows you to limit the number of returned groups. Its valid values are from 0 (zero) to 2147483647. If RowCount is not specified, the default value of 2147483647 is used.- Note that, in some scenarios, Stat Server can ignore the RowCount set limit when loading saved aggregate data from backup files, resulting in additional groups being restored.
- GroupByColumns
GroupByColumns specifies column names, corresponding to GroupBy. Stat Server sends this information to its clients in the GroupByColumns key in the embedded key-value list, associated with GroupBy StatType.
- Only the DNAction Subject is allowed for GroupBy.
- GroupBy is not compatible with DistByConnID in formulas.
- Legacy clients, such as CCPulse+, do not support GroupBy.
- Filters can be used in combination with GroupBy.
- GroupBy stat types are serialized into/from backup file, as well as other statistics.
- GroupBy is supported with old (dynamic) API as well.
The following categories cannot be used with GroupBy:
- CurrentState
- CurrentStateReasons
- CurrentTargetState
- JavaCategory
- ServiceFactor1
- TotalNumberErrors
- EstimWaitingTime
- LoadBalance
- EstimTimeToComplete
- Formula
- ExpectedWaitTime2
- CurrentDistinctNumber
- TotalDistinctTime
GroupBy cannot be used with the following statistics:
Categories | Object | Subject | Action |
---|---|---|---|
CurrentNumber | Campaign | CampaignAction | RecordsNotProcessed |
CurrentNumber | CallingList | CampaignAction | RecordsNotProcessed |
CurrentNumber | Campaign | CampaignAction | RecordsScheduled |
CurrentNumber | CallingList | CampaignAction | RecordsScheduled |
If the queue-use-pseudo-actions configuration option is set to true, GroupBy cannot be used with the following statistics:
Categories | Object | Subject | Action |
---|---|---|---|
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | CallWait |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | AgentLogin |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | AgentActive |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | AgentReady |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | DNLogin |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | DNActive |
CurrentNumber | Queue, RoutePoint, GroupQueues | DNAction | DNReady |
CurrentRelativeNumberPercentage | Queue, RoutePoint, GroupQueues | DNAction | any of the above actions |
Example 1.
If you want to know the total time each agent was active while logged into a queue, you can use the following stat type:
Category = TotalTime
Objects = Queue, GroupQueues
Subject = DNAction
MainMask = AgentActive
GroupBy = GetString(System, "AgentID")
For the above statistic you will get a result, similar to below:
Total value: | 120 seconds |
Agent_1 | 25 seconds |
Agnet_2 | 50 seconds |
Agent_3 | 45 seconds |
Example 2.
If you want to know how many calls came from each customer on some Agent Group, assuming that the customer name is attached as User Data in the customer_name key, you can use the following stat type:
Category = TotalNumber
Objects = GroupAgents
Subject = DNAction
MainMask = CallAnswered
GroupBy = GetString(UserData, "customer_name")
For the above statistic you will get a result, similar to below:
Total value: | 10 |
Customer_1 | 3 |
Customer_2 | 5 |
Customer_3 | 2 |
Example 3.
If User Data contains some additional information about customers, like country and city in corresponding keys and you want to get calls distribution for these parameters, you can use the following stat type:
Category = TotalNumber
Objects = GroupAgents
Subject = DNAction
MainMask = CallAnswered
GroupBy = GetString(UserData, "customer_name"), GetString(UserData, "country"), GetNumber(UserData, "city")
For the above statistic you will get a result, similar to below:
Total value: | 10 | ||
Customer_1 | United States | New York | 3 |
Customer_2 | Canada | Toronto | 5 |
Customer_3 | United States | San Francisco | 2 |
If you need to order resulted groups by country (the second item in a group) in ascending order add OrderBy=+2 to the stat type definition.
If you need to see only first 2 groups, add RowCount=2 to the stat type definition.
DistinguishBy
Starting with release 8.5.104, Stat Server supports the DistinguishBy stat type specifier to prevent duplicate counts for the CurrentNumber statistical category, based on the action's content.
Stat Server applies an expression, defined by DistinguishBy, to any action in the MainMask. Therefore, Stat Server maps an action to a group.
- Only the DNAction Subject is allowed for the DistinguishBy specifier.
- The DistinguishBy specifier is only supported for the CurrentNumber statistical category.
- Formula=DCID is ignored, if specified in addition to DistinguishBy.
- The GroupBy specifier is ignored, if specified in addition to DistinguishBy.
- The DistinguishBy specifier can also be used with the dynamic (old) API.
Example 1.
The following statistic calculates the number of agents associated with a GroupQueues via the login into a mediation DN, which belongs to this GroupQueues. The agent, logged into multiple queues, is counted only once. Make sure, that the [statserver]/queue-use-pseudo-actions option is set to false.
Category=CurrentNumber
Objects=GroupQueues
MainMask=AgentLogin
Subject=DNAction
DistinguishBy=GetString( System, "AgentID" )
Example 2.
The following statistic calculates the current number of distinct pairs (<interaction type>, <key value>) extracted from Handling actions on an agent group.
Category=CurrentNumber
Objects=GroupAgents
MainMask=Handling
Subject=DNAction
DistinguishBy=GetString( System, "InteractionType" ), GetNumber( GlobalUserData, "key2" )