PQL Scoring in HubSpot: Score Product-Qualified Leads Fast
Learn how to implement PQL scoring directly in HubSpot using real-time product data, no data warehouse, SQL, or reverse ETL needed. Built for RevOps teams.
Quick answer: PQL scoring in HubSpot tracks how users engage with your product and assigns point values to behaviors that indicate purchase readiness. You sync product usage data into HubSpot as custom properties, then use workflows to increment a PQL score when users hit key milestones.
- Custom properties - Create number fields in HubSpot for each product signal (logins, features used, team invites sent).
- Workflow automation - Trigger workflows when usage properties update, increment the PQL score based on the action.
- PQL threshold - Set a score threshold (typically 60-100 points) that automatically flags a contact as sales-ready.
- Sales handoff - Route high-scoring PQLs to your sales team with automated task creation and notifications.
What Is a Product-Qualified Lead (PQL)?
A product-qualified lead is a user who has demonstrated meaningful engagement with your product that indicates purchase intent. Unlike marketing-qualified leads (MQLs) who fill out forms or download whitepapers, PQLs have actually used your product and hit specific behavioral milestones that correlate with conversion to paid.
For B2B SaaS companies running product-led growth motions, PQLs convert 3-5x better than traditional MQLs. The signal is stronger because you're scoring actual product adoption, not just demographic fit or content engagement.
Common PQL signals include feature adoption (connected an integration, invited team members, imported data), usage frequency (logged in 5+ days in the past week), milestone completion (finished onboarding, created first project), and collaboration signals (added a second user, shared with external stakeholders).
PQL vs. MQL: understanding the difference
An MQL is typically qualified by marketing actions: they downloaded an ebook, attended a webinar, visited your pricing page twice. These are intent signals, but they don't prove the person has experienced value from your product.
A PQL has crossed an activation threshold inside your product. They've logged in, completed setup, used a core feature, and demonstrated that they understand what your product does. For a free trial user, that behavioral signal is far more predictive of conversion than any form fill.
In HubSpot, you can track both. MQLs move through traditional lead scoring based on demographic and engagement data. PQLs are scored separately using product usage data synced into HubSpot as custom properties. Many RevOps teams run both models in parallel and prioritize contacts who qualify as both MQL and PQL.
Why PQL scoring matters for RevOps teams
Most B2B SaaS companies have product analytics tools (Mixpanel, Amplitude, PostHog) that track user behavior, but sales teams live in HubSpot. If your product data stays in a separate analytics tool, your sales team can't see who's actively using the product, which features they've adopted, or when usage drops off.
PQL scoring in HubSpot puts product signals directly on the contact record where your sales team already works. A rep can see that a contact logged in 8 times this week, invited 3 teammates, and connected Slack before they pick up the phone. That context changes the conversation from cold outreach to consultative upsell.
For RevOps managers, PQL scoring solves the routing problem. You can automate sales handoff based on product usage milestones instead of manually reviewing a list of trial users each week. High-scoring PQLs get assigned to AEs, medium-scoring contacts get nurtured, low-scoring contacts stay in marketing automation.
Building Your PQL Scoring Framework
Before you build workflows in HubSpot, you need to define which product behaviors indicate purchase readiness and how much each behavior should be worth in points.
Start by identifying your product's "aha moment" - the point where a user understands the value and is likely to keep using it. For Slack, that's sending 2,000 messages. For Dropbox, it's saving a file to a shared folder. For a CRM, it might be logging the first deal or sending the first email from the platform.
Map out the activation milestones that lead to that aha moment. If your aha moment is "created first dashboard," the milestones might be: signed up, connected data source, ran first query, invited teammate, created first dashboard. Each milestone gets a point value.
Core product usage signals to track
The strongest PQL signals combine frequency, depth, and expansion. Frequency is how often someone uses your product (daily active users score higher than weekly). Depth is how many features they've adopted (using 5 features scores higher than using 1). Expansion is whether they're bringing in teammates or connecting multiple accounts.
Specific signals to track as HubSpot properties:
- Login frequency: Number of logins in past 7 days, number of logins in past 30 days
- Feature adoption: Boolean properties for each core feature (has_connected_integration, has_invited_team_member, has_created_dashboard)
- Milestone completion: Onboarding progress percentage, activation milestone reached (yes/no)
- Usage volume: Number of projects created, number of records imported, number of API calls made
- Collaboration signals: Number of team members invited, number of workspaces created, external shares sent
- Time-based engagement: Days since last login, days since signup, consecutive days active
You don't need to track every possible event. Pick 5-10 signals that your customer success team already uses to predict whether a trial user will convert.
Assigning point values to behavioral triggers
Start with a 100-point scale. Assign higher point values to behaviors that directly correlate with conversion and lower values to early-stage actions.
Example scoring model for a project management tool:
- Signed up: 5 points (everyone does this, low signal)
- Completed onboarding: 10 points
- Created first project: 15 points
- Invited first team member: 20 points (strong signal, requires commitment)
- Connected integration: 15 points
- Logged in 3+ days in past week: 10 points
- Logged in 5+ days in past week: 20 points (high engagement)
- Created 5+ tasks: 10 points
- Assigned task to teammate: 15 points (collaboration signal)
A user who completes onboarding (10), creates a project (15), invites a teammate (20), and logs in 5+ days (20) would score 65 points. If your PQL threshold is 60, they'd qualify for sales outreach.
Run this model against your historical conversion data. Pull a cohort of users who converted to paid in the past 6 months and score them retroactively. If most converters hit 60+ points before buying, your threshold is calibrated correctly. If they're all scoring 90+, lower your threshold or reduce point values.
Setting your PQL threshold score
Most teams set their PQL threshold between 60 and 100 points. The threshold should be high enough that sales isn't chasing every person who logs in once, but low enough that you're catching users before they churn.
If you're running a 14-day trial, you want to flag PQLs by day 7 so sales has time to engage. If your threshold is too high, users might not hit it until day 12, and by then they've already decided whether to buy.
You can also set tiered thresholds. Contacts who score 40-59 are "warm" and get automated nurture emails. Contacts who score 60-79 are "hot" and get assigned to an SDR for a soft touch. Contacts who score 80+ are "qualified" and go straight to an AE with a high-priority task.
Track PQL-to-paid conversion rate by score band. If your 80+ cohort converts at 40% but your 60-79 cohort converts at 8%, you might raise the threshold or build different sales motions for each tier.
How to Sync Product Usage Data Into HubSpot
HubSpot doesn't track product events natively. You need to get usage data from your product (or your analytics tool) into HubSpot as contact and company properties before you can score on it.
The traditional approach is reverse ETL: send product events to a data warehouse (Snowflake, BigQuery), transform them into aggregated metrics (logins_last_7_days, features_adopted_count), then sync those metrics to HubSpot using a reverse ETL tool like Hightouch or Census. This works, but it requires data engineering resources, warehouse costs ($200-$500/mo), and reverse ETL licensing ($350-$800/mo). Setup takes weeks.
The data warehouse problem for RevOps teams
Most RevOps managers don't control the data warehouse. That's a data engineering asset. If you want to add a new product signal to your PQL scoring model, you need to file a ticket with the data team, wait for them to write the SQL transformation, wait for the pipeline to run, then test the sync.
The other problem is latency. Warehouse-based reverse ETL runs on a schedule (hourly, daily). If a user invites 5 teammates at 2pm, that signal might not hit HubSpot until 3pm or the next morning. For fast-moving trials, that delay means your sales team is working with stale data.
Tools like Zoody skip the warehouse entirely and sync product events directly to HubSpot in real time. You define which events to track (user_invited_teammate, project_created, integration_connected), and those events write to HubSpot properties on the contact record within seconds. No SQL, no engineering, no pipeline maintenance.
Syncing product events as HubSpot properties
Each product signal you want to score on needs a corresponding HubSpot property. Create custom properties on the contact object for each metric.
Example properties for a PQL scoring model:
logins_last_7_days(number)logins_last_30_days(number)features_used_count(number)has_invited_team_member(single checkbox)has_connected_integration(single checkbox)onboarding_completed(single checkbox)projects_created_count(number)days_since_last_login(number)activation_milestone_reached(single checkbox)
If you're using a warehouse + reverse ETL stack, your data team creates these properties and maps the warehouse columns to HubSpot fields. If you're using Zoody, you create the properties in HubSpot, then map product events to those properties in the Zoody UI. When the event fires in your product, the property updates on the HubSpot contact.
You can also sync company-level usage signals to the HubSpot company object: total_seats_occupied, total_projects_created, total_api_calls_this_month. This is useful for scoring enterprise accounts where multiple users are on the same trial.
Implementing PQL Scoring in HubSpot Workflows
Once product usage data is flowing into HubSpot as custom properties, you can build workflows that increment a PQL score whenever a user hits a key milestone.
Setting up your scoring properties
Create two custom properties on the contact object:
pql_score(number) - The running total score, starting at 0pql_status(dropdown) - Values: "Not Qualified", "Warm", "Hot", "PQL"
You can also create a pql_qualified_date (date) property to track when the contact first crossed the PQL threshold. This is useful for conversion velocity reports (days from signup to PQL qualification, days from PQL to closed-won).
Building automated scoring workflows
Each product usage signal that contributes to your PQL score needs its own workflow or a branch within a master scoring workflow. The workflow enrollment trigger is the property update, and the workflow action is a score increment.
Example workflow: PQL Score - Team Invite
- Enrollment trigger:
has_invited_team_memberistrue - Re-enrollment: Allow contacts to re-enroll when
has_invited_team_memberchanges (not typically needed for boolean flags, but useful for count properties) - Workflow action: Increment
pql_scoreby 20
Example workflow: PQL Score - High Login Frequency
- Enrollment trigger:
logins_last_7_daysis greater than or equal to 5 - Re-enrollment: Allow contacts to re-enroll when
logins_last_7_dayschanges - Workflow action: Set
pql_scoreto current value + 20 - If/then branch: If
pql_scorewas already incremented for this (track with a timestamp property), skip the increment to avoid double-counting
For time-decay scoring (where recent activity is worth more than old activity), you can also build workflows that decrement the score if usage drops off:
Example workflow: PQL Score - Inactivity Penalty
- Enrollment trigger:
days_since_last_loginis greater than 7 - Workflow action: Set
pql_scoreto current value - 10
This prevents a user who was highly engaged 3 weeks ago but hasn't logged in since from staying in your PQL list forever.
Workflow examples for common PQL signals
Here's a master workflow that handles multiple scoring signals in one flow:
Workflow name: PQL Scoring - Master
Enrollment trigger: Contact is created or updated (any of the following properties change: logins_last_7_days, has_invited_team_member, has_connected_integration, projects_created_count, onboarding_completed)
Re-enrollment: Yes, when any enrollment trigger changes
Workflow steps:
- If/then branch: If
onboarding_completedistrueANDpql_score_onboarding_addedis nottrue
- Increment
pql_scoreby 10 - Set
pql_score_onboarding_addedtotrue(prevents re-incrementing)
- If/then branch: If
has_invited_team_memberistrueANDpql_score_invite_addedis nottrue
- Increment
pql_scoreby 20 - Set
pql_score_invite_addedtotrue
- If/then branch: If
logins_last_7_daysis greater than or equal to 5
- Set
pql_score_high_loginto 20 (overwrites previous value, so you're not incrementing every time this workflow runs)
- If/then branch: If
logins_last_7_daysis less than 5
- Set
pql_score_high_loginto 0
- Calculate total: Set
pql_scoreto sum of all component scores (pql_score_onboarding_added+pql_score_invite_added+pql_score_high_login+ ...)
This approach uses component score properties for each signal and recalculates the total score each time the workflow runs. It's more complex to set up but easier to debug and adjust later.
The simpler approach is to increment/decrement the pql_score property directly in each workflow, but you need flag properties to prevent double-counting when a workflow re-enrolls the same contact.
Activating Your PQL Scoring System
Once your workflows are incrementing PQL scores, you need to route high-scoring contacts to sales and nurture contacts who are close to qualifying.
Sales handoff and notification workflows
Create a workflow that enrolls contacts when they cross your PQL threshold and assigns them to a sales rep.
Workflow name: PQL Handoff to Sales
Enrollment trigger: pql_score is greater than or equal to 60
Workflow steps:
- Set property value:
pql_status= "PQL" - Set property value:
pql_qualified_date= today's date - Rotate contact owner: Assign to next available sales rep (or use HubSpot's lead rotation logic)
- Create task: "High-value PQL - Review product usage and reach out" assigned to contact owner, due in 1 business day
- Send internal email notification: Alert the assigned rep that a new PQL is ready for outreach
- If/then branch: If contact is a trial user, send a personalized email from the rep offering to help them get more value from the product
For automating PLG sales handoff, you can also trigger this workflow based on lifecycle stage changes. When a contact moves from "Trial User" to "PQL" (a custom lifecycle stage), the handoff workflow kicks in.
Build a second workflow for near-PQL nurture:
Workflow name: Near-PQL Nurture Sequence
Enrollment trigger: pql_score is between 40 and 59 AND pql_status is "Warm"
Workflow steps:
- Send email: "Getting the most out of [Product]" with tips on features they haven't used yet
- Delay: 2 days
- If/then branch: If
pql_scoreis now 60+, exit workflow (they'll enroll in the PQL handoff workflow) - Send email: Case study showing how a similar company used the product
- Delay: 3 days
- If/then branch: If
pql_scoreis still under 60, create a task for an SDR to send a personalized "how can we help" message
This keeps warm contacts engaged while they're still exploring the product.
Monitoring and optimizing your PQL model
Create a HubSpot report that tracks:
- Number of PQLs created this month
- PQL-to-SQL conversion rate (PQL to "Opportunity" lifecycle stage)
- PQL-to-paid conversion rate
- Days from signup to PQL qualification
- Days from PQL to closed-won
Build a dashboard with these reports plus a breakdown of PQL score distribution (how many contacts are in each 10-point band). If you see a spike of contacts scoring exactly 60 and another spike at 90, you might have a gap in your scoring model where certain behaviors aren't being captured.
Run cohort analysis on converted customers. Pull all contacts who closed-won in the past quarter and look at their PQL score at the time they purchased. If most of them were scoring 80+ but your threshold is 60, you're sending sales too many low-intent contacts. Raise the threshold or adjust point values.
A/B test different scoring models by assigning contacts to different workflows based on signup date (odd days get Model A, even days get Model B) and compare conversion rates after 90 days. This is the only way to know if your adjustments actually improve sales efficiency.
For more on building and refining PQL scoring models, track feedback from your sales team. If they're telling you that PQLs aren't converting, ask them which specific contacts scored high but didn't buy. Review those contacts' product usage patterns and identify the signal that led to the false positive. Maybe "invited 5 teammates" is a vanity metric if those teammates never logged in.
FAQ
What is a PQL (Product-Qualified Lead)?
A PQL is a user who has demonstrated meaningful engagement with your product that indicates readiness to purchase. Unlike MQLs (marketing-qualified leads) who are scored based on demographic data and content engagement, PQLs are scored based on actual product usage. Common PQL signals include completing onboarding, inviting team members, using core features multiple times, and logging in frequently.
How do you build a lead scoring model in HubSpot?
Create custom properties to track each scoring signal, then build workflows that increment a score property when those signals fire. For PQL scoring, sync product usage data into HubSpot as custom properties (logins, features used, team invites). Set up workflows that enroll when these properties update and increment a pql_score number property. Set a threshold score (typically 60-100 points) that triggers sales handoff.
What is an MQL lead and how is it different from a PQL?
An MQL (marketing-qualified lead) is qualified based on demographic fit and marketing engagement: they match your ideal customer profile and have engaged with your content (downloaded an ebook, attended a webinar, visited pricing pages). A PQL is qualified based on product usage: they've signed up for your product, completed activation milestones, and demonstrated value realization. For product-led companies, PQLs convert 3-5x better than MQLs because product usage is a stronger signal of purchase intent than content consumption.
What are the most important metrics to measure for product-led lead generation?
Track activation rate (percentage of signups who complete onboarding and reach the "aha moment"), PQL conversion rate (free/trial users who hit your PQL threshold), PQL-to-paid conversion rate, time to PQL (days from signup to qualification), feature adoption rate (percentage of users who use each core feature), and user engagement frequency (daily/weekly active users). For HubSpot reporting, sync these metrics as custom properties so you can build dashboards that combine product usage with CRM data.
{
"meta_description": "Learn how to implement PQL scoring directly in HubSpot using real-time product data, no data warehouse, SQL, or reverse ETL needed. Built for RevOps teams.",
"word_count": 2198,
"tag": "Guide",
"faq_schema": {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is a PQL (Product-Qualified Lead)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A PQL is a user who has demonstrated meaningful engagement with your product that indicates readiness to purchase. Unlike MQLs (marketing-qualified leads) who are scored based on demographic data and content engagement, PQLs are scored based on actual product usage. Common PQL signals include completing onboarding, inviting team members, using core features multiple times, and logging in frequently."
}
},
{
"@type": "Question",
"name": "How do you build a lead scoring model in HubSpot?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Create custom properties to track each scoring signal, then build workflows that increment a score property when those signals fire. For PQL scoring, sync product usage data into HubSpot as custom properties (logins, features used, team invites). Set up workflows that enroll when these properties update and increment a pql_score number property. Set a threshold score (typically 60-100 points) that triggers sales handoff."
}
},
{
"@type": "Question",
"name": "What is an MQL lead and how is it different from a PQL?",
"acceptedAnswer": {
"@type": "Answer",
"text": "An MQL (marketing-qualified lead) is qualified based on demographic fit and marketing engagement: they match your ideal customer profile and have engaged with your content (downloaded an ebook, attended a webinar, visited pricing pages). A PQL is qualified
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.