← All resources
GuideSep 14, 202618 min read

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:

  1. 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).

  2. 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).

  3. Map events to HubSpot properties. Zoody calculates aggregates automatically. For user_logged_in, it updates days_active_last_30 and last_login_date on the contact record. For feature_used, it increments features_used_count. For onboarding_completed, it sets the boolean property to true and records the date.

  4. 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.

  5. 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 Employees property)
  • Job title (from Job Title property, use contains logic: "Director", "VP", "Head of")
  • Industry (from Industry property, 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_completed is true = +15 points
  • days_active_last_30 is greater than 10 = +10 points
  • features_used_count is greater than 3 = +10 points
  • core_feature_usage_count is greater than 5 = +15 points
  • last_login_date is within the last 7 days = +10 points
  • usage_trend is "increasing" = +10 points

Also add negative rules:

  • last_login_date is more than 14 days ago = -15 points
  • days_active_last_30 is 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

Explore use cases

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.

More resources