The order that leads are selected for dialing is to be frank a complex one as there are multiple overlapping factors (and sometimes contradictory factors) that control in what order leads are dialed.
This article attempts to shed some light on the lead ordering.
Standard Prioritisation and Callback dates
Lets start with the simple rules and how Noojee works by default.
So what leads are considered to be eligible for dialing.
- new leads (no Disposition has yet been set)
- leads with a callback date which is in the past
The 'past' being anytime before 'right now'.
Leads that have been 'finalised' (closed) are never considered for dialing.
Once the list of 'available' leads is selected then the leads need to be prioritised.
Leads are priorities based on (the order is important)
- Priority
- Callback Date
New leads by default have a priority value of '4' all other leads will have a priority based on the last disposition set on the lead.
Note: if a lead is ever set to a disposition of type 'Client Approved Callback' then the priority of the disposition will never be lowered (where a priority of '1' is higher than a priority of '6').
Having determined a leads priority the dialer will start by dialing all leads with the highest priority (a lower no. is a higher priority).
If more than one lead has the same priority (almost always) then the leads Callback Date is used.
New leads don't normally have a callback date.
For the purposes of comparing a new leads callback date with a lead that has a callback, the new lead is always considered older.
This means that new leads will be dialed after callbacks that have the same priority.
How priorities change
Over the life cycle of a lead its Priority will change as will its Callback date.
Every time a lead is called, its Callback Date will change and its priority may change.
Disposition Priorities
Each defined disposition has an associated priority. When an agent select a disposition at the end of a call, the disposition's priority will be used to update the leads priority.
So essentially every call has the potential to change a leads priority.
Changing a disposition via the Call Editor or the Noojee API can also have the same results.
Client Approved Callbacks
Leads which become 'Client Approved' have special rules for their disposition. Leads reach this state if they are ever dispositioned with a disposition of type Client Approved Callback.
The special rule is that the leads priority can never have their priority lowered (where 1 is a high priority) once they are Client Approved.
A simple example:
Agent calls customer. Customer asks agent to call back tomorrow at 10am. Result, Lead becomes Client approved and priority set to 2.
At 10 am the agent calls the customer but the customer doesn't answer. The agent dispositions the lead with a 'No Answer' which would normally set the priority to 6, but because this is a Client Approved lead the priority remains at 2.
Changes to the Callback date
This one is fairly self explanatory. Ever time an agent calls a lead we set a new Callback Date on the lead.
Callback dates can also be changed by the Call Editor and the Noojee API and trickle feed.
Last In First Out
Noojee's dialer uses a Last In - First Out method for dialing.
Once two leads with the same priority have been selected then the one with the must current date will be dialed.
This means that Callbacks that a callback date that was set for 1 second ago will be dialed before a callback that was set for 1 hour ago.
Implications of Last In First Out
In the real world you don't always have enough agents to dial every lead when the callback is due. In some circumstances you might even get hours or days behind in your callbacks.
At some point in time the Callbacks become stale. For example if you have a callback set for 10am and its now 12pm then the customer isn't likely to be still waiting for the call.
In this case, your better off dialing a callback which is due right now as you are likely to get a better sales response.
Once your team catches up with the 'current' callbacks the dialer will automatically start working it's way back through the older callbacks.
How to prioritise New Leads
If you are using one of Noojee's API to directly inject leads into a Campaign you may actually want to prioritise New leads.
For example if you have a Web form through which an customer makes an enquiry then it would be great to call them whilst they are still on the website.
In this scenario Noojee's dialer is able (on average) to dial the customer back within about 30 seconds of the Customer clicking the enquiry button.
Of course you need to have enough agents available to handle the volume of web leads that your site generates.
In these cases you want New Leads to be handled as a priority.
To ensure these leads are dealt with rapidly you want to set new leads to a high priority and also set the callback date to 'now'.
In these cases you probably want to set your new leads with a priority of '1' and a callback date/time of 'now'.
Virtual Allocations
Now the fun begins. Virtual Allocations add in a whole new level of power and complexity.
See an overview of Virtual Allocations.
Virtual Allocations allow you to combine multiple allocations into a single uber Allocation.
When you combine multiple allocations, you must specify a 'ratio'. The ratio dictates what percentage of leads are taken from each allocation.
This essentially breaks prioritisation of leads in that each member Allocation is considered separately. Leads are pull from each Allocation based on their priority within their Allocation and then are sent to the dialer based on their Allocations ratio.
This means that you can be dialing very old leads coming out of one allocation while another member allocation has fresher leads.
You can overcome this to some extent by turning down the Ratio on the Allocation that you know has older leads.
Call Scheduler
Some times you just need to break the prioritisation of leads. The Call Scheduler allows you to do this but there are consequences.
The Call Scheduler essentially resets the Callback dates of a block of leads.
The most common use of the Call Scheduler is when you run out of leads.
The call scheduler allows you to grab a block of callbacks which aren't yet due and drag them to 'now'. In doing so you reset all of the callback dates on these leads to 'now'.
The result is that any 'Last In/First Out' ordering is lost. After all, by moving the leads you have just told the system that you want to dial them now.
Lead Caches
Whilst not directly related to call prioritisation, the dialer's lead caches do affect when a lead gets dialed and to some extent the order a lead gets dialed in.
The dialer's Lead Caches affects order when a leads priority or callback date change between cache refreshes.
Priorities and call back dates can change via the Call Editor, an Agent dispositioning a lead and (perhaps more importantly) the Noojee API and the trickle feed when injecting new leads or update existing leads.
The dialer uses the Cache to ensure consistent high performance. The cache is reloaded every 60 seconds or so and the dialer then operates out of the cache. When the cache is loaded it is loaded with the highest priority leads as per the discussions above. Essentially for the next 60 seconds the dialer ignores any new or updated leads. New/updated leads will only considered for dialing when the cache next refreshes.
Without going through the maths, this means that on average a new/updated lead will wait 30 seconds to be dialed, but it can be as short as 1 second or as long as 60 seconds.