Genesys CCPulse - Display UserData using Custom Stat and Filters

Previously, I wrote post about displaying user data in CCPulse using custom solution and user ‘‘ enquired about displaying user data using CCPulse application only.

I found two options to display user data in CCPulse

Option 1: Display User Data using Custom Stat


Step 1: Configure Custom Statistic as below

[CustomUserData]
Category = CurrentCustomValue
Formula = GetGlobalNumber(“Account”,-1)”
MainMask = *
Objects = Agent, Place, GroupAgents, GroupPlaces
Subject = DNAction

In CCPulse, configure template to display this custom statistic. Please note that this will work only if key value is numeric. To display string value, use option 2 below

Option 2: Display User Data using Filters


You need CCPulse 8.0.101.27 or higher to display user data using filters. Please find the CCPulse release notes below

CCPulse+ now displays by default only hardware or software reason codes, without User Data. A new CCPulse+ option, ReasonCodeData, in the [CustomStatistic] section enables you to control which values are displayed.

ReasonCodeData

Valid Values: Hardware; Software; Userdata
Separate with semicolons the values to be displayed. Enter all three values if you use User Data values with reason codes in Formulas or to display them in the Extended Status window or in a view.

[CustomStatistic]
ReasonCodeData=Userdata (optional values: Hardware; Software)

Previously, starting with release 8.0.000.41, CCPulse+ appended some values from User Data to the reason codes. (ER# 317914454)

To display user data ‘Account’, follow steps below

Step 1: Create Filter ‘Account = PairExist(“Account”, “*”) under [Filters] section in Stat Server

Step 2: Create statistical type [CustomAgentState] in Stat Server as below

[CustomAgentState]

Category=CurrentState
MainMask=*
Objects=Agent
Subject=DNAction

Step 3: Set CCPulse application options, set ‘ExtendedCurrentStatus’ to ‘true under [CustomStatistic]

Step 4: Add below formula to display

result.Text = state.type == "AgentState" ? GetUserData() : "";
function GetUserData()
{
var data = "";
for(var e = new Enumerator(state.CallData.Filter("Key=Account")); !e.atEnd(); e.moveNext())
  { if (e.item().Key=='Account')
      data = e.item().Value;
   }
   return data;
}