Search This Blog

2012-02-27

Genesys Report Administration - Handling of Deleted Agent


Product: Genesys
Component: Configuration Manager, Stat Server, DMA, CCA

Call center is one of the industry with high turnaround in HR in term of agents. Therefore, it is crucial to design a business process to handle this situation, and will not degrade the Genesys system performance

Facts to consider
1. If agent user account is left in CME, and unused, Stat Server and DataSourcer will work actively to gather its statistics. Server utilization impacted, and waste of space in DATAMART database
2. If agent user account is disabled in CME, the situation still same. Stat Server and DataSourcer are still gathering its stat. Same result as above, with the extra security control see by supervisor
3. If agent user account is disabled and set to no privilege (regardless enable and disable), then Stat Server will get privilege error, and DataSource will still populate a value into database. Although Stat Server save time in gathering statistics, but overhead in error handling
4. If agent user account deleted from CME, custom reports which designed to pick custom property from CME will not able to display historical data for that agent. This does reduce the load in Stat server, DataSourcer, and save storage in DATAMART
5. If agent user account re-created many times in CME, CCA reports will display the agent name multiple times. Custom reports must be designed to handle this situation. This does reduce load in Stat Server and DataSourcer. Moreover, save space in DATAMART

So the recommended setup is as follow
1. In CME, create a folder to keep old agent login for 1 year. The PBX agent login will be removed, but account can be reused if he returned
2. In CME, create a folder to hold agents pending for deletion. Once the agent deleted, Stat Server, and DataSourcer will not gather its statistics
3. In database, create a custom table to hold custom properties of agent, such as PBX login, e-mail address, external login
4. Ensure custom report does not select from CME tables (config database cfg_person, cfg_agent_login), such as employee_id, login_code, address_line1. These information are not store in ODS, or DATAMART (in CCA module)
5. If custom report needed, create a custom table to store these columns
5.1. Create a process to sync the data daily (or hourly) from cfg_person, cfg_agent_login
5.2. The custom table must have TS_CREATE, TS_MODIFY, TS_DELETE, dbid, tenant_dbid (if multiple PBX)
5.3. Gets agent TS_CREATE and TS_DELETE from ODS database, and refers to table OBJECT, column ADD_TIME, DELETE_TIME
5.4. Sync program will populate TS_MODIFY with local time
5.5. Create primary key suitable primary key according to custom report. My recommendation is dbid, username, and add_time
6. The sync program can be written as shell script, database store procedure (and database job), or regular programming (C#, Java)
7. In the custom reporting, join with this custom table and always ensure TIME_KEY or BEGIN_TIME is within ADD_TIME and DELETE_TIME (if not null), or larger than ADD_TIME (if DELETE_TIME is null)

E.g.
BEGIN_TIME between ADD_TIME and DELETE_TIME
OR BEGIN_TIME >= ADD_TIME and DELETE_TIME is null

8. In DMA, click on Object tab, and double click on any object to bring up object selection screen
9. Click on the checkbox to remove the checkbox on agents which have been deleted
10. This will eliminate DataSourcer from gathering its statistics, and reduces its load
11. Nonetheless, Stat Server will still monitor the agent, so there is no improvement in reducing Stat server's load
12. Not recommend to store the historical value for the extra fields (address_line1). Only store the latest value. This is to prevent duplicate record when joining with other tables
13. If end user decided to display only active agent, create a new report to use custom view which points to O_AGENT_NO_AGG, O_AGENT_DAY, O_AGENT_WEEK, O_AGENT_MONTH, O_AGENT_QUARTER, O_AGENT_YEAR, with following criteria


CREATE VIEW Z_O_AGENT_NO_AGG
SELECT * FROM O_AGENT_NO_AGG where DELETE_TIME is null

14. If end user decided to display agents deleted in last 31 days, and active agents, then create the view with a little longer in the WHERE clause


CREATE VIEW Z_O_AGENT_NO_AGG
SELECT * FROM O_AGENT_NO_AGG where DELETE_TIME is null or DELETE_TIME >= sysdate - 31

Note: Above is for Oracle database ver 7.3 onward

15. Standard report does filter number of days in interval report. It is a hidden text box which can easily modify. If I'm not mistaken, it is 90 days

16. This view filter applies to Queue, Route Point, Calling List, Campaign, etc. Point all the report to these custom view instead of standard views


Benefits:
1. DATAMART size will not store the new statistics for deleted agent
2. Supervisor has the luxury to re-use existing ID if agent return within 1 year. The DATAMART only contains extra 0 value data for these old agents
3. Parameter screen will show up faster due to filtering of unused data, especially for agent listing
4. End user can keep track of additional columns without linking the tables to CONFIG database, which only contain real time info

Other Info:
1. It is common to have business requirement to show additional agent info configured in CME to show up in custom reports. These additional information are not store in ODS, nor DATAMART, but in CONFIG database, e.g. tables cfg_person, cfg_login_info, cfg_agent_login. Above custom table can be used to copy the columns from these 3 tables so that historical report not affected by object deletion or permission change in CME

No comments: