Overview
What Gets Indexed
| Object Type | Content |
|---|---|
| Contacts | Name, email, phone, company, job title, lifecycle stage |
| Companies | Name, domain, industry, employee count, annual revenue |
| Deals | Deal name, amount, pipeline, stage, close date |
| Tickets | Subject, content, priority, pipeline, stage |
| Calls | Call title, body, duration, direction |
| Emails | Subject, text/HTML content, direction |
| Meetings | Title, body, start/end times |
| Notes | Note content and timestamps |
| Tasks | Subject, body, status, priority |
How It Works
- A HubSpot app access token provides read-only API access
- The connector syncs CRM objects and engagement activities
- Full sync mode indexes all accessible records
The connector uses read-only access. Omni cannot create, modify, or delete any records in your HubSpot account.
Prerequisites
Before setting up the HubSpot connector, ensure you have:- HubSpot account with API access (Professional or Enterprise plan recommended)
- A HubSpot developer account to create and install an app
Setup
Step 1: Create a HubSpot App
Create an app on HubSpot’s developer platform. See HubSpot’s app creation guide for full instructions.- Install the HubSpot CLI and run
hs project create - Choose App as the project type
- Select static token authentication (for single-account access)
Step 2: Configure Scopes
Add the following scopes to your app’sapp-hsmeta.json under requiredScopes:
| Scope | Purpose |
|---|---|
crm.objects.contacts.read | Read contacts and engagement activities (calls, emails, meetings, notes, tasks) |
crm.objects.companies.read | Read company records |
crm.objects.deals.read | Read deal records |
tickets | Read ticket records |
Step 3: Install and Get Your Access Token
- Upload your app with
hs project upload - In HubSpot, go to the project’s Distribution tab and install the app on your account
- Copy the access token from the app settings
Step 4: Connect in Omni
- Navigate to Settings → Integrations in Omni
- Find HubSpot and click Connect
- Enter your access token
- Click Connect
- Click Configure against the Hubspot integration, enable it and click Save Configuration. This will automatically trigger the initial sync.
Your HubSpot connector is now configured. Initial indexing depends on the number of records in your CRM.
Using a Legacy Private App instead
Using a Legacy Private App instead
If you have an existing legacy Private App, its access token will also work. However, HubSpot recommends the new developer platform for new integrations. To create a legacy Private App:
- Go to Settings → Integrations → Private Apps
- Click Create a private app and configure the same scopes listed above
- Copy the access token (starts with
pat-na1-) and use it in the Omni connection step
Managing the Integration
Viewing Sync Status
Navigate to Settings → Integrations → HubSpot to view:- Last sync time
- Number of indexed records by type
- Any sync errors
Sync Behavior
The HubSpot connector currently supports full sync mode:- Syncs all accessible CRM objects and engagements
- Processes records in batches of 100 (HubSpot API limit)
- Handles rate limiting automatically with exponential backoff
Record Properties
The connector fetches specific properties for each object type. All object types includehubspot_owner_id for ownership tracking.
Indexed properties by object type
Indexed properties by object type
CRM Objects
All CRM objects also include:
All engagement activities also include:
| Object Type | Properties |
|---|---|
| Contacts | firstname, lastname, email, phone, company, jobtitle, lifecyclestage |
| Companies | name, domain, industry, phone, numberofemployees, annualrevenue |
| Deals | dealname, amount, pipeline, dealstage, closedate, hs_deal_stage_probability |
| Tickets | subject, content, hs_ticket_priority, hs_pipeline, hs_pipeline_stage |
hubspot_owner_id, createdate, hs_lastmodifieddateEngagement Activities| Object Type | Properties |
|---|---|
| Calls | hs_call_title, hs_call_body, hs_call_duration, hs_call_direction |
| Emails | hs_email_subject, hs_email_text, hs_email_html, hs_email_direction |
| Meetings | hs_meeting_title, hs_meeting_body, hs_meeting_start_time, hs_meeting_end_time |
| Notes | hs_note_body |
| Tasks | hs_task_subject, hs_task_body, hs_task_status, hs_task_priority |
hubspot_owner_id, hs_timestamp, hs_createdate, hs_lastmodifieddateRemoving the Integration
- Navigate to Settings → Integrations → HubSpot
- Click Remove
- Optionally, uninstall the app in HubSpot:
- Go to your project’s Distribution tab
- Uninstall the Omni app from your account
Security Considerations
- Read-only access: The access token only has read permissions
- Token security: Access tokens should be treated like passwords
- Token rotation: Rotate tokens periodically for security from your app settings
- Data visibility: All users can search indexed HubSpot records (no per-user permissions)
HubSpot data indexed by Omni is visible to all Omni users. Consider this when connecting accounts with sensitive CRM data.
What’s Next
Search Your Data
Learn how to search across HubSpot records
AI Assistant
Ask questions about your CRM data
Add More Connectors
Connect additional data sources