...
This article attempts to shed some light on the lead ordering.
Standard Prioritisation and Callback dates
...
Eligibility
Before lead ordering is even considered, a lead must first be 'eligible' for dialing.
A lead is NOT eligible for dialing if any of the following is true
- The Allocation is 'Stopped'
- The lead is closed
- The lead is on your Private DNCR list
- The lead is outside its defined Contact Hours
- The lead's callback date is in the future
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
Lead Ordering
Once a lead becomes eligible for dialing it must then be ordered with other eligible leads to see when it will be dialed.
The order a lead is dialed in, depends on where it is in its life cycle.
Ageing Date
The Ageing Date of a lead is a key facet of the control system that decides the order in which leads are dialed.
When a lead first enters the system the Ageing Date and Creation Date are identical. This is always true except for leads that are marked as Client Approved Callbacks.
The ageing date is a measure of how 'fresh' a lead is. The system always aims to dial the freshest leads based on their Ageing Date.
Call ordering
Depending on the current state of the lead the following ordering is used when ordering leads.
The system always select the leads with the highest 'priority' and then considers the additional ordering fields as detailed in the following table which is dependant on the leads current stage in their life cycle state.
Priority | Life Cycle Stage | Sort Order | Details |
---|---|---|---|
2 | Client Approved Callbacks | Priority(asc), ‘Ageing Date(desc), Callback DateTime(desc) | When a lead is set to Callback Approved the ‘Ageing Date is reset to be equal to the Callback Date. This refreshes the lead so that on the date/time that they are due to be called they will be the freshest lead available. |
4 | Fresh Leads | Priority(asc), ‘Ageing DateTime(desc), Callback DateTime(desc) | The Callback DateTime will have no effect unless the leads are bulk imported (in which case the ‘Ageing DateTime will be identical). |
6 | Callbacks | Priority(asc), ‘Ageing DateTime(desc), Callback DateTime(desc) | The Callback DateTime will have no effect unless the leads are bulk imported (in which case the ‘Ageing DateTime will be identical). |
4 | Busy | Priority(asc), ‘Ageing DateTime(desc), Callback DateTime(desc) | The Callback DateTime will have no effect unless the leads are bulk imported (in which case the ‘Ageing DateTime will be identical). |
(asc) - ascending order, (desc) descending order.
Client Approved Callbacks (CACs)
Priority(asc), ‘Ageing Date(desc), Callback DateTime(desc)
The primary aim of Client Approved callbacks is to dial as close to the designated time as possible.
The inclusion of the Ageing Date (note we ignore time) means that we will focus on the most recently created Leads. After we identify the most recently created leads the Callback Date is used to focus on the leads that need to be dialed ‘closest to now’. If we have missed a callback by an hour, then making the caller wait another fifteen minutes is not going to make much difference. In this case it’s better to call a lead that is expecting a callback right now. Ignore the Time on the Aging Date is important to ensure that the Callback Date takes priority across the day.
Resetting the Ageing Date
CACs are unique in that setting a Client Approved Callback should ‘refresh’ a lead as it reflects renewed interest from the client.
To enable this ‘refresh’ process, when a leads is marked as Client Approved Callback, the lead's Ageing Date is set to the lead's Callback Date, giving the lead a renewed youth and the associated escalation in dial ordering.
Using the callback date to refresh the Ageing Date is important as some customers set the Callback Date to 6 months in the future and we want the leads to still be ‘youthful’ when that callback date comes around.
When a CAC is dialed, the call may result in a No Answer. In this case the Callback Date will be set according to the No Answer rules. The Ageing date however is not reset.
The result is that the CAC begins Ageing once its callback date is expired and it will continue Ageing unless it is dispositioned as a Client Approved Callback again.
Remember that a CAC is always a CAC even if its last disposition was a No Answer.
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').
Fresh Leads
Priority(asc), ‘Ageing DateTime(desc), Callback DateTime(desc).
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
For organisations that are dialing warm leads, the newest leads are always critical. For an organisation cold calling, the concept of ‘fresh’ or ‘new’ is fairly meaningless. In fact leads imported in bulk will all have the same Ageing Date.
Warm Leads
For warm leads (those injected by the Noojee API or Lead Injector) the Ageing Date will be different for each lead. As the Ageing Date is different for each lead the Callback Date will be ignored by the sort process.
The result is that for Warm leads the newest lead will always be dialed first.
Cold Calling
For bulk imported leads the Ageing Date is identical, with the result that the Callback DateTime(D) sort affects cold leads.
For Cold leads the order will somewhat randomized (we actually add a randomiser to these leads) but after the first call is made the Callback date will control the order. This essentially allows the system to mimic the current behaviour for existing customers.
Note: The Callback DateTime is stilled used as a restriction i.e. don’t dial the lead before this DateTime.
Callbacks (e.g. No Answers)
Priority(asc), ‘Ageing DateTime(desc), Callback DateTime(desc)
Warm Leads
The aim with Callbacks is to, like fresh leads, always dial the freshest lead first based on the leads Ageing DateTime.
In almost all cases the Ageing DateTime will be different for every lead. As such the Callback DateTime will be ignored.
The result is that we will always prioritise callbacks for the most recently created lead (fresh is best).
Cold Leads
For leads that are bulk imported they will all have the same Ageing Date. In these cases the Callback Date will be used to order the calls. This mimics the systems existing behaviour.
Note: The Callback DateTime is stilled used as a restriction i.e. don’t dial the lead before this DateTime.
Busy
The principle behind Busy leads is that if we call a customer and the line is busy then we know they are home (or at least near their phone).
The system then will attempt to call them back 10 minutes later hoping that they have just got off the phone.
Busy calls are a small percentage of total calls. As such this will be reviewed at a later date.
The main issue is about degrading these busy retries. If the a significant period of time has elapsed since the call was scheduled to be made then there is little point in treating these as a Busy.
In these cases we believe it would be better to downgrade the priority (to a standard callback) and set the call back time to the standard No Answer interval.
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 lead's 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 lead's priority can never have their priority lowered (where 1 is a high priority) once they are Client Approved.
...
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. In some cases the Agent will selec the Callback Date in other circumstances the system will use the default callback interval from the selected disposition.
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.
...
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.
...
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 Noojee Contact naturally priorities new leads. The only leads that have a higher priority are client approved callbacks because these essentially represent an agreed appointment time.
If you have a customer filling out a form on a website you really want to call them back 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 2 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.
...
When you combine multiple allocations, you must can 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 leadsThe ratio however will only be honoured when all allocations have leads with the same priority. If one allocation has higher priority leads then those leads will always be dialed first.
Call Scheduler
Some times you just need to break the prioritisation ordering of leads. The Call Scheduler allows you to do this but there are consequences.
...
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 '
Essentially this just makes the leads prematuraly 'Eligible' for dialing.
As the dialer uses the Ageing date to determine the order leads are dialed in the 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.out ordering will still apply.
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.
...
Priorities and call back dates can change be changed via the Call Editor , when an Agent dispositioning dispositions 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.
New leads injected via the Noojee API are the exception. Any New leads inserted via the Noojee API is injected directly into the cache. This is done to ensure that new leads can be dialed within about 2 seconds of being injected.