Enrich HubSpot with Product Usage Data (No Clearbit/Engineering)
Learn how to enrich HubSpot with behavioral product usage data without Clearbit, Breeze, data warehouses, or engineering work. Built for RevOps managers.
Quick answer: Product usage enrichment syncs behavioral data from your product database into HubSpot contact and company records - showing what users actually do, not just who they are. Unlike Clearbit or Breeze Intelligence (which add firmographic data like company size and industry), product usage enrichment tracks login frequency, feature adoption, usage milestones, and engagement levels.
- Clearbit/Breeze Intelligence - Firmographic enrichment (company size, industry, location). Doesn't access your product usage data.
- Reverse ETL (Hightouch, Census) - Powerful but requires a data warehouse, engineering setup, and $350-$800/mo minimum.
- Custom API integration - Full control but ongoing engineering maintenance and HubSpot API rate limits.
- Direct product database sync (Zoody) - No warehouse, no engineering. Connects your product DB directly to HubSpot. $149/mo flat rate.
Why Product Usage Data Matters More Than Firmographic Enrichment
Firmographic data tells you WHO your contacts are. Product usage data tells you WHAT they're doing and HOW engaged they are.
Firmographic enrichment tools like Clearbit, ZoomInfo, and HubSpot's Breeze Intelligence add company size, industry, location, and funding data to your contact records. Useful for initial qualification, but they can't answer:
- Did this user log in this week?
- Have they adopted the core workflow yet?
- Are they a power user or barely active?
- Did they just hit a usage milestone that signals buying intent?
Those signals live in your product database, not in public firmographic datasets. And those are the signals that drive product-led sales, expansion plays, and churn prevention.
The Limitations of Traditional Enrichment Tools
Clearbit and Breeze Intelligence excel at firmographic enrichment. They can't access your application's usage data because that data lives behind your auth layer, in your product database.
Even if you export product usage data to a CSV and manually upload it to HubSpot, that's a one-time snapshot. Behavioral signals change constantly. A user who logged in daily last week might have gone silent this week - a critical churn signal that a static firmographic enrichment will never surface.
Traditional enrichment also costs per contact enriched. Clearbit starts around $99/mo for a small allotment, scaling to $999+/mo for higher volume. You're paying for company size and industry data, not for behavioral signals that indicate actual buying intent.
What Product Usage Signals Can Tell You
Real examples of product usage properties you can sync to HubSpot:
last_login_date- Contact property showing when they last opened the apptotal_logins_last_30_days- Rolling count of login sessionscore_feature_adopted- Boolean flag for whether they've completed your activation workflowcurrent_usage_tier- Enum: "light", "medium", "power_user" based on activityengagement_score- Calculated score combining frequency, recency, feature adoptionfeature_flags_enabled- Array of active feature flags for this userdays_since_last_activity- Inactivity counter for churn prevention triggers
These properties enable workflows that traditional firmographic enrichment can't:
- Auto-enroll contacts in a sales sequence when
engagement_scorecrosses 75 andcurrent_usage_tier= "power_user" - Trigger a retention email when
days_since_last_activity> 14 - Route high-intent PQLs to sales when
core_feature_adopted= true andcompany_size> 50 (combining behavioral + firmographic)
Why RevOps Teams Need Both Types of Data
Firmographic enrichment qualifies the account. Product usage data qualifies the opportunity.
A contact from a 500-person enterprise in your ideal industry looks great on paper. But if they signed up 60 days ago and logged in twice, they're not a hot lead. Meanwhile, a contact from a 20-person startup who logs in daily and has adopted three core features is a better sales opportunity, even if the account doesn't fit your ICP perfectly.
The best lead scoring models combine both:
- Fit score (firmographic): company size, industry, location, tech stack
- Engagement score (behavioral): login frequency, feature adoption, usage milestones
RevOps managers who only enrich with firmographic data miss half the picture.
The Problem with Clearbit, Breeze, and Traditional Enrichment
HubSpot's Breeze Intelligence (formerly Clearbit integration) and standalone Clearbit enrichment focus on firmographic data: company name, employee count, industry, funding, location, tech stack. This data comes from public sources, LinkedIn scraping, and third-party datasets.
Breeze Intelligence cannot access your product database. It has no way to know if a contact logged in yesterday, what features they're using, or whether they've hit activation milestones.
What Clearbit/Breeze Does Well (And What It Doesn't)
What it does well:
- Fills in missing company data on inbound leads (company size, industry, location)
- Adds technographic data (tech stack signals)
- Enriches anonymous website visitors (Clearbit Reveal for ABM)
- Provides intent signals from third-party data (job changes, funding rounds)
What it doesn't do:
- Track product usage or engagement
- Sync real-time behavioral signals from your app
- Show feature adoption or activation milestones
- Identify power users or churn risk based on actual usage
Breeze Intelligence is designed to answer "Who is this lead?" not "What is this user doing in our product?"
The Missing Piece: Behavioral Product Data
Product usage data lives in your application database. Common sources:
- User activity logs (logins, sessions, page views)
- Feature usage events (button clicks, workflow completions)
- Product analytics tools (Mixpanel, Amplitude, PostHog)
- Backend database tables (users, accounts, usage_stats)
This data doesn't flow into HubSpot automatically. You need to build or buy a sync mechanism.
Traditional enrichment vendors don't offer product usage enrichment because they don't have access to your application backend. That's not their business model.
Why RevOps Managers Are Looking for Alternatives
HubSpot Community threads and Reddit posts from the last six months show RevOps managers frustrated with Breeze Intelligence reliability and cost:
- "Breeze enrichment randomly stopped working on half our contacts"
- "Paying $999/mo for Clearbit but still blind to which users are actually engaged"
- "We're a PLG company - we need product signals in HubSpot, not just firmographic data"
The demand is clear: RevOps teams at B2B SaaS companies want behavioral enrichment, not just firmographic enrichment. But most solutions require engineering work, data warehouses, or ongoing maintenance.
Traditional Approaches to Getting Product Data into HubSpot (And Why They're Painful)
There are three common ways to sync product usage data into HubSpot. All require significant time, cost, or engineering resources.
The Data Warehouse + Reverse ETL Approach
How it works:
- Send product events to a data warehouse (Snowflake, BigQuery, Redshift)
- Transform raw events into aggregated usage metrics (dbt models)
- Use a reverse ETL tool (Hightouch, Census, Workato) to sync warehouse tables to HubSpot
Tradeoffs:
- Requires a data warehouse - if you don't have one, that's $150-$500/mo + setup time
- Reverse ETL tools start at $350-$800/mo (Hightouch's entry tier is $350/mo for 10M rows/year, Census starts at $800/mo)
- Engineering-heavy - you need a data engineer to model the warehouse tables, write dbt transformations, and maintain the pipeline
- Latency - most reverse ETL tools run on a schedule (hourly or daily), not real-time
- Ongoing maintenance - schema changes in your product require updating warehouse models and reverse ETL mappings
For companies already running a modern data stack, this works. For smaller SaaS companies or those without dedicated data engineering, it's overkill.
Custom API Integrations
How it works:
Build a backend service that reads product usage data from your database and pushes it to HubSpot's Contacts API or Companies API (POST /crm/v3/objects/contacts/{contactId}).
Tradeoffs:
- Engineering time - 2-4 weeks to build, test, and deploy
- HubSpot API rate limits - 100 requests per 10 seconds on Professional tier, 150/10s on Enterprise. If you're syncing thousands of contacts, you need careful rate limit handling and retry logic.
- Identity matching - you need logic to match product users (by email, user ID, or custom identifier) to HubSpot contact records
- Schema management - every time you add a new product usage property, you need to create the custom property in HubSpot and update your integration code
- Ongoing maintenance - HubSpot API changes, schema drifts, bugs in production
For a one-time sync or a small set of properties, this is doable. For real-time, ongoing product usage enrichment across dozens of properties, it's a maintenance burden.
Why These Solutions Require Engineering Teams
Both approaches (reverse ETL and custom API integration) assume you have:
- A backend engineer or data engineer who can own the pipeline
- Time to build and maintain the integration
- Budget for third-party tools (warehouse, reverse ETL platform)
RevOps managers who want to move fast and don't have engineering bandwidth get stuck. They resort to manual CSV exports and uploads, which defeats the purpose of real-time behavioral enrichment.
The Real-Time Data Challenge
Product usage signals change constantly. A user who was highly engaged last week might drop off this week. A free trial user might hit activation on day 3 and become sales-ready.
If your sync runs daily at midnight, you're always 12-24 hours behind. For product-led sales motions, that lag matters. You want sales reps to see updated engagement scores and usage milestones in real time, before they jump on a call.
Reverse ETL tools can run more frequently (some offer 15-minute syncs), but that increases costs and still isn't real-time. Custom API integrations can be real-time if you trigger them from your application's event stream, but that adds complexity.
How to Enrich HubSpot with Product Usage Data Without Engineering
The direct sync approach bypasses the data warehouse and reverse ETL stack. Instead of:
Product DB → Warehouse → dbt → Reverse ETL → HubSpot
You go:
Product DB → Sync Tool → HubSpot
This approach requires a tool that can:
- Connect directly to your product database (Postgres, MySQL, MongoDB, or read from your product analytics tool)
- Map product users to HubSpot contacts/companies (by email, user ID, or custom field)
- Automatically create custom properties in HubSpot as needed
- Sync usage data in real-time or near-real-time (sub-hour latency)
- Handle schema changes without manual intervention
The Direct Sync Approach
Tools built for this workflow eliminate the warehouse and reverse ETL middle layer. They read directly from your product database or event stream and push updates to HubSpot.
Example flow:
- Connect Zoody (or similar tool) to your Postgres product database using a read-only user
- Select the tables or views containing user activity (e.g.,
users,sessions,feature_usage) - Map the user identifier (email or external_id) to HubSpot's contact records
- Configure which columns to sync as HubSpot custom properties (
last_login_date,total_sessions,feature_flags) - Sync runs continuously - new logins update HubSpot within minutes
No data warehouse. No reverse ETL subscription. No dbt models.
What Product Usage Properties to Track
Start with properties that map directly to revenue signals:
Engagement metrics:
last_login_date(Date) - when they last opened the apptotal_logins_last_30_days(Number) - rolling countdays_since_last_activity(Number) - inactivity counter for churn workflows
Feature adoption:
core_feature_adopted(Boolean) - true if they've completed your activation workflow (e.g., created a project, invited a teammate, sent their first campaign)features_used_count(Number) - how many distinct features they've touchedfeature_flags_active(Text) - comma-separated list of active feature flags
Product tier and usage:
current_plan(Enum) - free, pro, enterprisemonthly_active_seats(Number) - how many team members are activeusage_tier(Enum) - light, medium, power_user (calculated based on activity)
Lifecycle milestones:
trial_start_date(Date)trial_end_date(Date)first_paid_date(Date)activation_completed_date(Date)
Scoring:
engagement_score(Number) - calculated score combining recency, frequency, feature adoptionpql_score(Number) - product-qualified lead score (engagement + fit)
Setting Up Automated Enrichment Flows
Once product usage properties are syncing to HubSpot, build workflows triggered by changes:
PQL routing workflow:
- Trigger: Contact property
engagement_scoreis greater than 75 ANDcurrent_planis "free" - Action: Add to static list "High-Intent PQLs", assign to sales owner, send internal Slack notification
Churn prevention workflow:
- Trigger: Contact property
days_since_last_activityis greater than 14 ANDcurrent_planis "pro" - Action: Enroll in email nurture sequence "Re-engagement Campaign", create task for CSM to reach out
Expansion workflow:
- Trigger: Company property
monthly_active_seatsincreases by 5+ in the last 7 days - Action: Create task for account executive to propose annual contract or enterprise upgrade
Sales enablement workflow:
- Trigger: Deal stage changes to "Demo Scheduled"
- Action: Send internal email to deal owner with contact's
last_login_date,features_used_count,engagement_scoreso they have usage context before the call
Real-Time vs. Batch Syncing Considerations
Real-time sync (event-driven, updates within minutes):
- Best for time-sensitive signals: trial expiration, feature adoption milestones, sudden engagement spikes
- Enables immediate sales handoff when a user hits PQL criteria
- Requires event stream infrastructure or frequent polling
Batch sync (scheduled, hourly or daily):
- Sufficient for aggregate metrics:
total_logins_last_30_days,days_since_last_activity - Lower infrastructure cost and API call volume
- Acceptable for reporting and non-urgent workflows
Most RevOps teams want a mix: real-time for critical handoff signals, batch for reporting metrics. Tools that support both modes give you flexibility without over-engineering.
Use Cases: What You Can Do with Product Usage Enrichment
Product-Led Sales Workflows
Identify high-intent users without manual research:
A user signs up for your free plan, completes onboarding in 2 days, logs in daily for a week, and invites 3 teammates. Their engagement_score crosses 80.
Without product usage enrichment: Sales has no idea this user exists until they submit a "talk to sales" form. Opportunity missed.
With product usage enrichment: HubSpot workflow detects engagement_score > 80 and team_seats_active > 1. Automatically creates a deal, assigns to AE, adds contact to "High-Intent Outreach" sequence.
Real workflow setup:
- Trigger: Contact property
engagement_scorebecomes greater than or equal to 80 - Criteria:
current_planis "free" ANDteam_seats_activeis greater than 1 - Actions:
- Create deal with pipeline "Product-Led Sales" and stage "PQL - Outreach"
- Set deal owner to contact owner (or round-robin if unassigned)
- Enroll contact in sequence "PQL Outreach - High Engagement"
- Send Slack notification to #sales channel with contact name and usage summary
Expansion and Upsell Plays
Spot power users ready for upsell:
A contact on your Pro plan ($99/mo) has usage_tier = "power_user" and features_used_count = 12 (you offer 15 total features). They're clearly getting value.
Expansion workflow:
- Trigger: Contact property
usage_tierchanges to "power_user" ANDcurrent_planis "pro" - Action: Create task for account executive: "Contact is power user on Pro plan - propose Enterprise upgrade or annual contract with discount"
Another example: company property monthly_active_seats jumps from 8 to 15 in the last week. They're growing and likely hitting seat limits.
Expansion workflow:
- Trigger: Company property
monthly_active_seatsincreases by 5 or more in the last 7 days - Action: Email to account owner: "Account [Company Name] added 5+ active seats this week. Check in on expansion opportunity."
Churn Prevention and Retention
Trigger retention campaigns before it's too late:
A contact on a paid plan hasn't logged in for 14 days. days_since_last_activity = 14, last_login_date = 14 days ago.
Churn prevention workflow:
- Trigger: Contact property
days_since_last_activityis greater than 14 ANDcurrent_planis not "free" - Criteria: Contact is not already enrolled in "Churn Prevention Sequence"
- Actions:
- Enroll in email sequence "Win-Back Campaign - Inactive Users"
- Create task for CSM: "Contact inactive for 14+ days - reach out to check in"
- Add to static list "At-Risk - Inactive"
You can also layer in firmographic criteria. If days_since_last_activity > 14 AND company_arr > $10,000, escalate to CSM immediately instead of automated email.
Sales Enablement and Context
Arm reps with usage context before calls:
Sales rep has a demo scheduled with a contact. Before the call, they want to know:
- When did they sign up?
- How active have they been?
- Which features have they tried?
Without product usage enrichment, the rep has to ask engineering to pull a usage report (if they even think to ask). With product usage enrichment, the rep opens the HubSpot contact record and sees:
signup_date: 12 days agolast_login_date: yesterdaytotal_logins_last_30_days: 8features_used_count: 5core_feature_adopted: trueengagement_score: 72
The rep now knows this contact is moderately engaged, has tried core features, and is likely evaluating seriously.
Automated sales briefing workflow:
- Trigger: Deal property
closedateis known (deal is in active pipeline) AND deal stage changes to "Demo Scheduled" - Action: Send internal email to deal owner with summary of contact's product usage properties from the associated contact record
Implementing Product Usage Enrichment: Step-by-Step
Step 1: Identify Your Key Product Signals
Audit your product database and product analytics tool. What tables or events contain usage data?
Example schema (Postgres):
userstable:id,email,signup_date,last_login_at,plan_tiersessionstable:user_id,session_start,session_endfeature_eventstable:user_id,event_name,timestamp
Key signals to prioritize:
- Activation signal - has the user completed your core workflow? (e.g., created a project, sent a campaign, invited a teammate)
- Engagement frequency - how often do they log in? (daily, weekly, monthly)
- Feature breadth - how many features have they tried?
- Recency - when was their last activity?
- Team growth - how many teammates have they invited?
For each signal, decide:
- What HubSpot property will store this? (Date, Number, Boolean, Enum)
- Should it sync to Contact or Company records? (or both?)
- What workflows will trigger off changes to this property?
Step 2: Map Product Users to HubSpot Records
Identity matching is critical. Your product users need to map to HubSpot contact records.
Common matching strategies:
- Email match - if your product requires email signup and you collect email in HubSpot, match on
emailfield - External ID - if you store a HubSpot contact ID or company ID in your product database, use that as a foreign key
- Custom identifier - use a unique identifier field (e.g.,
user_uuidoraccount_id) and create a custom HubSpot property to store it
Most tools support matching by email out of the box. If your product allows multiple users per email (rare) or doesn't require email (consumer apps), you'll need a custom identifier strategy.
Create custom properties for product identifiers:
In HubSpot, create custom properties:
product_user_id(Single-line text) - stores your internal user ID for referenceproduct_account_id(Single-line text) - stores your internal account/company ID
Sync these IDs first, then use them for matching on subsequent syncs.
Step 3: Configure Automated Syncing
Once you've identified signals and matching strategy, configure the sync tool.
Example Zoody configuration:
- Connect to Postgres product database using read-only credentials
- Select
userstable as source - Map
emailcolumn to HubSpot contact email (identity match) - Map additional columns to HubSpot custom properties:
last_login_at→last_login_date(Date property, auto-created)plan_tier→current_plan(Dropdown property with options: free, pro, enterprise)signup_date→signup_date(Date property)
- Set sync frequency: real-time (on database change) or hourly batch
- Enable automatic custom property creation (tool creates properties in HubSpot if they don't exist)
For aggregated metrics (not in a single table):
If you need calculated metrics (e.g., total_logins_last_30_days), options:
- Create a database view that pre-aggregates the metric, then sync the view
- Use your product analytics tool's calculated properties (Mixpanel, Amplitude) and sync those
- Build the aggregation in HubSpot using calculation properties (if source data is already synced)
Step 4: Build Workflows and Automation
With product usage properties flowing into HubSpot, build workflows that act on the data.
Example workflow: PQL handoff
- Go to HubSpot Workflows → Create workflow → Contact-based
- Enrollment trigger: Contact property
engagement_scoreis greater than or equal to 75 - Re-enrollment: Allow contacts to re-enroll when trigger criteria is met (in case score drops and rises again)
- Filter criteria:
current_planis "free" ANDengagement_score_last_updatedis in the last 1 day (prevents stale scores from triggering) - Actions:
- Create deal: Pipeline "Product-Led Sales", Stage "PQL - Outreach", Owner = contact owner
- Set contact property:
lifecycle_stage= "Product Qualified Lead" - Enroll in sequence: "PQL Outreach - High Engagement"
- Send internal email to sales team with contact link and usage summary
Example workflow: Churn prevention
- Enrollment trigger: Contact property
days_since_last_activityis greater than 14 - Filter criteria:
current_planis any of "pro", "enterprise" (exclude free users) - Actions:
- Add to static list: "At-Risk - Inactive Users"
- Create task for CSM: "Contact inactive 14+ days - reach out"
- Wait 3 days
- If
days_since_last_activityis still greater than 14, enroll in email sequence "Win-Back Campaign"
Test with a small segment first:
Don't roll out to your entire database on day one. Create a test list of 50-100 contacts, run the sync and workflows, verify data accuracy and workflow behavior. Then expand to full contact list.
How Zoody Makes Product Usage Enrichment Simple
Zoody connects your product database directly to HubSpot without requiring a data warehouse, reverse ETL tool, or custom engineering.
No Data Warehouse, No Engineering Required
Most product usage enrichment solutions assume you have a modern data stack: warehouse, dbt, reverse ETL. Zoody skips all of that.
How Zoody works:
- Connect Zoody to your product database (Postgres, MySQL, MongoDB) using a read-only user - or connect to your product analytics tool (Mixpanel, Amplitude, PostHog)
- Select the tables or events you want to sync (e.g.,
users,sessions,feature_usage) - Zoody automatically maps columns to HubSpot custom properties, creating them if they don't exist
- Set your sync frequency: real-time (triggered on database writes) or scheduled batch (hourly, daily)
- Zoody matches product users to HubSpot contacts by email or custom identifier
No data warehouse subscription. No reverse ETL tool. No engineering work.
Tradeoffs:
- HubSpot only - Zoody syncs to HubSpot, not Salesforce or other CRMs. If you're on HubSpot, this is the fastest path.
- Not a replacement for product analytics - Zoody syncs usage data to HubSpot, but it's not a product analytics tool. You still need Mixpanel, Amplitude, or your own event tracking for detailed analysis.
- Limited transformation - Zoody syncs database columns or pre-aggregated metrics. If you need complex transformations (multi-table joins, advanced calculations), you'll need a database view or calculated fields in your product analytics tool.
Real-Time Product Signals in HubSpot
Zoody syncs in near-real-time (updates within minutes of database changes) or on a schedule.
Real-time mode:
- Zoody watches your product database for changes (using logical replication or polling)
- When a user logs in and
last_login_atupdates, Zoody pushes the new value to HubSpot within 60-120 seconds - Ideal for time-sensitive signals: trial expiration, feature adoption milestones, PQL scoring
Scheduled batch mode:
- Zoody runs a full sync on your chosen schedule (hourly, daily)
- Lower API call volume, sufficient for aggregate metrics like
total_logins_last_30_days - Cheaper on API rate limits if you have a large contact base
Most customers use real-time mode for critical properties (engagement_score, core_feature_adopted) and batch mode for reporting metrics.
Built for RevOps Teams
Zoody's interface is designed for RevOps managers who know HubSpot but not SQL or data engineering.
Setup flow:
- Authenticate with HubSpot (OAuth)
- Connect your product database (provide connection string)
- Zoody shows you available tables and columns
- Click the columns you want to sync
- Zoody auto-generates HubSpot custom property names (you can rename)
- Choose real-time or scheduled sync
- Click "Start Sync"
No code, no API keys to manage (beyond initial connection), no schema files.
Pricing:
- Sandbox - Free, 100 contacts, connects to test databases
- Pro - $149/mo flat rate, unlimited contacts, unlimited properties, real-time sync
- Growth - $249/mo, adds company-level sync, advanced identity matching, priority support
Flat monthly rate, no per-contact or per-row pricing like reverse ETL tools.
Support:
Because Zoody is built for RevOps managers (not engineers), support is geared toward HubSpot workflow setup, property mapping, and identity matching questions - not database optimization or data modeling.
Complementary to firmographic enrichment:
Use Breeze Intelligence or Clearbit for firmographic data (company size, industry). Use Zoody for product usage data (login frequency, feature adoption). Both enrich different dimensions of your contact records.
Combining Product Usage Data with Firmographic Enrichment
The Best of Both Worlds Approach
Firmographic enrichment and product usage enrichment solve different problems. Use both.
Firmographic enrichment (Clearbit, Breeze Intelligence):
- Company size (employee count, ARR estimate)
- Industry and vertical
- Location (HQ city, country)
- Tech stack (technologies used)
- Funding and growth signals
Product usage enrichment (Zoody, custom integration, reverse ETL):
- Login frequency and recency
- Feature adoption and activation
- Usage tier and engagement score
- Product milestones and lifecycle events
Combined use case:
Target high-fit accounts with high engagement for sales outreach.
Lead scoring formula:
- Fit score (0-50):
- Company size 50-500 employees: +20
- Industry = SaaS or Tech: +15
- Location = US, Canada, UK: +10
- Uses HubSpot (tech stack signal): +5
- Engagement score (0-50):
- Logins last 7 days > 3: +15
- Core feature adopted: +20
- Features used count > 5: +10
- Days since last activity < 3: +5
Total score = Fit + Engagement (max 100)
Contacts scoring 80+ are high-fit, high-engagement PQLs. Route to sales immediately.
Workflow setup:
- Trigger: Calculated property
total_lead_score(Fit + Engagement) becomes greater than or equal to 80 - Action: Create deal, assign to AE, enroll in sequence
Without product usage data, you'd route based on firmographic fit alone - resulting in low-quality leads who haven't engaged. Without firmographic data, you'd route highly engaged users from tiny companies with no budget. Both data types together create better targeting.
Building Comprehensive Lead Scoring Models
Step 1: Define fit criteria
Use firmographic data to define your ICP:
- Company size: 50-5,000 employees
- Industries: SaaS, Marketing Tech, E-commerce
- Locations: US, Canada, UK, Australia
- Tech stack: Uses HubSpot, Salesforce, or Stripe (buying signals)
Assign point values to each criterion. Store as calculated property fit_score.
Step 2: Define engagement criteria
Use product usage data to measure engagement:
- Frequency: logins per week, sessions per month
- Recency: days since last activity
- Depth: feature adoption, workflow completion
- Growth: team invites, seat expansion
Assign point values. Store as property engagement_score.
Step 3: Combine into total score
Create calculated property total_lead_score = fit_score + engagement_score.
Step 4: Route based on score + stage
- Score 80-100 + free plan = PQL, route to sales
- Score 60-79 + free plan = warm lead, nurture sequence
- Score 80-100 + paid plan = expansion opportunity, route to account management
- Score 30-59 + paid plan + inactive = churn risk, retention workflow
This model surfaces the right leads at the right time, combining who they are (firmographic) with what they're doing (behavioral).
FAQ
What's the difference between product usage enrichment and tools like Clearbit or Breeze?
Clearbit and Breeze Intelligence enrich contact records with firmographic data - company size, industry, location, tech stack - sourced from public datasets and third-party data providers. They tell you WHO the contact is and whether they fit your ICP.
Product usage enrichment syncs behavioral data from your product database - login frequency, feature adoption, usage milestones, engagement scores. It tells you WHAT the contact is doing inside your product and HOW engaged they are.
Firmographic enrichment qualifies the account. Product usage enrichment qualifies the opportunity. You need both for complete lead scoring.
Do I need a data warehouse to sync product usage data to HubSpot?
No, but most traditional solutions (reverse ETL tools like Hightouch and Census) assume you have one. They're built for the modern data stack: product events → warehouse → dbt transformations → reverse ETL → HubSpot.
Tools like Zoody skip the warehouse and connect directly to your product database or product analytics tool (Mixpanel, Amplitude). This eliminates warehouse costs ($150-$500/mo), reverse ETL subscriptions ($350-$800/mo), and the engineering work to maintain the pipeline.
If you already have a data warehouse and reverse ETL for other use cases (syncing to Salesforce, Marketo, etc.), keep using it. If you're only syncing product data to HubSpot, direct database sync is faster and cheaper.
How can I get product usage data into HubSpot without engineering resources?
Use a tool that connects your product database directly to HubSpot and handles identity matching, property creation, and sync scheduling automatically.
No-code options:
- Zoody - connects product database or analytics tool to HubSpot, no warehouse required. RevOps manager can set up in 15 minutes.
- HubSpot Operations Hub + custom code workflows (requires Professional or Enterprise tier) - write JavaScript to call external APIs or query databases. Steeper learning curve, but no external tool subscription.
Low-code options:
- Zapier or Make (formerly Integromat) - build automation flows that pull data from your product (via API) and push to HubSpot. Limited to scheduled batch syncs, can get expensive at volume.
Avoid solutions that require you to build and maintain a custom API integration. That defeats the "no engineering" requirement.
What product usage signals should I track in HubSpot for product-led sales?
Start with signals that indicate buying intent or readiness for sales conversation:
Critical signals:
engagement_score- composite score combining frequency, recency, feature adoptioncore_feature_adopted- boolean flag for activation milestonecurrent_plan- free, pro, enterprise (to segment PQLs from expansion opportunities)last_login_date- recency signal for churn risk and sales timing
Supporting signals:
total_logins_last_30_days- frequency metricfeatures_used_count- breadth of adoptionteam_seats_active- multi-user accounts are higher intentdays_since_last_activity- inactivity counter for churn prevention
Milestone flags:
trial_end_date- urgency signal for trial-to-paid conversionfirst_paid_date- lifecycle transitionexpansion_milestone_reached- custom flag for usage thresholds (e.g., "sent 1,000 emails", "created 10 projects")
Prioritize properties that directly trigger workflows: PQL routing, churn prevention, expansion plays. Avoid syncing every raw event - aggregate into meaningful metrics.
Can I use product usage enrichment alongside Clearbit or Breeze Intelligence?
Yes, they're complementary. Use Clearbit or Breeze Intelligence for firmographic data (company size, industry, location). Use product usage enrichment for behavioral data (login frequency, feature adoption, engagement).
Both enrich different dimensions of your contact records. Best practice: build lead scoring that combines both.
Example combined workflow:
- Firmographic criteria (from Breeze): Company size 100-1,000 employees, Industry = SaaS, HQ location = US
- Behavioral criteria (from product usage sync): Engagement score > 75, Core feature adopted = true, Logins last 7 days > 3
- Action: If both criteria met, create deal and route to sales as high-fit, high-engagement PQL
This avoids routing low-engagement leads from great-fit companies (waste of sales time) and avoids routing highly engaged users from tiny companies with no budget (poor close rate).
Run both enrichment systems in parallel. They don't conflict - they write to different custom properties on the same contact records.
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
Be one of the first 10
Founding testers shape what Zoody becomes. Free forever once you're in, every paid feature unlocked, direct Slack with the founder.