Originally posted by Wierdbeard65;34750
Hi,
I figured I'd pitch in as well!
Any chance you could give us a full overview of what it is you are actually trying to achieve? Are your decisions based on caller input or call-center metrics? Maybe you are referring to a database? Can you talk us through two or three typical calls and how you would handle each / change your routing?
I used to work with George in Education and I lost count of the number of times that a question about how to do something fairly specific was raised in class, which upon further investigation turned out to be a completely different question!
As you have seen, there are many customization points to choose from, if using a Handler. Add to this that many common Handler-based solutions have been rolled into the base product, or at least provided for (a good example is the ability to use attributes to dynamically allocate Workgroups etc., as pointed out by dcurrier. Another is the ability to change Skills as a call waits in the queue.) You may well find that what you are trying to do is actually provided for (at least in part, if not fully) by the base product and not require such extensive (or maybe even any) Handler work. The less you have to custom-code, the less you have to support and the smaller the risk of it all going horribly wrong (either immediately, or after an update.)
Thanks for the pitch, Wierd! I'd very much prefer to use out of the box functionality whenever possible, as reinventing the wheel is always painful and wasteful. The lack of documentation for higher level data flow and design is a huge hindrance, however.
Here's the more in depth skinny, then:
The company is going to be using ININ as a work distribution platform - calls, SMS, email, fax, Salesforce profiles, documents, etc.
Work item distribution will need to be tailored programmatically based on a large number of factors such as the calculated value of piece of work, the customer and QA ratings of an agent along various dimensions, work status vis a vis business process as tracked in various CRMs, work processing as a function of what points have previously been visited in ININ processing (eg, is this the second time a call has been transferred to a workgroup during the life of the call?), etc.
Data sources include caller input DTMF, database dips, CRM API calls and agent actions via Desktop.
Some simple use cases include (a) determining which agents are currently at work (regardless of other status) and ranking them on a curve for caller survey ratings in order to prioritize those agents for receiving high value callers, (b) examining the status of a caller in a CRM + determining the agent(s) assigned to their profile + assess where the caller is in the business process flow indicated by the CRM and IVR DTMF responses + determine whether the relevant agent(s) can take calls right now in order to route the call most effectively (eg, to the relevant agent(s) voicemail, directly to the relevant agent(s), or to a more general queue).
The current strategy involves calling a handler based assessment engine from Attendant or other handlers, passing along relevant details and data for a work item. The engine then evaluates the work item details as per business process rules and sets various attributes for the work item. Then when the work is queued for assignment (eg, ACD), another handler based distribution engine will be called to evaluate the flags set by the assessment engine as per business process rules, and make any changes necessary to route the work according to the results. This can involve adding a required skill to the call, routing to a particular agent or workgroup, altering ACD factors on the fly, etc.