Skip to main content
TrailsparkDocs

Connecting HubSpot

Overview

The HubSpot integration uses a one-click OAuth flow. No credentials to enter — Trailspark handles the OAuth client configuration. Only one CRM can be active at a time; if you are switching from Salesforce or Airtable, connecting HubSpot deactivates the previous CRM automatically.

Prerequisites

  • Admin access to your HubSpot account
  • Admin or Owner role in Trailspark

Connect to HubSpot

  1. Go to Settings > CRM Integration
  2. Click Connect HubSpot on the HubSpot card (or Switch to HubSpot if a different CRM is already connected)
  3. Log in to HubSpot if prompted
  4. If you have multiple HubSpot accounts, select the one to connect
  5. Review the requested permissions and click Connect app

Once authorized, the Connect tab shows a HubSpot Connected status. Click Test Connection to verify the integration is working.

Requested Permissions

Trailspark requests the following OAuth scopes:

  • crm.objects.contacts.read / write -- read and write contact records
  • crm.objects.companies.read -- read company records
  • crm.objects.deals.read -- read deal records for signal enrichment
  • sales-email-read -- read email engagement data for sentiment analysis

What Gets Synced

Contacts

Standard properties (email, name, job title, lifecycle stage, lead status) plus any custom properties you configure in Field Mapping.

Companies

Company name, domain, industry, employee count, revenue, and custom properties.

Deals

Deal name, stage, pipeline, type, close date, owner, and amount, matched to the right account and shown on its account detail page. See Syncing deals below to configure what's included.

Engagement Signals

Email opens, email clicks, form submissions, page views, and meeting bookings flow as signals for lead scoring.

Syncing deals

Once HubSpot is your active CRM, a Deals card appears on this page for configuring how Trailspark syncs your deals onto accounts.

  • A toggle in the card header turns deal syncing on or off — on by default once HubSpot is connected. Turning it off stops syncing new deal activity from HubSpot; deals Trailspark already has keep informing scoring until they age out of the history window it can see.
  • The status line shows when deals last synced, how many were synced, how many Trailspark couldn't match to an account, and how many HubSpot API calls have been used today.
  • Sync now runs a sync immediately, without waiting for the next scheduled one.
  • Pipelines to include limits the sync to specific HubSpot pipelines — leave it empty to include all of them.
  • Deal type comes from decides where Trailspark reads each deal's type: the HubSpot Deal type property, the deal's Pipeline, or a Custom property you name. Below it, a mapping table lets you assign each observed value to New business, Renewal, Expansion, or Other — anything left unmapped counts as Other.
  • Reporting currency sets which currency to total your open pipeline in, when your open deals span more than one currency.
  • Workspace ID deal property (optional) names a deal property in HubSpot that holds your product workspace ID — for example product_workspace_id — if your product writes that ID onto deals when they're created or updated. When it's set, Trailspark matches a deal to an account by that workspace ID first, before falling back to the deal's linked company. This is usually a more complete match than the company link alone, especially if not every account has a company record in HubSpot yet.
  • Click Save to apply changes to pipelines, deal types, reporting currency, or the workspace ID property — the enable toggle itself applies immediately. Changing pipelines or deal types recalculates your accounts' deal facts right away, with no additional HubSpot calls. Setting or changing the workspace ID property re-checks your existing deals against it — for smaller deal volumes this happens right away and the card shows a message when it's done; for larger volumes it happens during the next scheduled sync instead, and the card tells you that too.

Trailspark syncs your deals automatically once a day (around 7 PM Pacific), with a full repair pass once a week on Saturday evening (Pacific). Every sync reads your whole HubSpot deal pipeline, not just deals for one account, and matches each deal to an account on its own — first by workspace ID if you've configured one, then through the deal's linked company, then falling back to its contacts when they unambiguously point to one account. A deal Trailspark can't confidently match doesn't disappear; it's counted in the status line above.

See Account detail for where synced deals show up, and Field Mapping for mapping extra deal properties onto them.

HubSpot Properties

Trailspark can access both standard and custom HubSpot properties. Common standard properties:

CategoryProperties
Contact Infoemail, firstname, lastname, jobtitle
Company Infocompany, industry, website

Custom properties are available after you create them in HubSpot and map them in Trailspark's Field Mapping.

Disconnecting

Disconnecting from Trailspark does not remove the app from your HubSpot account. To fully revoke access, also disconnect from HubSpot Settings > Integrations > Connected Apps.

Troubleshooting

"Access denied" error

  • Verify you are selecting the correct HubSpot account during authorization
  • Confirm your HubSpot user has admin permissions

Duplicate contacts

Trailspark uses email as the primary identifier. If HubSpot contains duplicate contacts with the same email, Trailspark matches to the most recently updated record.

Missing engagement data

  • Engagement tracking requires the HubSpot tracking code installed on your website
  • Marketing email engagement requires HubSpot marketing tools
  • Historical engagement depth depends on your HubSpot plan's data retention

Next Steps