HubSpot

Sync data from your warehouse to HubSpot CRM objects. Keep your HubSpot Contacts, Companies, and Deals enriched with the latest data from your data warehouse.

Prerequisites

  • A HubSpot account (Marketing Hub, Sales Hub, or CMS Hub)
  • For OAuth: A HubSpot user with super admin or app marketplace access
  • For Private App Token: A private app created in HubSpot with the necessary scopes

Authentication

HubSpot supports two authentication methods:

OAuth 2.0

  1. Click Connect with OAuth in SignalSmith
  2. Sign in to your HubSpot account
  3. Select the HubSpot portal to connect
  4. Authorize the requested permissions
  5. You are redirected back to SignalSmith

OAuth scopes requested: crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.companies.read, crm.objects.companies.write, crm.objects.deals.read, crm.objects.deals.write.

Private App Token

  1. In HubSpot, go to Settings > Integrations > Private Apps
  2. Create a new private app with the required scopes
  3. Copy the access token (starts with pat-na1-...)
  4. Paste it into the Private App Token field in SignalSmith

Configuration

FieldTypeRequiredDescription
Portal IDTextNoHubSpot portal ID (auto-populated from OAuth)

Target Settings

FieldTypeRequiredDescription
HubSpot ObjectSelectYesThe object to sync to: Contacts, Companies, Deals, or Custom Object
Custom Object TypeTextConditionalFully qualified custom object name (e.g., p12345_my_custom_object). Required when object is Custom Object.
ID PropertyTextNoHubSpot property used to identify records for upsert/update (e.g., email for contacts, domain for companies)

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
UpdateYes
Mirror

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: Yes — SignalSmith reads property definitions from the HubSpot Properties API

Required Mapping Fields

ObjectRequired Fields
Contactsemail
Companiesname
Dealsdealname, pipeline, dealstage

Supported Objects

  • Contacts — Individual people in your CRM
  • Companies — Organizations and businesses
  • Deals — Sales opportunities with pipeline stages
  • Custom Object — Any custom object defined in HubSpot

Troubleshooting

Authentication failed: invalid or expired token

Re-authenticate via OAuth or generate a new private app token in HubSpot.

Insufficient permissions

If using OAuth, reconnect and ensure all required scopes are granted. For private apps, verify the app has read/write scopes for the target object type.

Property does not exist

The destination field in your mapping does not match a HubSpot property. Check the property’s internal name (not display name) in HubSpot Settings > Properties.

Rate limiting (429 errors)

HubSpot enforces API rate limits. SignalSmith automatically handles rate limiting with exponential backoff. If you see persistent rate limit errors, consider reducing sync frequency.

Custom object not found

Verify the custom object type name in HubSpot Settings > Objects > Custom Objects. The name must match exactly.