HubSpot is the central CRM for most B2B SaaS scale-ups. But without product data, HubSpot is blind to what users actually do. This article gives you the concrete steps to get event data out of your product and into HubSpot automatically, which custom properties to create, and how to build workflows that move PQLs through the pipeline on their own.
The technical integration from product data into HubSpot sounds complex but is genuinely doable for any team with basic engineering capacity. There are three routes, and for each one I give you the concrete steps.
Step 1: Decide which product data you actually need
Before you start with the technical integration, you need to decide which product data you want in HubSpot. The trap is to start with "send everything" — that leads to a polluted CRM with hundreds of properties that nobody uses.
Start with the minimal set that supports your PQL definition. For most PLG companies, these are the essential properties:
At the contact level:
product_activation_date— The date the user reached the aha momentproduct_last_active_date— Date of the last login or meaningful actionproduct_sessions_last_30_days— Number of sessions in the past 30 daysproduct_key_features_used— List of advanced features the user has touchedproduct_paywall_encounter_count— Number of times the user hit a premium gate and was blockedproduct_invitations_sent— Number of teammate invitations sentproduct_is_pql— Boolean: has this contact crossed the PQL threshold?
At the company level:
product_active_users_count— Number of active users from this company inside the productproduct_team_adoption_score— A 0-100 score measuring the breadth of adoption inside the companyproduct_company_plan— Current subscription (free / team / business / enterprise)
Step 2: Pick your integration route
Route A: Segment to HubSpot Destination (recommended)
If you already use Segment for event tracking, the HubSpot Destination is the most elegant option. You add HubSpot as a destination in Segment (via the Segment App directory), configure the property mapping, and events flow through automatically.
The setup in Segment:
- Go to Connections → Destinations → Add Destination → search for "HubSpot"
- Connect your HubSpot portal via OAuth
- Configure the event-to-property mapping:
identify()calls map to HubSpot Contact Propertiesgroup()calls map to HubSpot Company Propertiestrack()calls can optionally be mapped to HubSpot Custom Events (useful for event-based workflows)
Practical tip: don't only fire identify() at signup. Fire it again after every meaningful threshold (activation reached, 10th session, paywall hit). That keeps HubSpot properties effectively real-time.
Route B: Direct HubSpot Contacts API
For teams without Segment: push product data straight into HubSpot via the Contacts API. On every meaningful backend event, you make an API call to HubSpot.
Example in Python:
import hubspot
from hubspot.crm.contacts import SimplePublicObjectInputForCreate
client = hubspot.Client.create(access_token="YOUR_TOKEN")
# Update contact property after activation
properties = {
"product_activation_date": "2025-06-01",
"product_is_pql": "true"
}
client.crm.contacts.basic_api.update(
contact_id=hubspot_contact_id,
simple_public_object_input={"properties": properties}
)
The key is the mapping between your product user ID and the HubSpot contact ID. Store the HubSpot contact ID inside your product database when an account is created (either via the Contacts Create API or via the Forms API at signup).
Route C: Amplitude or Mixpanel native HubSpot integration
Amplitude has a native HubSpot integration that lets you sync Behavioral Cohorts (groups of users who completed a specific action sequence) into HubSpot Contact Lists. Those lists update automatically as new users fall into the cohort.
The setup in Amplitude:
- Create a Behavioral Cohort that defines your PQL criteria (e.g., "performed activation_event AND had 5+ sessions in the past 14 days")
- Go to the Cohort → Sync → HubSpot
- Select the HubSpot list you want to sync into (create it in HubSpot first)
- Set the sync frequency (daily is usually enough)
Step 3: Create the custom properties in HubSpot
Go to HubSpot Settings → Properties → Create Property. Create each property on the right object (Contact or Company).
Recommended property types:
- Dates: use the Date picker property type
- Counters (sessions, invitations): use the Number property type
- Booleans (is_pql, activation_reached): use the Single checkbox property type
- Lists (features_used): use the Multi-line text or Enumeration property type
- Scores: use the Number property type
Group all product data properties into a dedicated Property Group: "Product Usage Data". That makes them easy to find for both sales and marketing.
Step 4: Build the PQL workflows
Once product data is in HubSpot, you can build workflows that automatically take action based on product behavior. The three most valuable workflows:
Workflow 1: Create a PQL deal
Trigger: Contact property product_is_pql becomes true
Actions:
- Create a Deal in the PQL pipeline, stage "PQL Identified"
- Associate the deal with the contact and the associated company
- Assign the deal to the right AE (based on company size or territory)
- Send an internal notification to the AE that includes the relevant product data
Workflow 2: Paywall trigger immediate outreach
Trigger: Contact property product_paywall_encounter_count becomes >= 1 AND company_employees >= 25
Actions:
- Add the contact to the email sequence "Paywall Encounter - Upgrade Offer"
- Send the AE a task: "Hot PQL: paywall hit at [company name]"
- Wait 24 hours
- If no response: send a follow-up email with social proof from comparable companies
Workflow 3: Re-engagement for nearly-activated users
Trigger: Contact is signed up, but product_activation_date is empty AND product_last_active_date is more than 7 days ago
Actions:
- Send an email: "Have you tried [product name] for [specific use case]?"
- Wait 5 days
- If no activation: send an email with a product tour or video walkthrough
- Wait 7 days
- If still no activation: mark as "churned_free" and exclude from further nurturing
Step 5: Reporting on product data inside HubSpot
With product data in HubSpot you can build reports that were previously impossible. The most valuable ones:
- Activation rate per cohort: What percentage of signed-up users hits the activation threshold? Segmented by acquisition channel, industry, or company size.
- PQL volume per week: How many new PQLs are generated per week? Trending up or down?
- Time-to-PQL: Average number of days from signup to PQL qualification. A benchmark for the health of your onboarding.
- PQL-to-Closed-Won conversion rate: What percentage of PQLs converts to a paying customer? Segmented by PQL trigger type to see which triggers convert best.
For more on building out the full PLG data stack, see the PLG stack: which tools you actually need, and for the outbound side of product behavior, see PLG signals as outbound triggers.
Conclusion: it's less complex than it sounds
Most PLG companies postpone the product-data-to-HubSpot integration because it sounds technical. In practice, a team with one developer can get the Segment-HubSpot integration working in two days. Creating the custom properties and the first workflows takes another day.
The ROI is immediate: from navigating blind with thousands of free users to a CRM that knows exactly which 5% are ready for a sales conversation. That's the foundational shift most PLG companies are still missing.