12.05 Lead Ordering / Priority
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.
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'.
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)
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 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 lead's 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
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.
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
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 to dial the customer within about 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.
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 can specify a 'ratio'. The ratio dictates what percentage of leads are taken from each allocation.
The 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 ordering 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'.
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 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.
The dialer's Lead Caches affects order when a leads priority or callback date change between cache refreshes.
Priorities and call back dates can be changed via the Call Editor when an Agent 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 updated leads.
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.