Not available on all systems
Note: CompressedU15 is not available on all systems for capacity reasons.
Background
CompressedU contains statistics regarding:
- Logins by users to the ACD and to ACD groups
- Times spent in particular status
Information such as:
- The User
- The ACD group
- The profile the user was logged into
- The number of logins
- To the ACD
- To the group
- The number of status changes
- To the ACD
- To the group
- Times spent in various status
is provided.
Note: because these statistics are aggregated, not quite as much information is available as from the detail records. However, this aggregated data can be retained for a much longer time.
Parameters
Data is aggregated according to the settings of the parameters:
Parameter | Default Value | Purpose |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.SecondsToWait | 7200 | The minimum time after the end of a time interval before statistics are aggregated. |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.NextTimeSlice | - | The date / time of the next time slice to be calculated. This parameter can be reset to an earlier date / time in which case the system will recalculate all intervals from the given date and time again. |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.CustomCompress | The name of a stored procedure, in JTELStats2, which is called after the system statistics discussed below have been aggregated. This can be used to provide additional values in additional tables as required by a custom installation. NOTE: changing the CompressedU tables themselves is NOT supported. | |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.CustomCompress.SuppressErrors | 0 | Set to 1, to suppress errors in the CustomCompress routine. If this flag is set, the system will continue with calculations for the data, even if the custom routine throws errors. |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.EndTime | 02:50 | The end time beyond which the process will not run, and waits for the StartTime to pass before continuing. If empty, the process runs all the time. |
Portal.ACD.Statistics.JTELStats2.Compress.CompressedU.StartTime | 22:00 | The start time after which the process will start to run until the specified end time. If empty, the process runs all the time. |
Query
Two tables are provided, CompressedU15 (15 minute time slices) and CompressedUDay (day compression), aggregated according to the following query:
SELECT (Various Aggregations) FROM JTELStats.AcdStatisticsLogin2 AcdStatisticsLogin2 JOIN JTELWeb.AcdAgentStatus AcdAgentStatus ON AcdStatisticsLogin2.AcdAgentStatusID = AcdAgentStatus.ID WHERE ( INTERSECTS ( LINESTRING ( POINT( UNIX_TIMESTAMP( _Timeslice_Begin ), AcdStatisticsLogin2.UsersID ), POINT( UNIX_TIMESTAMP( Timeslice_End_Selects_ ), AcdStatisticsLogin2.UsersID ) ), geom2 ) )
This query uses a spatial index, to determine if a status change intersects the time slice in question.
Aggregations
Timestamps
When the data is aggregated, the following logic is applied regarding the timestamps:
dtCreated | dtEndStatus | Count Fields | Time Fields |
Before Timeslice | Within Timeslice | 0 | TIMESTAMPDIFF( dtTimesliceBegin, dtEndStatus ) |
Before Timeslice | After Timeslice | 0 | TIMESTAMPDIFF( dtTimesliceBegin, dtTimesliceEnd ) |
Before Timeslice | NULL | 0 | TIMESTAMPDIFF( dtTimesliceBegin, dtTimesliceEnd ) |
Within Timeslice | Within Timeslice | 1 | TIMESTAMPDIFF( dtCreated, dtEndStatus ) |
Within Timeslice | After Timeslice | 1 | TIMESTAMPDIFF( dtCreated, dtTimesliceEnd ) |
Within Timeslice | NULL | 1 | TIMESTAMPDIFF( dtCreated, dtTimesliceEnd ) |
Tables
CompressedU15
This table contains compressed statistics for 15 minute intervals.
CompressedUDay
This table contains compressed statistics for day intervals.
Fields
The field definitions are essentially the same, in both tables, only the aggregation intervals are different.
Field | Type | Contents |
ID | INT | A unique ID assigned to each record. Note, that IDs are not re-used, since if an interval is recalculated, the record is added with REPLACE, i.e. the existing record will be delteted and a new record with a new ID will be created in its place. |
ClientsID | INT | ID of client from Clients table. |
UsersID | INT | The ID of the user from the Users table. |
UsersProfilesID | INT | The ID of the user profile from UserProfiles in which the agent was logged in. |
AcdGroupsID | INT | ID of the ACD group, from the AcdGroups table. |
dtIntervalStart | DATETIME | Date and Time of the start of the interval. |
UsersUID | VARCHAR(64) | The UsersUID field. |
UsersName | VARCHAR(64) | The Users Name. |
UsersFirstName | VARCHAR(64) | The Users FirstName. |
UsersProfilesName | VARCHAR(64) | The UsersProfiles Name. |
AcdGroupsName | VARCHAR(64) | The Name field from the AcdGroups table, as configured when the compressed statistics were created. |
Login_Count | INT | bLoggedIn = TRUE, number of status changes within the timeslice. |
Login_Time | INT | bLoggedIn = TRUE, number of seconds within the timeslice. |
Logout_Count | INT | bLoggedIn = FALSE, number of status changes within the timeslice. |
Logout_Time | INT | bLoggedIn = FALSE, number of seconds within the timeslice. |
InLocation_Count | INT | bInLocation = TRUE, number of status changes within the timeslice. |
InLocation_Time | INT | bInLocation = TRUE, number of seconds within the timeslice. |
Calls_Count | INT | bCalls = TRUE, number of status changes within the timeslice. |
Calls_Time | INT | bCalls = TRUE, number of seconds within the timeslice. |
VoiceMail_Count | INT | bVoiceMail = TRUE, number of status changes within the timeslice. |
VoiceMail_Time | INT | bVoiceMail = TRUE, number of seconds within the timeslice. |
Outbound_Count | INT | bOutbound = TRUE, number of status changes within the timeslice. |
Outbound_Time | INT | bOutbound = TRUE, number of seconds within the timeslice. |
Fax_Count | INT | bFax = TRUE, number of status changes within the timeslice. |
Fax_Time | INT | bFax = TRUE, number of seconds within the timeslice. |
Callback_Count | INT | bCallback = TRUE, number of status changes within the timeslice. |
Callback_Time | INT | bCallback = TRUE, number of seconds within the timeslice. |
Pause_Count | INT | bPause = TRUE, number of status changes within the timeslice. |
Pause_Time | INT | bPause = TRUE, number of seconds within the timeslice. |
SMS_Count | INT | bSMS = TRUE, number of status changes within the timeslice. |
SMS_Time | INT | bSMS = TRUE, number of seconds within the timeslice. |
ManualPostCall_Count | INT | bManualPostCall = TRUE, number of status changes within the timeslice. |
ManualPostCall_Time | INT | bManualPostCall = TRUE, number of seconds within the timeslice. |
EMail_Count | INT | bEMail = TRUE, number of status changes within the timeslice. |
EMail_Time | INT | bEMail = TRUE, number of seconds within the timeslice. |
Ticket_Count | INT | bTicket = TRUE, number of status changes within the timeslice. |
Ticket_Time | INT | bTicket = TRUE, number of seconds within the timeslice. |
Chat_Count | INT | bChat = TRUE, number of status changes within the timeslice. |
Chat_Time | INT | bChat = TRUE, number of seconds within the timeslice. |
Holiday_Count | INT | bHoliday = TRUE, number of status changes within the timeslice. |
Holiday_Time | INT | bHoliday = TRUE, number of seconds within the timeslice. |
Other_Count | INT | bLoggedIn = TRUE number of status changes within the timeslice. |
Other_Time | INT | bLoggedIn = TRUE number of seconds within the timeslice. |