04-24-2018 02:36 AM - edited 03-14-2019 06:08 PM
Hi guys.
There is a Contact Center based on CUCCE + IP IVR.
I would like to understand whether it is possible to implement the function of increasing the priority, if the Customer re-enters the call within the last 24 hours to the city number?
Example:
The client called the Contact Centre was in line, did not wait and hung up.
after some time, the same Client calls again and again queue.
It is necessary to raise the priority in the queue for the given Customer at a repeated call.
HDS it the table Termination_Call_Detail
select ANI, count(*) as cnt from Termination_Call_Detail where DateTime >= DATEADD (day,-1, getdate()) AND(CallDisposition=6 AND CallDispositionFlag=1) AND LEFT(ANI,2)='98' AND LocalQTime>0 group by ANI
How will I access from the ICM script to this table ?
Or there is another way?
Sincerely, Boris.
04-24-2018 10:00 AM
I would do this via the IVR. First, create a table where you read the ANI every time a call queues. If no ANI found, then write your ANI. Have the table purge every 24 hours.
david
04-24-2018 11:33 PM
@david.macias wrote:
I would do this via the IVR. First, create a table where you read the ANI every time a call queues. If no ANI found, then write your ANI. Have the table purge every 24 hours.
david
Thank you David.
I would like to do this in the existing table.
Because points to enter, very much. And I'll have to edit the all IVR script.
The idea is this: Configure the ICM routing script in this way that it does not participate in the IVR.
For example: Database Lookup Explorer creates a table and fields.
Is it possible to bring a table to an existing table Termination_Call_Detail ?
or
David is your decision, but did not want to clean the table every 24 hours.
Historical Reporting it will be necessary for business.
Sincerely, Boris.
04-25-2018 09:17 AM
Unless you've built your own app gateway or bought one, you will have limited success with using the DB Lookup node in ICM. Read the documentation about it and you'll see it's only good for very simple queries. Now, you might be able to create a view which has the information you need, but Cisco generally doesn't like you making too many changes in their DB, so I would be careful with this approach. If you want the solution which might not be the fastest path forward, but it will give you the most room to grow move this to the IVR.
david
04-25-2018 08:45 PM
I think David has given you some clues on how to do this. You definitely have to work off another database (yes, it can be on the HDS) and database table for DB lookup to work (DB Lookup cannot work on a table with a compound key).
The lookup key is going to be the ANI. What returns is whether they called and were queued but abandoned within the last 24 hours - simply by being in the table. You are going to control inserts and deletes on this special table with some intelligent SQL jobs.
You need a process (a SQL job) that is inserting rows into the table. It is doing this by looking at the RCD for queued / abandoned calls (RouterErrorCode 448) on Call Type IDs of your selection. Now you know you are only putting a row (ANI plus time stamp) for a caller that abandoned in queue.
You need a second process (another SQL job) that looks at the time stamps in the table and if it's older than 24 hours it deletes the row.
Let's say these jobs run every five minutes. One looks back into the RCD for calls that abandoned in queue in the last 5 minutes and inserts them into your special table; the other is running every 5 minutes to prune stale puppies out.
Now a call comes in - a simple DB Lookup. Is the ANI in the table? Yes - bump the queue priority. No - leave it alone.
All the sophistication is in the SQL jobs that manage this special table.
Regards,
Geoff
04-26-2018 12:31 AM - edited 04-26-2018 12:34 AM
@david.macias and @geoffThanks for answers.
Is, is to create a table DB lookup1. SQL Job1 < Insert from Termination_Call_Details to New Table for the last 5 minutes. >SpoilerIt is doing this by looking at the RCD for queued / abandoned calls (RouterErrorCode 448) on Call Type IDs of your selectionhow to make the right request ?2. SQL Job2Spoilerthat looks at the time stamps in the table and if it's older than 24 hours it deletes the row.3. ICM Script node DB lookup check Call.CallingLineID.yes, ANI - increased priorityno, - Without change priority@geoff Did I understand you correctly ?Sincerely, Boris.
04-26-2018 06:36 AM
Good answer Geoff. What happens when a caller calls in twice and hangs up in queue? I've not touched the DBLookup node in years, but from what I remember if there are two ANIs in the table, it will return no data, right? This could be solved with more SQL wizardry thought to only keep the last time the ANI called within a 24 hour period.
david
04-26-2018 06:48 AM
David,
The ANI would be the primary key, so a subsequent insert using the same ANI would certainly fail. But the lookup will not fail. You simply cannot have two rows with the same ANI.
The SQL job would have to be a little more sophisticated - look for the ANI and if found, update the time stamp. Else, insert.
Regards,
Geoff
04-26-2018 06:49 AM
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide