Queue Cache

Queue Adapter Cache methods and configuration for NICE inContact Integrations

Last published at: September 30th, 2022
Delete

Integration Specific Feature

This feature only applies to Harmony and NICE inContact integrations.



Overview

OpenMethods implemented queue caching to Queue Adapter to help queue Digital Interactions within the NICE inContact and Harmony integration. Before these enhancements, there was no logic for queuing Digital Interactions. With limitations to the inContact work items, digital interactions would be lost if the amount reached a certain threshold, restrained by inContact's ability to process more. The new processing allows the Queue Adapter to handle requests in a first in and first out order.


Supported Telephony Platforms

  • Nice InContact Central
  • Nice InContact UserHub


Supported Releases

  • Queue Adapter - 6.9.3
  • No dependency on other components



Configuration


 1. Cache Report

Cache information is updated in the Oracle Serice Cloud report, We have to configure the site Url and Credentials to read and update the report.

  • Site Url, User Name, and Password - This is the same as we configured in the Site Interface section of the Queue Adapter configuration.

2. Chat  and

3. Email

  • Chat Queue Mapping and Email Queue Mapping
    • Map the OSvC queue to the InContact Point of Contact
    • Persistent Queue Point Of Contacts must be appended with "P-".
    • Point of contact without P- is considered a Real-Time queue.
  • Prioritize Chat -  Enabled ( default ) - Cached Chats will be processed first then only Cached Emails will be processed.
  • Chat Retry Delay - 5000 Milliseconds - If the queue capacity limit is reached or submit chats are failed, then wait for 5 seconds before retrying.
  • Email Retry Delay - 5000 Milliseconds - If the queue capacity limit is reached or submit emails is failed, then wait for 5 seconds before retrying



Cache Location:


Persistent queue and Real-Time queue interactions are cached in their respective folders.

Chats

  • Persistent Queue - C:\ProgramData\OpenMethods\QueueAdapter\Private\InContactCentral\ChatCache_PQ
  • Real-Time Queue - C:\ProgramData\OpenMethods\QueueAdapter\Private\InContactCentral\ChatCache_RT




Email

  • Persistent Queue -    C:\ProgramData\OpenMethods\QueueAdapter\Private\InContactCentral\EmailCache_PQ
  • Real-Time Queue -  - C:\ProgramData\OpenMethods\QueueAdapter\Private\InContactCentral\EmailCache_RT



Throttling (ACD queue capacity limit reached or any other reason the Email or Chat work-item submission is failed)

  • All the inbound chats are cached.
  • Only one email is cached and its status is updated to ‘throttle’. 
  • While in the throttling stage, Queue Adapter will continue to pull the emails in the 'initial' status and update their status to 'routing'.

The number of Emails waiting in the queue is:

  • The total emails with the status 'routing'
  • plus 1 email with the status 'throttle'
    • If there is no email with the status 'throttle' then ACD capacity is under the limit.

 The number of Chats waiting in the queue is:

  • The total number of files stored in the chat cache location.



Email Process



Email Process & Logic

  1. Run OpenMethods Email report to query for emails with status=initial
  2. Update emails with status=queuing.
  3. Update emails with status=routing before submitting the emails to the ACD.
  4. Emails are sent to the ACD.
  5. If the submission is successful, the email is updated to status=routed.
  6. If the submission is unsuccessful, the email process is updated as throttle=true.
  7. The email metadata is stored in the local disk. Only one email will be stored during throttling.
  8. After a configurable 5-second interval, the email is re-submitted until success.


NOTE: When an email is throttled, Queue Adapter stops submitting emails with a status of "routing" until the email marked as throttle status is successfully routed. New emails will stay in a "routing" status until the throttle is cleared.


If Queue Adapter is down or Restarted for any reason:

  • Emails will be processed in the following order to make sure the FIFO order of processing.
    1. The email with the status ‘throttle’ - the email which was cached when the capacity limit was reached.
    2. Emails with the status ‘routing’ - all the inflight emails when the capacity limit was reached.
    3. Emails with the status ‘queueing
    4. Emails with the status ‘initial

* This way cached emails and inflight emails will be handled before the new ones.

 


Chat Process



Chat Process & Logic

  1. New chats are received and submitted to the ACD.
  2. If chats are submitted successfully, they are not cached.
  3. If chats are submitted unsuccessfully, they are updated to throttle=true.
  4. Throttled chat metadata is cached on the local disk.
  5. The Queue Adapter will keep trying to submit the first cached chat stored in the local disk for a configurable 5-second interval.

NOTE 1: Chats that are abandoned by the end-user will be removed from the Cache, those will not be submitted to InContact. If the chat is already submitted to InContact then the Contact is removed from the InContact Queue.

NOTE 2: When submitting success, then the throttle flag is set to false. All the chats in the Cache will be processed as FIFO orders. Once the Cache is cleared then the new chats are submitted.

If Queue Adapter is down and/or restarted for any reason:

  • Chats stored in the cache will be processed first
  • Then the new chats.


Cache Report

  • Queue Adapter updates the Cache information in the Oracle Service Cloud custom object.
  • Chat is updated with total chats cached in the local storage.
  • Email is updated with total numbers of incidents with om_status= 'routing' and 'throttle'.
  • Custom Object and Cache Report files are included in the Queue Adapter installation package.


Custom Object

  • Name - QueueAdapterCache
  • Installation steps:
    • Login to OSvC .Net console.
    • Navigate to Database under Configuration.
    • Double click the "Object Designer" then click Import.
    • Select the package "QueueAdapterCache.zip" from the Queue Adapter installation package.
    • Once the import is successful, the new object will be located under the "OpenMethods" folder. double click and open the object and click "Extra Options" from the button bar and Under the Permission section select Create, Read, Delete, Update permissions to the profile to where the Connect user belongs to.
    • Click the "Deploy" button and select "Deploy Immediately" to deploy the custom object.
    • The deployment process will take a few minutes and then we will get the Success message.


Custom Report

  • Name - QueueAdapterCacheReport
  • Installation steps:
    • Login to OSvC .Net console.
    • Navigate to Reports Explorer under Analytics.
    • Double click "OpenMethods".
    • Click "New Report" from the button bar.
    • Click "Import Existing Report Definition".
    • Select the file "QueueAdapterCacheReport.xml".
      • Before that, please unzip the file "QueueAdapterCacheReport.zip" from the Queue Adapter installation package.
    • Click "Save" to save the report to the OpenMethods folder under Public Reports. Enter the Report name as "QueueAdapterCacheReport".
    • Once it is saved. Close the report designer.
  • Report View:
    • Double click to open the report to view the report. 
    • The report contains 8 columns.
    • Email Real-Time throttle - (Yes/No) - The value would be Yes when the Real-Time queue capacity is reached otherwise it is No.
    • Email Real-Time Queue - The value would be the total number of incidents with 'routing' and/or 'throttle' status which are queued in the Queue Adapter for processing and will be submitted to the Real-Time queue.
    • Email Persistent throttle - (Yes/No) - The value would be Yes when the Persistent queue capacity is reached otherwise it is No.
    • Email Persistent Queue - The value would be the total number of incidents with 'routing' and/or 'throttle' status which are queued in the Queue Adapter for processing and will be submitted to the Persistent queue.
    • Chat Real-Time throttle - (Yes/No) - The value would be Yes when the Real-Time queue capacity is reached otherwise it is No.
    • Chat Real-Time Queue - The value would be the total number of chats cached after the Real-Time queue capacity is reached.
    • Chat Persistent throttle - (Yes/No) - The value would be Yes when the Persistent queue capacity is reached otherwise it is No.
    • Chat Persistent Queue - The value would be the total number of chats cached after the Persistent queue capacity is reached.



Standards and Best Practices


Standard Practice



  • Queue Adapter supports the following standard practices:
    • Emails can be routed to Persistent Queues and/or Real-Time Queues
    • Chats can be routed to Persistent Queues and/or Real-Time Queues
    • For Example:
      • Chats from Oracle's queue name "Support" can be routed to InContact's Persistent queue.
      • Chats from Oracle's queue name "Service" are routed to InContact's Real-Time queue.


Best Practice



  • Emails would be configured as Persistent Queues
  • Chats would be configured as Real-Time Queues

Related Articles