HubSpot Integration Setup
Connect Parsley to HubSpot CRM. Sync leads, buyer intent, and chatbot conversation summaries to contact records automatically.
Connect Parsley to HubSpot CRM for automatic lead and conversation sync. This guide walks you through setup and verification.
Quick Setup
- Have a HubSpot account with API access
- Navigate to Hub > Integrations in Parsley
- Click Connect on the HubSpot card
- Authorize Parsley in the HubSpot OAuth popup
- Verify the connection shows "Connected" status
That's it. Leads and conversations now sync automatically.
Prerequisites
- A HubSpot account - Free CRM works, though some features require Sales Hub. Sign up at hubspot.com if you don't have one.
- A Parsley account - CRM integrations are included on every account; there is no add-on or upgrade. Sync runs off conversations, so you need conversation balance for data to reach your CRM - 10 free at signup, then 25¢ each. View pricing.
- Admin access to your HubSpot portal - You'll need permission to authorize third-party apps.
- Admin of your Parsley organization - distinct from the HubSpot portal admin access above. If your Parsley account belongs to an organization, only an org admin can connect or change the CRM connection. The connection is shared by the whole team, so one admin connects it once on everyone's behalf. Solo accounts with no organization are unaffected.
Step 1: Connect to HubSpot
From your Parsley dashboard:
- Go to Hub in the left sidebar
- Click Integrations
- Find the HubSpot card
- Click Connect
This opens HubSpot's OAuth authorization page. You'll see the permissions Parsley is requesting:
- Contacts (read-write) - To create and update Contact records and attach conversation summaries as Notes
- Contact property schemas (write) - To create Parsley's custom contact properties (
parsley_lead_quality,parsley_intent_signal,parsley_topics,parsley_source) on first connect
Click Connect app to authorize the connection.
Step 2: Contact Sync
Contact sync is enabled by default. Here's what happens when you capture a lead:
| Parsley Field | HubSpot Property |
|---|---|
email | |
| First Name | firstname |
| Last Name | lastname |
| Phone | phone |
| Company | company |
| Job Title | jobtitle |
How it works:
- Parsley uses HubSpot's upsert endpoint
- If a Contact with that email exists, Parsley updates the record
- If not, Parsley creates a new Contact
- The company name is written to the Contact's
companyproperty (Parsley does not create or associate Company records)
Sync triggers:
- Lead capture via contact exchange form
- Lead capture via chatbot conversation
- Contact form submissions on your profile
Step 3: Conversation Sync
When a prospect has a meaningful chatbot conversation on your Parsley profile, the full context syncs to HubSpot as a Note attached to their Contact record.
What syncs to HubSpot Notes:
- Conversation summary - Key points and topics discussed
- Lead quality score - Hot, Warm, or Cold based on signals
- MEDDIC signals - Metrics, Economic Buyer, Decision Criteria, Decision Process, Identify Pain, Champion indicators with evidence quotes
- Engagement metrics - Message count, session duration, return visitor status
- Knowledge gaps - Questions Parsley's AI couldn't answer
Example Note in HubSpot:
Parsley Conversation Summary
Lead Quality: Hot
MEDDIC Signals:
• Metrics: "We need to reduce response time by 40%"
• Economic Buyer: Decision maker (VP Sales)
• Decision Criteria: "Integration with HubSpot is a must-have"
• Decision Process: "We're evaluating three vendors this quarter"
• Identify Pain: "Our current solution doesn't integrate with HubSpot"
• Champion: "I'm leading the evaluation internally"
Engagement:
• Messages: 12
• Duration: 8 minutes
• Return visitor: Yes
Key Topics:
• Integration capabilities
• Pricing for teams
• Implementation timeline
This context appears in the Contact's activity timeline before your first call.
Step 4: Custom Discovery Fields Sync (Optional)
Beyond Parsley's built-in parsley_* properties, you can configure owner-defined discovery fields that the chatbot captures during conversations - "Company size", "Current CRM", "Hiring sales reps?" - on Chatbot > Lead Capture in your Parsley dashboard.
When the chatbot captures one of these values, Parsley writes it to a matching property on the Contact record in HubSpot.
Pick where each field syncs
Each discovery field row on Chatbot > Lead Capture has a Sync to HubSpot combobox alongside Type and Format. The combobox shows every writable property on your HubSpot Contact object - pick the one that should receive captured values (e.g. numemployees for a Company size field).
Three options are available for every field:
- An existing HubSpot property - The field's captured value lands directly on that property. No CRM-side setup required.
- Auto-match by name (default) - Parsley snake-cases your field label and prefixes it with
parsley_. For example, "Company size" becomesparsley_company_size. If that property exists in your HubSpot Contact object, the sync works; if not, it logs and skips. - Don't sync to HubSpot - Captured value stays inside Parsley only.
Auto-match naming convention
If you stick with auto-match, Parsley computes the property name like this:
| Discovery field label | HubSpot property name |
|---|---|
| Company size | parsley_company_size |
| Hiring sales reps? | parsley_hiring_sales_reps |
| Current CRM | parsley_current_crm |
| Top 3 priorities | parsley_top_3_priorities |
You can create matching properties in HubSpot (Settings > Properties > Contact properties > Create property), or skip the CRM-side setup entirely by picking an existing HubSpot property from the combobox instead.
Current limitation: Person vs Company fields
Discovery fields marked as About: Their company still write to the Contact record in this release, not the Company record. Cross-object Company writes are on the roadmap for when paying customers need them.
If you need company-level data on HubSpot Companies today, set the field's About to "The visitor" - it'll land on the Contact and you can use a HubSpot workflow to copy it to the associated Company.
Step 5: Verify the Connection
- Check the integration status - The HubSpot card should show "Connected" with your portal ID
- Capture a test lead - Use your own email to fill out your profile's contact form
- Check HubSpot - Within a few seconds, you should see a new Contact record (or an updated one if you already exist)
- Have a chatbot conversation - Ask a few questions on your profile's chatbot
- Check the Contact's timeline - The conversation summary should appear as a Note
Troubleshooting
"Only organization admins can manage the CRM connection"
You are a member of a Parsley organization but not an admin of it. The CRM connection is shared by the whole team, so only an org admin can create or change it.
Clicking Connect shows this message as a "Connection Failed" notification and you stay on the integrations page - the HubSpot authorization flow never starts, so you are never sent to HubSpot's OAuth screen.
Ask an org admin to connect HubSpot. Once they have, it applies to everyone - every rep's captured leads sync to the same HubSpot portal, and you do not need to connect it yourself.
Note this is about your Parsley organization, not your HubSpot portal permissions - the two are unrelated, and being a HubSpot admin does not let you past this check.
"Connection Failed" Error
- Make sure you're logged into the correct HubSpot portal
- Check that you have admin permissions to authorize third-party apps
- Try disconnecting and reconnecting
Leads Not Syncing
- Verify the integration shows "Connected" status
- Check that you have conversation balance - sync runs off conversations, so at zero balance the agent stops answering and nothing reaches your CRM
- Ensure the lead has a valid email address (required for HubSpot matching)
Conversations Not Appearing as Notes
- Conversation sync triggers when the visitor shares their email during the conversation - anonymous conversations cannot be attached to a Contact
- Check that "Sync conversations" is toggled on in the HubSpot card on Hub > Integrations
- Notes appear in the Contact's activity timeline, not as a separate view
Rate Limit Errors
HubSpot allows 100 requests per 10 seconds. If you're capturing many leads simultaneously, an individual sync can occasionally fail on a rate limit - the failure is logged, and the contact re-syncs on that prospect's next conversation.
Automate Follow-Ups with HubSpot Workflows
Parsley syncs buyer intent (parsley_lead_quality), the strongest intent signal (parsley_intent_signal), and conversation topics (parsley_topics) as properties on Contact records; MEDDIC signals with evidence quotes land in the conversation Note. HubSpot Workflows can trigger actions when these properties change - so you can automatically follow up with hot leads the moment they appear.
Example: Enroll hot leads in an email sequence
This workflow sends a follow-up email sequence when Parsley scores a lead as Hot.
Step 1: Create a new Workflow
- In HubSpot, go to Automation > Workflows
- Click Create workflow and choose Contact-based
- Select Blank workflow
Step 2: Set the enrollment trigger
- Click Set up triggers
- Choose Contact properties
- Select parsley_lead_quality and set the condition to is equal to Hot
- Optionally add a second filter: parsley_intent_signal is equal to high_intent for even more targeted follow-up
Step 3: Add your actions
Choose one or more actions when a hot lead enrolls:
- Send email - Use a HubSpot email template personalised with the contact's name and company. The conversation Note on their timeline gives you context to reference. See follow-up email templates based on intent signals for proven templates.
- Create a deal - Auto-create a deal in your pipeline with the contact associated
- Assign a contact owner - Route the lead to the right rep based on territory or round-robin
- Send internal notification - Alert the sales team via email or Slack integration
- Add a delay - Wait 2 hours, then send a second touchpoint
Step 4: Turn on the Workflow
Click Review and publish. The next time Parsley scores a lead as Hot, HubSpot enrolls them automatically.
Other useful Workflows
| Enrollment trigger | Action | Use case |
|---|---|---|
parsley_lead_quality = Hot | Send email sequence + create deal | Immediate follow-up for high-intent leads |
parsley_lead_quality = Warm | Add to nurture email sequence | Longer-term engagement for evaluators |
parsley_intent_signal = High Intent | Send Slack notification to sales | Real-time alert for buying signals |
parsley_topics contains "Pricing" | Create task for rep | Prospect asked about pricing |
Tips
- Check the Contact's activity timeline. Parsley attaches a Note with MEDDIC signal quotes, engagement metrics, and knowledge gaps. Reference specific details from the Note in your follow-up.
- Build Smart Lists like "Parsley Hot Leads" by filtering Contacts on
parsley_lead_quality = Hot. Use these lists for targeted email campaigns. - Combine with Parsley's owner alerts. Parsley emails you when a hot lead appears. HubSpot Workflows handle the prospect follow-up. Two systems, two audiences, no duplication.
- Sales Hub users can use Sequences instead of Workflows for more personalised multi-touch follow-up with reply detection.
What's Next
Questions? Contact us or email peter@parsley.id.
