Keeping a tight sales pipeline is important.
An ideal case scenario in all sales funnels is one in which we know where our prospects stand in every step of our sales process so that we have a clear picture of where our month is headed and what we may need to do to get there.
Often, this is solved for in a pretty non-systematic way: sales management sits down with each individual rep, and together they’ll go through each opportunity in the rep’s funnel to look for deals that need a little extra love or deals that need to be closed lost due to being stagnant for so long.
While this is not a bad way to go about checking the health of your reps’ pipelines, it can be hard to scale as prioritizing the deals that need attention becomes difficult with growth.
In other words, more deals equals more things to keep up with in the same amount of time a week.
Another way many folks go about it is to measure activity as a leading indicator of opportunity health.
Where this falls short is that you can be engaged in an active process where you’re emailing and talking with your POC every single day, and still have that deal not progress through the steps it needs to close.
Many reps will spend way more time than they should on a deal that’s not going to close because they believe the number of conversations they’re engaged in is a leading indicator of where a deal might be headed.
How then, in an effort to keep a tight pipeline, do we ensure the right deals get the right attention?
While the above two points may work as intended at times, it’s possible in HubSpot to supplement our pipeline management efforts with a third data point: Time Spent in deal stages.
We have a general idea of how long each part of our sales process typically averages out to, and it’s important to track that as a sign of progress or lack thereof. For example, If we have a deal that’s been in “Appointment Set” but not “Delivered” for longer than it should be, it’s time to analyze where to go from there.
Do we have the right point of contact? Is our value proposition a priority for the prospect currently? It doesn’t matter how many calls we’ve had, or whether the rep feels like this has real potential or not. Knowing that our deal is stuck in a stage of our pipeline for longer than it should be, lets us analyze the reality of the situation and ask: what can we do to resolve this once and for all, for better or worse?
Luckily, marking time spent in Deal Stage in HubSpot is easy, and so is creating automated processes that alert you to when a deal is lagging.
Today, I’ll show you how to create a series of timestamps and workflows that will help you automate Pipeline "Health Checks."
This step assumes that you’ve already customized your pipeline in HubSpot by setting up deal stages that are reflective of your sales process. If you haven’t already customized your pipeline, follow these steps before proceeding.
For this example, and throughout the rest of this post, I’ll be referencing a smaller-than-usual pipeline for simplicity’s sake that looks like this:
Our goal here is to track and progress the three steps before Closed-Won and Closed-Lost. We’re going to do this by first creating contact properties that allow us to timestamp when someone enters any of those stages. They’ll be formatted as Date Picker properties, and we'll have one for each deal stage that we're measuring (three total):
We now have data points we can start populating with automated processes.
In order to activate the above three properties, we need to a bit creative with the way we build our workflow.
Setting up our trigger criteria is the first step, and will look like this:
What we're doing here is making so that any time the contact record is moved into a deal stage, regardless of which one it is, they'll be enrolled in this workflow. We allow for this to happen multiple times (in recognition of having multiple deal stages), by allowing for re-enrollment in the bottom. Every time a Deal Stage changes, the contact will now be enrolled in our workflow.
Next, we'll timestamp our first deal stage of "Appointment Set" by changing our contact property of "Deal Stage Timestamp: Appointment Set" to the date of the step.
You'll notice something a bit peculiar about the way we built this action, in that we've made the time-stamping option conditional on deal stage being equal to appointment set. This is because a contact can only be enrolled in one deal stage at a time.
Much like writing software, this lets us ask our workflow to screen each step until it encounters a "yes" on the deal stage in which the contact record finds itself. The complete version looks like this:
At an initial glance, it may seem like there's a lot going on here so let's break it down. In essence, we're stacking If/Then branches so that HubSpot can run an analysis until it meets a "Yes" command and comes to the end of the workflow. Because contacts can re-enroll, any change to their deal stage will bring them into this analysis in order to add their new timestamp.
So for example, let's say we set an appointment with the contact. They'll enroll in our workflow, make it to the first conditional statement, and HubSpot will realize their deal stage equals "Appointment Set". They will progress to the yes branch of our action, and the timestamp property we created will be changed to the date our contact was moved into "appointment set."
After some time, we actually hold our appointment and change the contact's deal stage to "Appointment Delivered". Because the contact's deal stage is newly marked as one of our three trigger criteria, and because re-enrollment is turned on, they'll come into this workflow a second time. HubSpot will look at the first If / Then branch, and determine that the deal stage is not "Appointment Scheduled". It will then go onto the next conditional statement, and will find that Deal Stage does indeed equal "Appointment Held". Upon realizing this, it will move to our action under the "yes" branch, timestamp our "Appointment Held" date property, and finish the workflow until another deal stage changes.
This process can go on indefinitely, and extend to cover as many deal stages as you have. Because we're training HubSpot to look for the "yes", these steps can also be covered in any order. If in our example we would've gone from "Appointment Set" to "Contract Sent", our workflow would've moved on past two "No" branches before getting to our third branch that impacts the "Contract Sent" timestamp and going down the "yes" route.
A final benefit of this is that because our timestamps are created separately, a contact will have multiple time stamps in their name that mark their movement along our sales cycle.
Though our purpose here is to facilitate pipeline management, having these dates to reference as they accumulate allows us to look for trends and areas of improvement.
With our time stamping infrastructure in place, we can now start creating the processes that are going to let us know when someone has spent more time in a deal stage than they should have.
Though progression through our deal stages may vary from contact to contact, we typically have a general idea for how long we're willing to let a prospect sit in a stage before deciding that our time is better spent elsewhere. For example, if it's been two weeks since we've set an appointment and the contact keeps rescheduling (thus preventing us from delivering our appointment), we should take steps to result this opp and move on instead of continuing to reschedule. Think about how much time you're willing to dedicate to each part of your sales process before it becomes inefficient to chase your contact.
In our example, we'll let each part of our sales process run for two weeks maximum before we send a notification to the rep requesting that the opp be resulted either into another deal stage, or closed won/lost. In order to start the counting process, we'll create a workflow whose trigger criteria is the following:
All we're saying here is:
"If the date in our 'appointment set timestamp' is older than two weeks, AND the contact's deal stage has not moved to any of the other options available, it's because there's been no progress. Let's flag it for discussion."
Re-Enrollment is also a must here, so make sure to turn it on. This will ensure that we can follow as many timestamps as are created. When we account for all three deal stages whose timestamps we're following, our trigger criteria looks like this:
Any contact whose Deal Stage timestamp hits that two-week threshold and does not progress is now able to enter this workflow, and will do so every time that criteria is met.
From there, we'll send an email that goes out to both the rep and the manager informing them of their sales opportunity being stuck and requiring some attention:
I recommend that the alert itself be sent as an internal email to both the rep and Sales Management so that both parties are aware, but tasks can used as well (especially if our reps are consistently working within the HubSpot CRM / out of the task queue)
Even though establishing this infrastructure may seem a little technical at first, the way it functions is quite simple:
All in all, what we accomplish is this: Not one prospect falls through the cracks, forecasting is more realistic because pipelines are not artificially inflated, and everyone (reps and managers alike) knows where to spend their time.
If you have any questions about how to set this up in workflows or how to integrate it on a process level with your company, shoot me an email at email@example.com!