HubSpot Integration Guide
Connect your HubSpot CRM to Bearconnect to automatically sync leads, log LinkedIn activities, and keep your sales pipeline up to date. This guide walks you through every step - from connecting your HubSpot account to exporting leads and configuring sync settings.
Table of Contents
- What You Need
- Connecting HubSpot
- After Connecting
- Connecting HubSpot to a Campaign
- Exporting Leads to HubSpot
- HubSpot Settings
- Token Management
- Testing Your Connection
- Disconnecting HubSpot
- Troubleshooting
Quick Start
Already have a HubSpot Legacy App Token? Here is the fastest path:
- In Bearconnect: Go to Integrations > HubSpot > Connect.
- Enter a name and paste your Legacy App Token (starts with
pat-). - Click Test Token to verify, then click Connect.
- Open a campaign > Integrations tab > Connect Integration > select HubSpot and enable events.
If you do not have a Legacy App Token yet, follow the full setup below.
What You Need
Before you start, make sure you have:
- A Bearconnect account with an active subscription.
- A HubSpot account (Free, Starter, Professional, or Enterprise).
- Admin or Super Admin permissions in your HubSpot account (required for creating legacy apps).
Connecting HubSpot
Go to Integrations in the left sidebar of your Bearconnect dashboard. Find HubSpot in the Available Integrations section and click Connect.
You will need a Legacy App Token from HubSpot. If you do not have one yet, follow the steps below to create it.
Step 1: Create a Legacy App in HubSpot
- Log in to your HubSpot account.
- Go to Development in the top navigation.
- Click Legacy apps in the left sidebar.
- Click Create legacy app and select Private.
Step 2: Configure Scopes
Under the Scopes tab of your new app, you need to grant the following permissions. You can copy the complete list from the Bearconnect connection form (there is a "Copy All" button).
Required Scopes:
crm.objects.contacts.read
crm.objects.contacts.write
crm.objects.companies.read
crm.objects.companies.write
crm.objects.deals.read
crm.objects.deals.write
crm.schemas.contacts.read
crm.schemas.contacts.write
crm.schemas.companies.read
crm.schemas.companies.write
crm.schemas.deals.read
crm.schemas.deals.write
crm.lists.read
crm.lists.write
timeline
Search for each scope in HubSpot's scope selector and enable it. The "Copy All" button in Bearconnect copies all scope names as a comma-separated list that you can use to search one by one.
Optional Scopes (Enterprise only):
If you are on a HubSpot Enterprise plan and need access to sensitive or highly sensitive data fields, check the "Include sensitive & highly sensitive data scopes" checkbox in the Bearconnect connection form to see the additional scopes:
crm.objects.contacts.sensitive.read
crm.objects.companies.sensitive.read
crm.objects.deals.sensitive.read
crm.objects.contacts.highly_sensitive.read
crm.objects.companies.highly_sensitive.read
crm.objects.deals.highly_sensitive.read
These are read-only scopes. Most users do not need them.
Step 3: Create the App and Copy the Token
- Click Create app in HubSpot.
- Go to the Auth tab.
- Copy the Access Token (it starts with
pat-).
Step 4: Connect in Bearconnect
- Back in Bearconnect, enter a Name for this integration (e.g., "My HubSpot").
- Paste the token into the Legacy App Access Token field.
- (Optional) Click Test Token to verify the connection before saving.
- Click Connect.
Note: The token format is
pat-xx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. The form validates this format and will show an error if the token is malformed.
After Connecting
Once connected, your HubSpot integration appears in the Connected Integrations section. Clicking on it opens a detail panel showing:
- Connection Status - Active, Error, or Disconnected.
- Connection Type - Legacy App (shown as a badge).
- Sync Statistics - Number of contacts synced, sync errors, and last sync time.
- Sync Settings - Current sync mode, direction, and auto-sync status (read-only in the detail panel; editable in HubSpot Settings).
- Features - Contact Sync, Activity Logging, Deal Creation, Two-way Sync.
- Connection Details - When it was connected, provider type, integration ID, and last update time.
What Happens Automatically
When you connect HubSpot, Bearconnect:
- Creates custom properties in your HubSpot account for tracking LinkedIn activity.
- Configures the integration with all currently available events pre-selected as allowed events.
Connecting HubSpot to a Campaign
To start receiving events from a campaign, you need to map HubSpot to that campaign.
- Open the campaign from your dashboard.
- Go to the Integrations tab.
- Click Connect Integration.
- Select your HubSpot integration from the dropdown.
- Choose which events to enable:
- Connection Request Sent - When a connection request is sent to a lead.
- Connection Accepted - When a lead accepts your connection request.
- Message Sent - When a message is sent to a lead.
- Message Replied - When a lead replies to your message.
- Click Connect.
You can select individual events or use the category checkboxes to select/deselect all events in a category at once.
Managing the Mapping
After connecting, the mapping card shows on the campaign's Integrations tab:
- Toggle switch - Turn event forwarding on or off without deleting the mapping.
- Settings icon - Edit which events are enabled.
- Trash icon - Disconnect the integration from this campaign.
Exporting Leads to HubSpot
You can manually export individual leads as contacts to HubSpot.
Step 1: Start the Export
- Go to the Leads page.
- Find the lead you want to export and click the three-dot action menu (⋮) on that row.
- Click Export.
- Select your HubSpot integration from the dropdown.
- Click Export.
Step 2: Configure Field Mappings
Since you selected HubSpot, a second step appears asking you to configure field mappings:
- Lifecycle Stage - Choose the HubSpot lifecycle stage for the exported contact (e.g., Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer, Evangelist).
- Lead Status - Choose the lead status (e.g., New, Open, In Progress, Open Deal, Unqualified, Attempted to Contact, Connected, Bad Timing).
You have three options:
- Export - Save your selections and export the lead.
- Skip & Use Defaults - Export using default values (first option in each dropdown).
- Back - Return to the integration selection step.
Tip: Your field mapping preferences are saved per integration. The next time you export to the same HubSpot integration, your previous selections are pre-filled.
What Gets Sent to HubSpot
The following lead data is synced to HubSpot as a contact:
| Bearconnect Field | HubSpot Field | Notes |
|---|---|---|
| First Name | firstname | |
| Last Name | lastname | |
email | Primary deduplication key | |
| Phone | phone | |
| Company Name | company | |
| Position / Job Title | jobtitle | |
| LinkedIn Profile URL | hs_linkedin_url | HubSpot built-in LinkedIn URL field |
| Website | website | Lead's personal or company website |
| Location | city | Mapped to the City field |
| Profile Headline | bc_profile_headline | LinkedIn headline (Bearconnect custom property) |
| LinkedIn Handle | bc_linkedin_handle | LinkedIn public identifier (Bearconnect custom) |
| Lead Stage | bc_lead_stage | Bearconnect pipeline stage (Bearconnect custom) |
| Lifecycle Stage | lifecyclestage | Configured in the export dialog |
| Lead Status | hs_lead_status | Configured in the export dialog |
If the contact already exists in HubSpot (matched by email or LinkedIn URL), it is updated rather than duplicated.
Custom BearConnect Properties
In addition to the standard fields above, Bearconnect automatically creates and populates the following custom properties on every synced HubSpot contact:
| Custom Property | Value | Description |
|---|---|---|
bc_lead_id | Bearconnect lead ID | Links the HubSpot contact back to the lead in Bearconnect. |
bc_lead_url | Direct link to the lead in Bearconnect | Click this URL to jump directly to the lead's profile in your Bearconnect dashboard. |
bc_campaign_name | Campaign name | The name of the campaign the lead was synced from. |
bc_synced_at | ISO timestamp | When the contact was last synced from Bearconnect. |
bc_profile_headline | LinkedIn headline | The lead's LinkedIn profile headline. |
bc_linkedin_handle | LinkedIn handle | LinkedIn public identifier (vanity URL slug). |
bc_lead_stage | Lead stage | Current stage of the lead in the Bearconnect pipeline. |
These properties are created automatically during the first sync (or when you click Test Connection). If they are manually deleted from HubSpot, Bearconnect will recreate them on the next sync.
HubSpot Settings
To access HubSpot-specific settings:
- Go to Integrations in the left sidebar.
- Click on your connected HubSpot integration.
- In the detail panel, click Settings (or navigate directly to Integrations > HubSpot > Settings).
Available Settings
| Setting | Options | Description |
|---|---|---|
| Automatic Sync | On / Off | When enabled, events are automatically forwarded to HubSpot as they occur. |
| Sync Mode | Real-time, Batch (15 min), Manual Only | Controls how often events are sent. Real-time sends immediately; Batch groups events into 15-minute intervals; Manual means you must trigger syncs yourself. |
| Sync Direction | Outbound Only, Inbound Only, Bidirectional | Controls the direction of data flow. Outbound sends data from Bearconnect to HubSpot. Inbound pulls data from HubSpot. Bidirectional does both. |
Connection Status Panel
The settings page also shows:
- Contacts Synced - Total number of contacts successfully synced.
- Sync Errors - Number of errors encountered.
- Last Sync - When the last successful sync occurred.
- Test Connection button - Verifies that the connection to HubSpot is still working.
Token Management
Token Rotation Warning
Bearconnect tracks how old your token is. HubSpot recommends rotating tokens every 180 days (6 months) for security.
When your token is older than 180 days, you will see a warning banner:
- Shows how many days since the token was created.
- Shows how many days past the recommended rotation period.
- Provides a link to HubSpot's token rotation documentation.
- Can be dismissed (the warning will not reappear until the next check).
How to Rotate Your Token
- Go to your HubSpot account > Development > Legacy apps.
- Open your private app.
- Go to the Auth tab.
- Click Rotate token to generate a new token.
- Copy the new token.
- In Bearconnect, reconnect using the new token.
Important: After rotating, the old token stops working. Make sure to update the token in Bearconnect promptly.
Testing Your Connection
You can verify that your HubSpot connection is working at any time:
- Go to Integrations in the left sidebar.
- Click on your HubSpot integration to open the detail panel.
- Click Test Connection.
- If successful, you will see a "Connection test successful" message.
- If it fails, check the error message for details (common issues: expired token, revoked access, network problems).
Disconnecting HubSpot
To disconnect your HubSpot integration:
- Go to Integrations in the left sidebar.
- Click on your connected HubSpot integration.
- Click Delete or Disconnect.
- Confirm the action.
What Happens When You Disconnect
- All campaign mappings using this integration are removed.
- Event forwarding stops immediately.
- Previously synced contacts in HubSpot are not deleted or modified.
- Custom properties created by Bearconnect remain in your HubSpot account.
- You can reconnect at any time by going through the setup process again.
Troubleshooting
"Connection test failed"
Your token may have expired or been rotated. Go to HubSpot > Development > Legacy apps, open your app, and check the Auth tab. If the token has been rotated, copy the new token and reconnect in Bearconnect.
"Invalid token format"
The Legacy App Token must start with pat- and follow the format
pat-xx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Make sure you copied the full token from HubSpot
without any extra spaces.
Events are not appearing in HubSpot
- Check that the integration is in Active status (Integrations > click on HubSpot).
- Verify the campaign mapping is active (Campaign > Integrations tab > toggle should be on).
- Check that the relevant event types are enabled in the campaign mapping.
- Verify that Automatic Sync is turned on in HubSpot Settings.
- If using Batch sync mode, events may take up to 15 minutes to appear.
"Sync error" showing on the integration
Click on the integration to see the error details. Common causes:
- HubSpot API rate limits - Usually resolves automatically. Wait a few minutes and try again.
- Missing required properties - Bearconnect creates custom properties automatically, but if they were manually deleted in HubSpot, you may need to reconnect.
- Insufficient permissions - Ensure all required scopes are granted on your HubSpot app.
Lead export shows "skipped"
This means the lead already exists in HubSpot and no new data was needed. This is not an error - it means HubSpot already has this contact with the same or newer data.