How to Build a PQL Scoring Model in HubSpot (With Product Usage)
Learn to build a PQL scoring model in HubSpot using product usage data. Combine fit, intent, and real-time product signals for accurate qualification.
Quick answer: A PQL scoring model in HubSpot combines three layers: ICP fit (company size, role), intent (marketing engagement), and product usage (activation, feature adoption, usage frequency). The product usage layer is the hardest to build because HubSpot can't natively access event data from your app.
- Create custom properties for product signals like "Days Active Last 30", "Features Used", "Onboarding Completed"
- Sync product data into those properties using Zoody (direct product-to-HubSpot), a reverse ETL tool (warehouse required), or custom API integrations
- Build three scoring properties in HubSpot - one for fit, one for intent, one for product usage - then combine them into a total PQL score
- Set priority bands (0-25 = cold, 26-50 = warm, 51-75 = hot, 76-100 = PQL) and route to sales automatically
Why Traditional HubSpot Lead Scoring Fails for Product-Led Companies
Traditional HubSpot lead scoring counts website visits, email opens, and form fills. It tells you who downloaded your whitepaper or clicked your pricing page. For a product-led company where users sign up and start using your product before talking to sales, that's the wrong signal.
You need to know if they completed onboarding, invited their team, used your core feature three times this week, and hit usage thresholds that indicate buying intent. HubSpot's native lead scoring can't see any of that because the product data lives in your app's database, not in HubSpot.
The Limitation of Marketing-Only Signals
A contact can score 100 points in HubSpot's traditional lead scoring by visiting your site five times, opening every email, and attending a webinar. But if they signed up for your product and never logged in again, they're not a qualified lead. Marketing engagement predicts interest, not product fit or actual need.
The reverse is also true. Someone might ignore all your emails, never visit your blog, but use your product daily, invite their entire team, and upgrade features consistently. Traditional scoring would rank them low. A PQL model would flag them for immediate outreach.
What Makes PQLs Different from MQLs
Product qualified leads are contacts who have demonstrated value realization inside your product, not just intent through marketing channels. The qualification criteria include activation milestones (completed setup, reached first value), adoption depth (features used, frequency), and expansion signals (team growth, approaching plan limits).
MQLs rely on proxy signals. PQLs use direct behavioral evidence. The difference matters when your sales team's time is limited and you need to prioritize who to call first.
The Three-Layer PQL Scoring Framework
A working PQL model scores three dimensions separately, then combines them. Each layer measures a different aspect of qualification.
Layer 1: ICP Fit measures whether the contact matches your ideal customer profile. Company size, industry, role, geography. These attributes don't change frequently. Score them once when the contact enters your database, update when enrichment data refreshes.
Layer 2: Intent captures engagement signals that indicate active interest. Email opens, webinar attendance, pricing page visits, sales calls booked, content downloads. This layer decays over time because a webinar attended three months ago is less relevant than one attended yesterday.
Layer 3: Product Usage tracks actual behavior inside your product. Onboarding completion, feature adoption, usage frequency, collaboration signals, trend direction (increasing usage vs declining). This is the layer that separates PQLs from MQLs and requires getting product usage data into HubSpot.
Layer 1: ICP Fit Scoring Criteria
Fit scoring is the easiest layer because HubSpot already stores this data. Create a scoring property called ICP_Fit_Score and assign points for each attribute:
| Criteria | Points | Notes |
|---|---|---|
| Company size 50-500 employees | +15 | Your ideal range |
| Enterprise (500+ employees) | +10 | Longer sales cycle |
| SMB (10-50 employees) | +5 | Lower ACV |
| Director or VP title | +10 | Decision maker |
| Manager title | +5 | Influencer |
| Industry match (SaaS, fintech) | +10 | High-fit verticals |
| Wrong geography | -10 | Outside serviceable region |
Cap this layer at 30-40 points. Fit alone doesn't qualify a lead, it just determines priority when usage and intent are equal.
Layer 2: Intent and Engagement Signals
Intent scoring uses HubSpot's native engagement data. Create Intent_Score and configure these rules:
| Signal | Points | Decay |
|---|---|---|
| Pricing page visit | +5 | 30 days |
| Demo request submitted | +20 | No decay |
| Email opened | +1 | 14 days |
| Multiple page views (3+ in session) | +3 | 30 days |
| Webinar attended | +10 | 60 days |
| Sales email reply | +15 | No decay |
| Unsubscribed from emails | -20 | Permanent |
Set a decay schedule so old engagement doesn't inflate scores. A contact who was highly engaged six months ago but hasn't opened an email since should drop back to zero intent score.
Layer 3: Product Usage Signals That Matter
This is the layer that makes a PQL model work. You need specific product events and properties synced into HubSpot as custom properties on the contact record. Create Product_Usage_Score and assign points based on real behavior:
| Product Signal | Points | Update Frequency |
|---|---|---|
| Onboarding completed | +15 | One-time |
| First value action (created first report, sent first email, etc.) | +10 | One-time |
| Active last 7 days | +10 | Daily update |
| Used 3+ features | +10 | Daily update |
| Used core feature 5+ times | +15 | Daily update |
| Invited team member | +10 | Real-time |
| Team size 3+ users | +15 | Daily update |
| Usage increasing week-over-week | +10 | Weekly |
| Hit free plan limit | +20 | Real-time |
| No login in 14 days | -15 | Daily |
The total PQL score is the sum of all three layers. Set thresholds:
- 0-25: Cold lead, nurture only
- 26-50: Warm lead, monitor for usage increase
- 51-75: Hot lead, sales can reach out proactively
- 76-100: PQL, immediate sales handoff
Essential Product Usage Signals for Your PQL Model
Not every product event matters for scoring. Focus on the signals that correlate with conversion to paid customer. These fall into three categories: activation milestones, feature adoption depth, and usage frequency.
Activation and Onboarding Milestones
Activation is the moment a user gets value from your product. For a CRM, it's adding the first contact. For an analytics tool, it's installing the tracking code and seeing the first data. For a collaboration app, it's creating the first project and inviting a teammate.
Track these as boolean properties in HubSpot:
onboarding_completed(true/false)first_value_action_completed(true/false)activation_date(date)
Score heavily for activation. A user who completes onboarding is 5-10x more likely to convert than one who doesn't. In your PQL model, assign 15-20 points for this milestone alone.
Also track time to activation. If your median activation time is 3 days and a contact activates in 24 hours, that's a strong buying signal. Create a property hours_to_activation and score faster activation higher.
Feature Adoption as a Buying Signal
Feature breadth (how many features someone uses) predicts conversion better than depth in a single feature. A user who tries five different features is exploring the product seriously. A user who only uses the free feature isn't expanding their use case.
Create these numeric properties:
features_used_count(integer, updated daily)core_feature_usage_count(integer, count of times they used your main paid feature)advanced_features_accessed(boolean, true if they accessed any paid-tier feature)
Weight core feature usage heavily. If your pricing is based on API calls and someone makes 500 calls in their first week, they're a PQL even if they haven't explored other features.
Usage Frequency and Trend Indicators
Daily active users convert at higher rates than weekly active users. Track these recency and frequency signals:
days_active_last_30(integer, count of unique days with login)last_login_date(date, updated real-time)usage_trend(text, "increasing" or "declining" based on week-over-week comparison)
Score increasing usage trends high. A contact who logged in twice in week 1, five times in week 2, and ten times in week 3 is ramping up. That's a better PQL signal than someone who logs in daily but uses the same single feature each time.
Set negative scoring for declining usage. If days_active_last_30 drops below 5 or last_login_date is more than 14 days ago, subtract points. Stale usage means the lead needs re-engagement, not sales outreach.
How to Sync Product Usage Data into HubSpot for Scoring
The scoring model above only works if product usage data flows into HubSpot in real time. HubSpot can't natively connect to your product database or analytics tool. You need a sync layer.
The Data Integration Challenge
Most B2B SaaS companies track product events in an analytics platform like Mixpanel, Amplitude, PostHog, or a custom event stream. That data lives in a separate system from HubSpot. To use it in lead scoring, you have three options:
Option 1: Data warehouse + reverse ETL. Set up a warehouse (Snowflake, BigQuery), pipe event data into it, transform it into contact-level aggregates (days active, features used), then use a reverse ETL tool (Hightouch, Census) to sync those aggregates to HubSpot. This works but requires data engineering, warehouse costs ($100-$500/mo), and reverse ETL fees ($350-$800/mo). Setup time: 2-4 weeks.
Option 2: Custom API integration. Write code that listens to product events, calculates scoring signals, and calls the HubSpot API to update contact properties. This gives you full control but requires ongoing maintenance. Every time you add a new scoring signal, you deploy code. API rate limits (100 calls per 10 seconds on Professional tier) can bottleneck real-time updates.
Option 3: Direct product-to-HubSpot sync. Use a tool built specifically for this (Zoody). No warehouse, no custom code. You configure which product events to track, Zoody listens for them, calculates the properties you need (days active, feature counts, etc.), and updates HubSpot in real time. Cost: $149/mo flat rate, setup time: under an hour.
For HubSpot lead scoring with product usage data, option 3 is the fastest path if you don't already have a data warehouse. If you're already running a warehouse and have data eng capacity, option 1 gives you more flexibility for complex transformations.
Direct Product-to-HubSpot Sync with Zoody
Zoody syncs product events to HubSpot without requiring a warehouse or custom code. Here's how to set it up for PQL scoring:
Connect Zoody to HubSpot. Install the Zoody app from the HubSpot marketplace. Authorize access to your HubSpot account (it needs permission to read and write contact and company properties).
Define the product events you want to track. In Zoody, create events for each scoring signal:
user_logged_in,onboarding_completed,feature_used,team_member_invited, etc. Each event includes properties (which feature, which user, timestamp).Map events to HubSpot properties. Zoody calculates aggregates automatically. For
user_logged_in, it updatesdays_active_last_30andlast_login_dateon the contact record. Forfeature_used, it incrementsfeatures_used_count. Foronboarding_completed, it sets the boolean property to true and records the date.Send events from your product. Add Zoody's SDK or API calls to your backend code wherever an event happens. When a user completes onboarding, your code calls
zoody.track('onboarding_completed', { user_id: user.email }). Zoody receives the event, looks up the contact in HubSpot by email, and updates the properties.Verify the data flow. Check a test contact in HubSpot. The custom properties should update in real time as events fire. Log in as the test user, complete onboarding, use a feature. Refresh the contact record in HubSpot. The properties should reflect the new state.
Now your product usage data is in HubSpot and ready for scoring.
Step-by-Step: Building Your PQL Score in HubSpot
Once product data is flowing into HubSpot, configure the scoring model.
Creating the Scoring Infrastructure
Step 1: Create the custom properties. In HubSpot, go to Settings > Properties > Create property. You need four scoring properties:
ICP_Fit_Score(number, 0-40 range)Intent_Score(number, 0-30 range)Product_Usage_Score(number, 0-30 range)PQL_Score(calculation property, sum of the three above)
Also create the underlying product usage properties if Zoody hasn't auto-created them:
onboarding_completed(single checkbox)features_used_count(number)days_active_last_30(number)last_login_date(date)core_feature_usage_count(number)usage_trend(dropdown: increasing, stable, declining)
Step 2: Set up ICP fit scoring. Edit the ICP_Fit_Score property and configure positive/negative scoring rules. Add rules for:
- Company size (from
Number of Employeesproperty) - Job title (from
Job Titleproperty, use contains logic: "Director", "VP", "Head of") - Industry (from
Industryproperty, match your high-fit verticals)
Each rule sets a point value. HubSpot recalculates the score whenever those properties change.
Step 3: Set up intent scoring. Edit Intent_Score and add rules for engagement:
- Email opened = +1 point, decay after 14 days
- Pricing page viewed = +5 points, decay after 30 days
- Demo requested = +20 points, no decay
- Webinar attended = +10 points, decay after 60 days
Configure decay by setting "Score will decrease by X after Y days" in each rule.
Configuring Scoring Rules for Product Signals
Step 4: Set up product usage scoring. Edit Product_Usage_Score and add rules based on the product properties:
onboarding_completedis true = +15 pointsdays_active_last_30is greater than 10 = +10 pointsfeatures_used_countis greater than 3 = +10 pointscore_feature_usage_countis greater than 5 = +15 pointslast_login_dateis within the last 7 days = +10 pointsusage_trendis "increasing" = +10 points
Also add negative rules:
last_login_dateis more than 14 days ago = -15 pointsdays_active_last_30is less than 3 = -10 points
HubSpot recalculates this score every time a product property updates. Since Zoody updates these properties in real time as events happen, the score stays current.
Step 5: Create the combined PQL score. The PQL_Score property is a calculation property. Set its formula to:
ICP_Fit_Score + Intent_Score + Product_Usage_Score
This gives you a single number (0-100) that represents the lead's overall qualification.
Automating PQL Handoff to Sales
Step 6: Build workflows for PQL routing. Create a workflow that enrolls contacts when PQL_Score is greater than or equal to 76. Actions:
- Set lifecycle stage to "Product Qualified Lead"
- Create a task for the assigned sales rep: "High-intent product user, review usage and reach out"
- Send an internal Slack notification (if you have HubSpot's Slack integration)
- Add to a "Hot PQLs" static list for reporting
Create a second workflow for warm leads (51-75 score range) that adds them to a nurture sequence encouraging deeper product usage.
Build a sales view in HubSpot filtered to PQL_Score >= 76 and Lifecycle Stage = Product Qualified Lead. Sort by score descending so the highest-scoring PQLs appear first. Your sales team works this view daily.
Set up a dashboard showing PQL score distribution, PQL-to-opportunity conversion rate, and average time from PQL to closed deal. Track PQL to SQL conversion to validate that your scoring model actually predicts revenue outcomes.
Best Practices and Optimization
A PQL scoring model isn't set-it-and-forget-it. Review and adjust based on actual conversion data.
Testing and Iteration
Start with 3-5 core product signals, not 20. Pick the events that you already know correlate with buying intent based on manual analysis of past conversions. Common starting points:
- Onboarding completion
- Days active in the last 30 days
- Feature count
- Team size (if collaboration is key to your product)
Run the model for 30 days, then pull a report of all PQLs created and their outcomes. What percentage converted to opportunity? What percentage went cold? Which product signals appeared most often in the converted group?
If onboarding completion shows up in 90% of conversions but only 40% of PQLs, increase its point value. If "attended webinar" has no correlation with product usage or conversion, decrease its weight or remove it from intent scoring.
Track false positives (high PQL score but no buying intent) and false negatives (low score but converted anyway). Interview sales on both groups. False positives often reveal a missing negative signal (high usage but wrong ICP fit, or using the product for a non-standard use case). False negatives reveal missing positive signals (a key feature you're not tracking, or expansion behavior you didn't score).
Aligning Sales and RevOps on PQL Definitions
Sales will push back on PQL scoring if the leads don't convert. Avoid this by co-creating the model with sales input from the start.
Run a kickoff workshop where sales, RevOps, and product review 20 recent conversions and 20 recent churn/no-show free trial users. Identify the behavioral differences. What did the converted users do in the product that the churned users didn't? Those differences become your scoring criteria.
Set a feedback loop where sales can flag bad PQLs directly in HubSpot. Add a property PQL_Quality (dropdown: Good, Okay, Bad) and a workflow that alerts RevOps when a PQL is marked Bad. Review those contacts monthly and adjust the scoring rules.
If your PQL-to-opportunity conversion rate is below 15%, your scoring is too loose. Increase thresholds or add negative signals to filter out low-intent users. If it's above 40%, you might be leaving pipeline on the table by scoring too conservatively. Lower thresholds or add more positive signals.
Create a monthly PQL review meeting with sales, RevOps, and product. Review the top 10 PQLs from last month that converted and the top 10 that didn't. Spot patterns. Adjust the model iteratively. A good PQL model takes 3-6 months of tuning before it's stable.
FAQ
What is a PQL scoring model in HubSpot?
A PQL scoring model in HubSpot is a system that assigns a numeric score to each contact based on three factors: how well they fit your ideal customer profile, their engagement with your marketing, and their usage of your product. The score identifies which free trial users or freemium users are most likely to convert to paid customers so sales can prioritize outreach.
How do you add product usage data to HubSpot lead scoring?
Create custom properties in HubSpot for product usage signals (like days active, features used, onboarding completed), then sync your product events into those properties using a tool like Zoody, a reverse ETL platform like Hightouch, or custom API calls. Once the properties update in real time, add them to a HubSpot scoring property with point values for each behavior.
What product usage signals should I include in PQL scoring?
Start with activation (onboarding completion, first value action), frequency (days active in last 30 days, last login date), feature adoption (number of features used, core feature usage count), and collaboration (team members invited, multi-user accounts). Add signals specific to your product's aha moment and paid feature usage patterns.
Can HubSpot natively track product usage for lead scoring?
No. HubSpot can only score based on properties that exist on the contact record. Product usage data lives in your app's database or analytics tool, not in HubSpot. You need to sync that data into HubSpot using an integration tool, reverse ETL pipeline, or custom API code before you can use it in scoring.
How is PQL scoring different from traditional lead scoring?
Traditional lead scoring in HubSpot measures fit (company size, role) and marketing engagement (email opens, page views). PQL scoring adds a third layer: actual product behavior. A PQL model prioritizes users who have activated in your product and demonstrated usage patterns that correlate with buying intent, not just marketing interest.
{
"meta_description": "Learn to build a PQL scoring model in HubSpot using product usage data. Combine fit, intent, and real-time product signals for accurate qualification.",
"word_count": 2458,
"tag": "Guide",
"faq_schema": {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is a PQL scoring model in HubSpot?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A PQL scoring model in HubSpot is a system that assigns a numeric score to each contact based on three factors: how well they fit your ideal customer profile, their engagement with your marketing, and their usage of your product. The score identifies which free trial users or freemium users are most likely to convert to paid customers so sales can prioritize outreach."
}
},
{
"@type": "Question",
"name": "How do you add product usage data to HubSpot lead scoring?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Create custom properties in HubSpot for product usage signals (like days active, features used, onboarding completed), then sync your product events into those properties using a tool like Zoody, a reverse ETL platform like Hightouch, or custom API calls. Once the properties update in real time, add them to a HubSpot scoring property with point values for each behavior."
}
},
{
"@type": "Question",
"name": "What product usage signals should I include in PQL scoring?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Start with activation (onboarding completion, first value action), frequency (days active in last 30 days, last login date), feature adoption (number of features used, core feature usage count), and collaboration (team members invited, multi-user accounts). Add signals specific to your product's aha moment and paid feature usage patterns."
}
},
{
"@type": "Question",
"name": "Can HubSpot natively track product usage for lead scoring?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. HubSpot can only score based on properties that exist on the contact record. Product usage data lives in your app's database or analytics tool, not in HubSpot. You need to sync that data into HubSpot using an integration tool, reverse ETL pipeline, or custom API code before you can use it in scoring."
}
},
{
"@type": "Question",
Compare alternatives
- Zoody vs Hightouch- without the warehouse layer
- Zoody vs Census- skip the dbt models
- Zoody vs HubSpot Operations Hub- $7,800/yr cheaper for the one feature
Explore use cases
- PQL scoring in HubSpot- score on real behavior
- Free trial conversion- time-decay + triggers
- PLG sales handoff- AE Slack alerts in under a minute
Try it on your own HubSpot
Zoody is in beta, so every feature is free right now. Connect your HubSpot, put real product signals on your records, and work directly with the founder.