Transferred Emails Get Sent To End of Queue
- Set integrated agent's concurrent_task_limit for EIM queue to 1
- Send 4 emails "PriorityMail" from email@example.com to firstname.lastname@example.org
- Use integrated agent "goofy" for this scenario.
Suppose a customer emailed the "Parts" alias, but should have instead emailed the "Support" alias. Let's track the life of this email from EIM retrieval to Response.
- EIM retrieves mail from server, inserts at end of "Parts" queue as per FIFO logic.
- After 18 hours in queue, email is routed to an agent in "Parts." Agent realizes that this mail should have been sent to the "Support" alias, and transfers the email to the "Support" queue.
- Email is then inserted at end of Support queue as per FIFO logic.
- Email must then wait another 12 hours in queue before being routed to an agent in "Support."
- Agent responds to customer.
The problem here is that the business has a 24 hour SLA for response to customers. In this case, a response was not received for 30 hours due to the email waiting through two separate queues before being handled. With the current implementation of EAAS/MR PIM, there is no way for EIM to automatically flag these emails to be handled before others. However, with some agent training and an ECC variable, this can be handled through scripting.
Agents have the ability of setting a Priority when they transfer an email. This value is written to the egpl_casemgmt_activity table, but EAAS does not send this to UCCE by default. We will create an ECC variable to take this value and include it in the NEW_TASK message sent to the MR PIM. We can use this "Prioritized Transfer" to address the above problem scenario. Items must be configured on the EIM side as well as the UCCE side.
ECC variables must be created in Unified CCE before they can be associated with an EIM/WIM queue.
- From the ICM Configuration Manager > Expanded Call Variable List Tool, add user.cim.activity.priority.
- Modify ICM routing script to have a separate Queue-to-SG node with priority 1.
- Add an IF node to check user.cim.activity.priority. If 1, send to higher priority Queue-to-SG node. Otherwise, send to standard Queue-to-SG node with default priority 5.
- Confirm that the value for FIFO_ALGO_TO_SAVE_EMAIL_ENABLE in the file \CIM\eService\config\ipcc\egicm_configuration.properties is set to “false”. If scripts utilize “wait” nodes, this is likely already disabled, but should be checked just to be certain.
Note: All queries should be done on the eGActiveDB.
- Run the following query on the egpl_casemgmt_activity table to get all the activity attributes available in the table.
From here we can see that ACTIVITY_PRIORITY is the column we want to match.
- Run the following query on the egicm_call_variable table to identify the call variable IDs that are already in use. Be careful not to overwrite one of the existing call variables!
select * from egicm_call_variable
- Run the following query on the egicm_call_variable table to add the new call variables.
Insert into EGICM_CALL_VARIABLE VALUES (Call_Variable_ID, ‘Call_Variable_Name’, ‘Call_Variable_Description’)
- Call_Variable_ID: The ID of the call variable. Make sure that you do not use a call variable ID that is already in use.
- Call_Variable_Name: This name should match the exact name (case-sensitive!) of the activity attribute you got from the sp_help egpl_casemgmt_activity in Step 1.
- Call_Variable_Description: The description of the call variable. This is optional information.
For example, the query should look like:
Insert into EGICM_CALL_VARIABLE VALUES (1003,'ACTIVITY_PRIORITY','Activity Priority')
- Log in to the Administration Console > Workflow > Queues > Expanded Call Variables tab, and add the UCCE ECC variable to the appropriate queue. Set the "Data" dropdown to the "Call_Variable_Name" you inserted in the above step.
- Log in to the System Console and cycle the EAAS process.
- Send 4 emails to EIM. Log in an integrated agent with max concurrent task limit set to 1.
- Emails initially come into EIM with no priority, so a 0 is sent to the MR PIM for the ECC variable created (user.cim.activity.priority)
12:10:40 pg2A-pim2 Trace: [ 2156]Application->PG: Message = NEW_TASK; Length = 102 bytes DialogueID = (4) Hex 00000004 SendSeqNo = (1) Hex 00000001 MRDomainID = (5003) Hex 0000138b PreviousTask = -1:-1:-1 PreferredAgent = Undefined Service = (0) Hex 00000000 CiscoReserved = (0) Hex 00000000 ScriptSelector: 8000 ECC Variable Name: user.cim.activity.id Value: 1045 ECC Variable Name: user.cim.activity.priority Value: 0
- The agent then transfers the activity from the EIM agent console and sets the priority to 1.
- EIM writes this to the ACTIVITY_PRIORITY column in the database, and EAAS sends the value to MR PIM as user.cim.activity.priority:
12:14:01 pg2A-pim2 Trace: [ 2156]Application->PG: Message = NEW_TASK; Length = 102 bytes DialogueID = (8) Hex 00000008 SendSeqNo = (1) Hex 00000001 MRDomainID = (5003) Hex 0000138b PreviousTask = -1:-1:-1 PreferredAgent = Undefined Service = (0) Hex 00000000 CiscoReserved = (0) Hex 00000000 ScriptSelector: 8000 ECC Variable Name: user.cim.activity.id Value: 1045 ECC Variable Name: user.cim.activity.priority Value: 1
- After the transfer, the agent receives another default priority email.
- Default Priority emails in queue: 2
- High Priority emails in queue: 1.
The transferred (now priority=1) email has since arrived in the Priority=1 queue.
- The agent then completes the second mail.
- The higher-prioritized queue's transferred email is then received before the remaining emails in the default priority queue.
Through the use of Priority variables and scripting, transferred emails can avoid waiting through multiple FIFO queues to be processed.