If you want to get into a good argument with a marketer, bring up lead scoring.
A lot of marketers just don't believe in it. “A prospect will let you know when they want to speak with you.” Using a score to make the assumption they want to talk is a waste of time, according to those folks.
Then there are marketers like myself who think lead scoring is a useful way of measuring the degree to which a person is engaging with your brand. Sure, there's no guarantees the prospect will respond, but a high lead score means they've seen your logo a time or two before and will have a higher probability of responding.
Even pro-scoring marketers will bicker about certain aspects of the process: should email metrics be included? At what rate should points decay?
How about HubSpot's native scoring fields?
A Brief Tour of HubSpot Scoring Fields and What's Wrong With Them
HubSpot offers a scoring field baked into its CRM. A scoring field contains two aspects: points that are added, and points that are subtracted. You set the criteria for each one - 10 points for filling out a form, -10 points for unsubscribing.
Its simplicity harkens back to HubSpot's earliest days where it positioned itself as an all-in-one tool for small businesses and strapped marketing teams. It's fine for a lot of marketing teams, really - lead scoring doesn't have to be something you overthink.
For the marketer who wants just a bit more from scoring, HubSpot's native scoring fields leave a lot to be desired.
- It gets complex and difficult to edit very quickly - just five criteria sets make the field difficult to decipher and edit. Most organizations will need way more than that.
- Point-per-action processes aren't possible Want one pageview to equal one point? Too bad. HubSpot scoring fields are based on broad criteria, so the best way to do per-action scoring is using tiers (i.e. 1-5 pageviews = 5 points, 6-10 = 10 points, etc).
- Decaying on a point-by-point basis is not really possible - If you want to decay points (that is, remove points from the score after a certain time period has passed) using HubSpot's scoring fields, you have to rely on loosely-connected methods. For example, decaying the aforementioned bulk pageviews would have to be based on Time Last Seen, a date field triggered by a cookie'd site visit. Or you could rig up a complex system of static lists and workflows.
- It's difficult to decipher where points are coming from What's a scoring system good for if not illustrating engagement on the contact? And when someone needs to decipher that engagement, or fix an action that might be skewing scores, HubSpot scoring fields offer no obvious clues as to where the points could be coming from. You have to really be Marketing Sherlock Holmes.
- Scoring for Offline action is difficult Adding points for something like a third party webinar or a tradeshow booth scan require the use of static lists, and if these are common marketing motions for you, well, you'll get to understand the first bullet in this list
I could keep going. And for what it's worth, every marketing automation platform has these issues. I've tried to use native scoring functions in Marketo and Pardot and all of them have limitations and frustrations.
These systems are designed for basic scoring. If you're scoring system is as simple as "Anyone who views 10 pages, or 3 of our extra special pages should be passed over to sales" then these native functions are perfectly fine.
If you're looking for something a little more nuanced and flexible, then read on.
Scoring for the Multichannel Marketing Organization
I tried for years to make HubSpot's native scoring fields work the way I wanted them. I tried the static list method, where workflows place someone on a list when they reach 10 pageviews then move them to another list when they reach 20, and if they ever stagnate, then the workflows hit reverse and the points eventually decay.
I tried a workflow-based method, where someone just sits in a workflow for 30 days when they meet a certain threshold, then the points are removed based on goals and suppression lists.
I hacked the scoring fields a thousands different ways but never quite got it to work for a multichannel marketing organization. It just doesn't adapt well to offline channels like tradeshows, partner marketing efforts, sponsorships, native advertising, and things outside the normal Inbound Method.
If you're a multichannel marketer and are only scoring on pageviews, emails, and form conversions, you're missing half the picture.
Ultimately what I wanted was a scoring model that could:
- Add points-per-action, as in 1 point for each pageview. 11 pageviews would be 11 points. 53 pageviews would be 53 points
- Repeatability, or the ability to constantly add points if someone was taking reptitive actions, like filling out the On-Demand Webinar form I have across 20 different gated videos
- Easily assignable points for offline actions, like a tradeshow booth scan or partner webinar (which would be fulfilled as a CSV upload)
- Simple decay, or a way to sunset points after periods of inactivity
- Easy discernability, so anyone could look at a score and know what was driving increases
- Scalability so I don't have to scroll through 75 different criteria to find the right spot to try to add the attendees of my most recent offline event
Attempt: Numeric Fields
While struggling to meet a client's unique scoring demands, it occurred to me to just build out my own scoring field. HubSpot offers numeric fields, after all, and workflows allow you to increment and decrement values on a numeric field.
Problem solved, right? Build a numeric field, then use workflow to +1 every time someone does something. I built a workflow that would trigger every time "Number of pages viewed is known" and it would +1 to that score. I built another one for content conversions (+10!) and contact conversions (+50, MQL!). If I imported a list from a sponsored webinar, I would run the contacts through a workflow that would +10 that field.
It actually worked well. Adding points was easy, regardless of the channel, and I was able to automate it by just including the incrementation every time I set up a form- or import-based workflow for a client.
But, the same problems lingered: how to decay point-for-point after time, how to decipher where the points had come from. Oh, and it turns out HubSpot processes pageviews in batches, so a contact's pageviews would go from 0 to 5, for example, giving the contact 1 point for five pageviews (as opposed to the field incrementing one page at a time).
So I figured out the numeric field approach was a step above the native scoring field approach, but not quite what I was looking for.
Success: Lots of Numeric Fields and Formulas
A colleague suggested the notion of "lots of scoring fields" which I immediately shrugged off. But the more I thought about it the more it made sense.
After all, every marketing channel earns and decays points uniquely. A pageview is disposable and quickly forgotten, whereas webinar attendance might stick with someone for a while. They have different point increments, and they decay at different times and with different measures. For example, trade show points should just go away after say, 90 days, and pageviews should dissolve within 30.
Unique fields for unique channels
I created numeric fields for each significant marketing channel:
- Pageviews, including key pageviews like Pricing and Testimonial, which should be weighted more heavily
- Email, but only clicks because email opens aren't worth much
- Content, primarily centered around gated pieces
- Contact, for Contact Us forms and other activities that represent a contact asking to speak with sales
- Webinars, which I split out from Content because there are some unique aspects that I'll get into later
- Chat, for interactions with a chatbot
- Events, for things like a booth scan
Your fields may vary depending on your particular efforts but in general most things B2B marketers do will be covered under one of these buckets (such as content syndication, which sits under the Content bucket, as does on-demand media that's ungated).
If you have a HubSpot Professional or Enterprise subscription, then you can create a Calculated Field using all of these fields. I call this the Engagement Score.
In general the formula will look like
Pageview Score + Email Score + Content Score + Contact Score + Webinar Score + Chat Score + Event Score + (Number of Pageviews)
How to Get a Point Per Pageview in HubSpot
I mentioned above wanting to give someone a point for every pageview they have. You can do this by making Number of Pages Viewed part of your formula. If you want to make it into its own field, you can do Number of Pages Viewed *1, or .5, or 2 or however you want to score a standard pageview.
Of course, the Number of Pages Viewed doesn't decline, ever - so that means you're not going to be decaying these points.
This little trick works across any numeric field. You can multiply Number of Form Submissions x 10, Email Clicks, and so on.
One Quick Note on Decay
Before I go into nitty gritty details on how I manipulate scores using workflows, I need to make one thing clear about point decaying: I really don't care a ton about incremental decays, like taking off 30% after 30 days, 75% after 60%, and clearing the score after 90.
If someone is still engaging with a particular channel, I don't care to decay points at all. If someone is on my site every couple of days ad incrementing their pageviews, why should I remove points they had from a few days ago? If they engaged, I'm willing to just them earn points with no decay forever, until they MQL.
A major benefit of this multi-field method is I can decay channels individually. And I only decay when someone has just stopped engaging with a channel over a period of time, generally 90 days. But I'm not decaying their overall score, just their score in that channel.
For example, someone gets points in Pageviews and Content because they browse my site and convert on a page. At this point they start receiving marketing emails from me, so their Email Score increases, which will generally mean their pageview score will increase, but eventually that Content Score from the conversion will go away unless they convert on another piece. Which is fine, they're going to continue incrementing points from email and other channels, so we can let their content points decay.
Manipulating Fields to Add and Decay Scores
Now that you've got a bunch of individual scoring fields, you need to set up mechanisms to add and subtract points on them. Because you’ve got them split out by channel you can have unique methods of manipulating the points based on the unique aspects of that channel. Here are some of my recommendations.
- Pageviews: Trigger a workflow every time someone views a key page, then add 10 or however many points. You can use the same workflow to decay - one branch for adding points everytime someone views a page, another branch for when their Time Last Seen is more than 90 days ago (be sure to enable re-enrollment for each
- Side note on pageviews: See note above on adding a point-per-pageview
- Emails: Add points every time Marketing Emails Clicked is Known; decay when Last Marketing Email Clicked date is more than 90 days ago
- Content: HubSpot doesn’t differentiate types of forms (think like content forms vs contact forms) so you need to do it yourself. I do this with date fields (I usually call them Recent Content Request Date and Recent Contact Request Date) that are them in workflows triggered upon conversions. You can also use these to decay when the date is >90 days ago.
- These fields have ton of uses beyond scoring also, including being able to differentiate where MQLs came from (points vs contact form), reporting on how many content conversions you have in a week/month/etc.
- Webinars: Same as above, I build a webinar request date field that’s stamped when someone registers, then use the same field to decay points. I like adding points for someone who attends a live webinar, so I usually do that in the post-webinar follow-up workflow that also sends out thank you emails
- Side note on webinars: once a webinar moves to on-demand and is gated, I add points for those conversions in the Content Score bucket.
- Consider splitting your webinars up into high-intent and low-intent. A lot of webinars are glorified product demos, so you should add a lot of points to someone who attends or views a webinar.
- Chat: Some chat interactions are worth scoring, especially if you have a function for fulfilling content (if someone requests a contact or schedules a meeting, add those points in the Contact Score). You can use the options in Conversation Chat Session options in lists to trigger workflows to add and decay points in this category.
- Offline events: For things like in-person events or partner webinars where the contacts enter HubSpot via import, I add and subtract points in the same workflow. So long as the contact doesn’t need to re-enroll, you can let them sit in a delay for 90 days then remove the points. This is the one area where I do prefer a direct decay, if only because it’s very simple. And a lot of trade show booth scans are just for swag hunters; I don’t have issues with decaying those points quickly
Having installed this scoring system several times over the years, it isn't perfect or bullet proof. These are the major warnings you should be aware of:
- Formula fields require a numeric value to work - this means you need a process to set a score of 0 for every score, for every contact who shows up in your database. I'll walk through how I do this at a later date.
- Do NOT use wait steps in workflows to decay, unless it's a single-use workflow (see offline events above). For example, if you want to decay the points from a pageview, don't do it with a 30-day delay followed by an update to the property. If someone views that page again, HubSpot will not re-enroll them since they'll already be in the workflow. However, if you have a live webinar and give people points for attending, you can leave them in for long periods then remove the points since they don't need to re-enroll in that workflow, ever.
- Don't take away points someone hasn't earned. A lot of people want to do things like -1000 a score when someone opts out. Don't! Email is just one channel; not everyone wants you in their inbox - but they still might engage via other channels. Their email score will decay eventually. That's true of all channels.
- Key Pageview points can only be added once per day. The options to enroll someone in a workflow based on pageviews are limited - Contact Has Viewed Page X will enroll someone once but only once. Your best bet to use "in the last 1 day" as an additional criteria to the pageview field, so they can add points every time. Alternatively, you can hack up a system using Static Lists but this is the kind of complexity we're trying to avoid.
I'll share some specific examples of this method in another article, but for now hopefully you get the idea of how a custom score can bypass some of the limitations inherent in HubSpot's native scoring fields.
Again, this method isn't for everyone - in fact I'd say to avoid it if you don't have a full-time HubSpot admin who can properly maintain it. For example, while most of this system will be automated by your fields and workflows, some of your uploads need to have incremental points. Point adjustments need to be built into every form-triggered workflow, and webinars have a variety of ways of incrementing points.
In other words, you need a HubSpot admin who knows the system and has a little bit of a mind for marketing.
Build a HubSpot Lead Scoring System With Me
I’ve implemented this system roughly 20 times in the last few years and am quite accustomed to helping people navigate the various decisions and trainings.There's a lot that can be done with it, including intersecting with a demographic score, contact score summary fields on accounts, and more.
Reach out and I’ll help you get your HubSpot lead scoring system installed. Click here to schedule some time!