Prerequisites
Before connecting, confirm the following:- You have a HubSpot account with CRM access. The HubSpot CRM is included in all paid tiers; free accounts have limited API access.
- The user completing the OAuth flow must have CRM read and write permissions in HubSpot.
- For custom objects to sync, your HubSpot account must be on Enterprise tier (custom object schemas require Enterprise).
- You are a PartnerOS Owner or Admin — only Owners and Admins can connect integrations.
Connect HubSpot
1
Open Settings > Integrations
In PartnerOS, navigate to Settings > Integrations. Find the HubSpot card and click Connect HubSpot.
2
Authorize in HubSpot
You are redirected to HubSpot’s OAuth consent screen. Select the HubSpot portal you want to connect, then click Connect app.
3
Confirm the connection
You are returned to Settings > Integrations. The HubSpot card should show Active status with your portal ID displayed.
4
Wait for schema discovery
PartnerOS reads your HubSpot portal’s object schema, including all standard and custom object properties. Once complete, the connection detail page shows the discovered objects and field counts.
What syncs
PartnerOS discovers and syncs the following HubSpot objects:
If your HubSpot portal is on Enterprise and has custom objects defined, PartnerOS also discovers those through the HubSpot Schemas API. Any non-archived custom objects appear in the mapping configuration so you can choose to include them.
HubSpot property names use lowercase with underscores (for example,
dealname, amount, closedate). The AI mapping tool accounts for this when matching HubSpot properties to PartnerOS fields.Set up field mappings
1
Open the connection detail
Click the HubSpot connection card in Settings > Integrations to open the detail page.
2
Select an object pair
Choose a PartnerOS object and the corresponding HubSpot object to map (for example, Partners and companies, or Deals and deals).
3
Run AI mapping suggestions
Click Suggest Mappings. PartnerOS compares field names, labels, and data types between the two objects and returns suggestions with confidence scores.
4
Review suggestions
Suggestions come in three states:
- Auto-mapped — applied automatically with high confidence. You can override if needed.
- Suggested — a candidate is proposed, awaiting your confirmation. Click Confirm or select a different property.
- Unmapped — no confident match. Assign a HubSpot property manually or mark the field Ignored.
5
Set sync direction
For each object pair, choose Bidirectional, PartnerOS to HubSpot, or HubSpot to PartnerOS.
6
Save and run initial sync
Click Save Mappings, then click Trigger Sync to run the initial data backfill.
Sync behavior
Polling-based sync
HubSpot sync uses polling rather than webhooks. PartnerOS queries HubSpot for records modified after the last sync timestamp using the HubSpot Search API (/crm/v3/objects/{objectType}/search), filtering by the hs_lastmodifieddate property. Results are sorted ascending by modification date so that the sync can resume from the last processed record.
This means HubSpot sync is not instantaneous — there is a short delay between a change in HubSpot and it appearing in PartnerOS. The sync lag is visible in the Integration Health dashboard.
Token refresh
HubSpot access tokens expire and must be refreshed. PartnerOS handles this automatically. Unlike Salesforce, HubSpot issues a new refresh token on each token refresh. PartnerOS stores the latest refresh token after every successful refresh, so you do not need to reconnect manually unless you revoke access through HubSpot’s Connected Apps settings.Conflict resolution
When the same field is updated in both systems between polls, the conflict resolution policy on each field mapping rule decides which value to keep:- PartnerOS wins — the PartnerOS value overwrites the HubSpot value
- CRM wins — the HubSpot value overwrites the PartnerOS value
- Newest wins — the most recently modified record’s value is used