Supported Features and Limitations
The Glean HubSpot Connector is designed for comprehensive CRM data integration but is currently focused on core, standard objects. The connector fetches and maintains up-to-date CRM data using HubSpot’s REST API, supporting incremental updates and webhooks for real-time changes.Supported Objects/Entities
The connector indexes these standard HubSpot CRM objects:- Contacts
- Companies
- Deals
- Tickets
Indexed Properties
For each object, key standard properties are indexed. Examples:Object | Properties Indexed (Excerpt) |
---|---|
Contacts | Contact owner, Created by user ID, Updated by user ID, First/Last name, Email, Company, Status, Revenue, LinkedIn URL |
Companies | Company owner, Name, Industry, Website, Last activity, Number of deals, Money raised, LinkedIn handle |
Deals | Deal owner, Name, Stage, Pipeline, Amount, Priority, Reason (win/loss), Close date |
Tickets | Ticket owner, Name, Status, Priority, Pipeline, Source, Resolution, Close date, Description |
Supported API Endpoints/Features
- REST API ingestion for the four main objects (Contacts, Companies, Deals, Tickets)
- Support for full and incremental crawls
- Webhooks for create/update/delete/restore/association-changed events for real-time data sync
- Schema crawl to dynamically handle custom and relabeled fields
Limitations
- The connector supports only standard objects and predefined properties initially.
- Custom objects and Marketing Hub entities (e.g., Leads, Blogs, Emails) are not supported in the current release.
- Fine-grained ticket read scopes and role-level permission syncs may have limitations due to HubSpot API constraints.
- Associations are crawled, but not all are surfaced directly in search at this time.
- The connector does not support embedding Glean inside the HubSpot UI.
- Some API features (e.g., for advanced auditing or custom roles) may require future updates.
Requirements
This section outlines what is needed to deploy and use the HubSpot Connector.Technical Requirements
- An active HubSpot account (no distinction for GCP/AWS; supported on both clouds)
- Access to the Glean admin console
Credential Requirements
- Private app credentials: the app must be created in HubSpot to obtain an Access Token and Client Secret
- HubSpot account (portal) ID for API access
- These must be securely entered in Glean’s admin console during setup
Permission Requirements
- The HubSpot user creating the integration must be a super admin.
- The app must be granted these HubSpot scopes:
- crm.objects.users.read
- crm.objects.contacts.read
- crm.objects.deals.read
- crm.objects.companies.read
- tickets
- These permissions allow the connector to crawl all necessary objects and their basic properties.
Preliminary Source/System Setup
- In HubSpot, create a new Private App (requires super admin access).
- On the app’s Scopes tab, add the above-listed scopes.
- On the Webhooks tab, configure a webhook with the URL provided during Glean setup (for event notifications).
- For each object (Contact, Company, Deal, Ticket), subscribe to create, delete, restore, and association change events.
- Publish the app and record its credentials.
Permissions & Security
Data and Metadata Ingested- The connector collects and indexes object data (Contacts, Companies, Deals, Tickets), identities (users), and selected properties/fields per object.
- Metadata such as creation/update timestamps and object associations are included.
- The connector uses HubSpot’s permissions API to fetch and enforce allowed users for each object at crawl time.
- Original content- and object-level permissions are mapped into Glean’s permission model.
- Authentication relies on private app tokens, using required scopes for minimum access.
- Webhook payloads are validated using the app’s Client Secret.
- Only objects for which valid access is configured are indexed.
- Sensitive credentials (Access Token, Client Secret) should be rotated according to organizational policy.
- Webhook setup is required to maintain real-time data sync; if webhooks are missing, changes may only sync on the next crawl.
- All indexed content from HubSpot will be available according to permission mappings in Glean; ensure appropriate scoping in both platforms.
- Indexed CRM data becomes discoverable according to organizational and user-level permission boundaries configured during setup.
Configuration and Setup
You must create a private app in your HubSpot account to connect to the HubSpot API. This section explains how to create a private app in HubSpot, grant appropriate scopes, and create webhook subscriptions.Prerequisites
- Glean administrator access
- The user setting up the private app must be a super admin.
Create a private app
Initial Steps
- In your HubSpot account, select the settings icon in the main navigation top bar.
- In the left sidebar menu, navigate to Integrations → Private Apps.
- Select Create a private app.
- On the Basic Info tab, give a name to the app, like Glean. You can optionally add a logo and a description.
Granting Scopes
- Select the Scopes tab.
- At the top of the page, select Add new scope.
- From the right panel, search for the following scopes and select the checkbox beside them:
crm.objects.users.read
crm.objects.contacts.read
crm.objects.deals.read
crm.objects.companies.read
tickets
- Select Update when you are done adding scopes.
Webhook Subscriptions
- At the top of the page, select the Webhooks tab.
- Under Target URL, enter the webhook URL obtained by selecting on the Create webhook URL button on the Glean admin console page.
- Select Create subscription.
- Under Which object types, select the following object types:
Contact
Company
Deal
Ticket
- Under Listen for which events, select the following events:
Created
Deleted
Restored
Association changed
- Select Subscribe.
- Select Create app in the top right
Entering the app credentials in Glean
- Enter your HubSpot account (or portal) ID under the Account ID field.
- Enter the Access Token and Client Secret of the app you created in the previous steps. This can be found from the Auth tab of the private app you created
- Select Save.