Ellipse Gradient for Header
HubSpot Data Hub logo

HubSpot Data Hub Integration Guide

Integrate HubSpot Data Hub with enterprise systems through REST APIs, selected webhooks, batch operations, imports, exports, and file APIs.

HubSpot Data Hub integration options at a glance

HubSpot Data Hub primarily integrates through HubSpot REST APIs for CRM objects, associations, properties, search, files, imports, and batch operations. OAuth 2.0 supports multi-account applications, while private app access tokens suit single-account integrations; API keys are legacy and should not be used for new work. HubSpot also provides webhook notifications for selected event types, GraphQL for specific CMS and HubDB scenarios, and file, import, and export capabilities for data movement. Martini can consume these APIs, receive supported webhook events, orchestrate scheduled reconciliation, transform properties and associations, and expose controlled APIs for downstream applications.

Integration pointSupported by HubSpot Data Hub?Common use casesHow Martini supports it
REST APIsYesCRM objects, associations, properties, search, owners, pipelines, files, imports, and other HubSpot platform services.Martini can consume HubSpot REST APIs from workflows, map responses, apply business rules, and expose a controlled API façade.
GraphQL APIsLimitedSelected CMS and HubDB data scenarios; GraphQL is not the general-purpose CRM synchronization interface.Martini can consume GraphQL APIs where the required HubSpot CMS or HubDB operation is supported.
WebhooksLimitedNotifications for configured subscriptions and selected CRM object or property events.Martini can expose an endpoint or webhook-triggered workflow, validate requests, deduplicate events, and process them asynchronously.
Bulk and batch APIsYesBatch CRM reads and writes, imports, migrations, and larger scheduled data-loading operations.Martini can paginate, batch requests, track import jobs, classify failures, and reconcile source and target counts.
File and attachment APIsYesUpload and manage files used by CRM, import, and content workflows where the relevant association is supported.Martini can transfer files, retain HubSpot identifiers and URLs, and associate file metadata with supported objects.
AuthenticationYesOAuth 2.0 for multi-account applications and private app access tokens for account-specific integrations; API keys are legacy.Martini can apply protected OAuth credentials, refresh tokens, or private app tokens through secure HTTP configuration.
Search and incremental synchronizationYesFiltered retrieval, pagination, modified-date synchronization, and periodic reconciliation of CRM objects.Martini can persist cursors and checkpoints, combine webhook notifications with polling, and implement idempotent upserts.
Direct database accessNot confirmedHubSpot exposes APIs, search, imports, exports, and reporting-oriented services rather than confirmed direct SQL access.Martini should use HubSpot APIs and load results into an external database or warehouse when database integration is required.

How HubSpot Data Hub exposes data and business events

HubSpot REST APIs

HubSpot REST APIs are the primary integration surface for CRM objects, associations, properties, search, owners, pipelines, files, imports, and other platform services.

Martini implementation pattern

Martini implementation pattern: a workflow calls the relevant HubSpot endpoint, handles pagination and authentication, maps the response into a canonical model, applies business rules, and writes to one or more target systems.

Implementation sequence

Authenticate with OAuth 2.0 or a private app access token
Retrieve or submit the required HubSpot resource
Follow pagination or batch results
Resolve properties and object associations
Map and validate the data
Write the target result and record the checkpoint

HubSpot Webhooks

HubSpot supports webhook subscriptions for selected event types and configured objects or properties; coverage is not universal across all CRM data.

Martini implementation pattern

Martini implementation pattern: expose a controlled Martini endpoint or webhook-triggered workflow, validate the request, acknowledge promptly where appropriate, normalize the event, and retrieve the current HubSpot resource before downstream processing.

Implementation sequence

Receive the HubSpot webhook notification
Validate the request and subscription context
Deduplicate the event using a correlation key
Retrieve the current HubSpot object when required
Apply mappings and business rules
Process the event asynchronously or synchronously and record the outcome

HubSpot Batch and Imports

HubSpot provides batch CRM operations and import mechanisms for bulk reads, writes, migrations, and scheduled loads.

Martini implementation pattern

Martini implementation pattern: a workflow partitions source data, submits batch or import requests, tracks asynchronous status where applicable, classifies per-object errors, and reconciles source and target totals.

Implementation sequence

Extract and normalize the source dataset
Partition records into supported batch sizes
Submit the batch or import request
Track the request or import status
Retry transient failures with bounded backoff
Store per-object results and reconcile counts

HubSpot GraphQL APIs

HubSpot documents GraphQL for selected CMS and HubDB scenarios. It should not be treated as a replacement for the CRM REST APIs.

Martini implementation pattern

Martini implementation pattern: consume the specific supported GraphQL operation, validate the response shape, transform CMS or HubDB data, and route it to the required application or data store.

Implementation sequence

Authenticate the GraphQL request
Submit the scoped CMS or HubDB query
Validate the response and error fields
Map the returned data to the target model
Apply business rules and write the result

HubSpot Files API

The HubSpot Files API supports file upload and management, with association behavior depending on the relevant object and endpoint.

Martini implementation pattern

Martini implementation pattern: receive or retrieve a file, transfer it through the HubSpot Files API, retain identifiers and URLs securely, and associate metadata with supported CRM workflows.

Implementation sequence

Receive or retrieve the source file
Validate file type and metadata
Upload or manage the file in HubSpot
Store the HubSpot file identifier
Associate supported metadata with the CRM object
Handle transfer errors and retry safely

Common HubSpot Data Hub integration patterns

Pattern 1: Synchronize customers and sales data

When to use this pattern

Use this pattern when Salesforce or Microsoft Dynamics 365 remains a sales-system source while HubSpot manages connected marketing or customer context. Define ownership per field and object before enabling bidirectional updates.

Integration direction
Salesforce
Martini
HubSpot Data Hub
Example Mapping
HubSpot Data Hub FieldCanonical FieldTarget Field
Account.Idcustomer.externalIdCompanies.external_id
Contact.Emailperson.emailContacts.email
Opportunity.Amountdeal.amountDeals.amount
Opportunity.StageNamedeal.stageDeals.dealstage
Martini implementation pattern

Martini retrieves source changes or receives source events, searches HubSpot for stable identifiers, creates or updates Companies, Contacts, and Deals, resolves associations, and applies conflict rules. Failed writes are retried when transient and sent to exception handling when validation or scope errors persist.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • business rules
  • batch processing
  • error handling

Pattern 2: Synchronize commerce customers and orders

When to use this pattern

Use this pattern when Shopify customer and order activity should enrich HubSpot Contacts, Companies, Deals, or supported custom models for marketing and service teams.

Integration direction
Shopify
Martini
HubSpot Data Hub
Example Mapping
HubSpot Data Hub FieldCanonical FieldTarget Field
customer.idcustomer.externalIdContacts.external_customer_id
customer.emailperson.emailContacts.email
order.total_priceorder.totalDeals.amount
order.created_atorder.createdAtDeals.createdate
Martini implementation pattern

A Martini workflow consumes Shopify data, normalizes customer and order payloads, deduplicates Contacts by a stable identifier, creates or updates the target HubSpot objects, and associates purchases with customers. Scheduled reconciliation identifies missed orders and safely replays updates.

Martini capabilities used
  • workflows
  • API consumption
  • data transformation
  • deduplication
  • associations
  • scheduled synchronization

Pattern 3: Synchronize support context

When to use this pattern

Use this pattern when Zendesk or ServiceNow support activity must be visible alongside HubSpot customer and company context.

Integration direction
Zendesk
Martini
HubSpot Data Hub
Example Mapping
HubSpot Data Hub FieldCanonical FieldTarget Field
user.emailperson.emailContacts.email
organization.idorganization.externalIdCompanies.external_id
ticket.statuscase.statusTickets.hs_ticket_status
ticket.prioritycase.priorityTickets.priority
Martini implementation pattern

Martini matches identities, translates status and priority vocabularies, synchronizes supported updates, and stores cross-system IDs. Idempotency keys and correlation IDs prevent duplicate ticket creation; non-retryable mapping errors are routed for review.

Martini capabilities used
  • workflows
  • API consumption
  • identity matching
  • data mapping
  • business rules
  • error handling

Pattern 4: Load HubSpot CRM data into Snowflake

When to use this pattern

Use this pattern for analytics, attribution, forecasting, and retention reporting that requires normalized HubSpot objects, properties, and associations in a warehouse.

Integration direction
HubSpot Data Hub
Martini
Snowflake
Example Mapping
HubSpot Data Hub FieldCanonical FieldTarget Field
idhubspotObjectIdhubspot_object_id
properties.emailperson.emailemail
properties.updatedAtsourceUpdatedAtsource_updated_at
associations.companiescompanyIdscompany_ids
Martini implementation pattern

Martini schedules incremental extraction using pagination, search filters, and checkpoints, normalizes object and association payloads, loads Snowflake tables, and records reconciliation metrics. Rate limits, transient failures, and partial batches are handled with bounded retries and restartable checkpoints.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • pagination
  • data mapping
  • database connectivity
  • monitoring

Applications commonly integrated with HubSpot Data Hub

HubSpot Data Hub can be integrated with named CRM, commerce, service, finance, collaboration, and analytics products when organizations need to coordinate customer context, operational processes, or reporting. The exact object mappings, scopes, and system-of-record rules should be defined for each implementation.

Application Scenario Direction Martini Pattern
Salesforce Align Contacts, Companies, Leads, Opportunities, ownership, and sales context between CRM platforms. Salesforce → Martini → HubSpot Data Hub Use REST API consumption, scheduled or event-driven workflows, identity matching, association resolution, and HubSpot batch updates. Apply system-of-record rules and retry transient failures.
Shopify Synchronize customers, orders, products, and purchase activity with HubSpot CRM data. Shopify → Martini → HubSpot Data Hub Receive or retrieve commerce data, deduplicate Contacts, map purchases to Deals or other supported HubSpot objects, and run periodic reconciliation for missed changes.
Zendesk Share customer identity and support-ticket context between service and CRM teams. Zendesk → Martini → HubSpot Data Hub Match Contacts and Companies, translate ticket status and priority values, synchronize supported ticket data, and use idempotent updates to prevent duplicate tickets.
ServiceNow Coordinate customer, case, request, or operational information where HubSpot and service-management processes overlap. ServiceNow → Martini → HubSpot Data Hub Orchestrate bidirectional REST workflows, map customer and case identifiers, apply routing rules, and retain correlation IDs for reconciliation.
Microsoft Dynamics 365 Coordinate account, contact, opportunity, and customer information across CRM platforms. Microsoft Dynamics 365 → Martini → HubSpot Data Hub Use API-led workflows with field normalization, ownership mapping, association handling, conflict rules, and retryable writes to both platforms.
NetSuite Link customer, order, product, invoice, and financial-status information with HubSpot sales and marketing data. NetSuite → Martini → HubSpot Data Hub Schedule incremental extraction from NetSuite, map financial and customer identifiers to HubSpot objects, and return selected status updates after validation.
Slack Publish selected deal changes, ticket updates, HubSpot events, or workflow alerts to collaboration channels. HubSpot Data Hub → Martini → Slack Receive supported HubSpot notifications or poll for changes, apply routing and formatting rules, and call Slack APIs with controlled retry handling.
Snowflake Load HubSpot CRM objects and associations into a warehouse for analytics, attribution, forecasting, and retention reporting. HubSpot Data Hub → Martini → Snowflake Run scheduled paginated extraction, normalize object and association data, load incrementally into Snowflake, and record checkpoints and reconciliation results.

How to build a HubSpot Data Hub integration in Martini

Objective

Choose the HubSpot account model and configure the required scopes and credentials.

Instructions in Martini

  • Use OAuth 2.0 for multi-account or installation-based applications.
  • Use a private app access token for a single-account integration where appropriate.
  • Store client credentials, refresh tokens, and access tokens as protected secrets.
  • Do not use API keys for new integrations.

Objective

Select an event-driven, scheduled, or API-led entry point based on the required completeness and latency.

Instructions in Martini

  • Use supported HubSpot webhook subscriptions for selected events.
  • Use a scheduler for periodic extraction and reconciliation.
  • Expose a Martini API when another application needs a controlled HubSpot façade.
  • Combine webhooks with REST polling when webhook coverage is incomplete.

Objective

Retrieve current HubSpot objects and related data reliably rather than assuming one response contains the complete dataset.

Instructions in Martini

  • Follow paging cursors until no next page is returned.
  • Use search or modified-date filters for incremental synchronization where supported.
  • Retrieve associations and properties required by the target model.
  • Track request, batch, and import identifiers.

Objective

Implement the end-to-end workflow that validates input, calls HubSpot, applies rules, and coordinates downstream systems.

Instructions in Martini

  • Separate event receipt from asynchronous processing when appropriate.
  • Control concurrency and handle HTTP 429 responses.
  • Classify retryable and non-retryable failures.
  • Use correlation IDs and persisted checkpoints.

Objective

Transform HubSpot properties, object identifiers, associations, and enumerated values into the target schema.

Instructions in Martini

  • Map internal property names rather than display labels.
  • Normalize dates, amounts, statuses, and ownership values.
  • Resolve Contacts, Companies, Deals, Tickets, Products, and Line items associations explicitly.
  • Validate required fields before writing.

Objective

Create, update, batch, import, or archive target data while preserving idempotency and relationship integrity.

Instructions in Martini

  • Search or upsert using stable external identifiers where possible.
  • Use batch endpoints for suitable high-volume operations.
  • Create associations after required objects exist.
  • Record HubSpot IDs and target IDs for future updates.

Common HubSpot Data Hub data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
ContactsPeople, leads, customers, and other individuals associated with a HubSpot account.Salesforce, Shopify, Zendesk, Microsoft Dynamics 365, SnowflakeMartini reads or writes properties, searches for matching identifiers, applies deduplication, and manages associations.
CompaniesOrganizations and business accounts linked to people, deals, and support activity.Salesforce, Microsoft Dynamics 365, NetSuite, SnowflakeMartini maps company identifiers and properties, resolves associations, and applies account ownership and system-of-record rules.
DealsRevenue opportunities, sales transactions, and pipeline records.Salesforce, Slack, Snowflake, NetSuiteMartini transforms stages, amounts, owners, and dates, then applies validation, routing, and idempotent update logic.
TicketsCustomer-service and support cases managed in HubSpot.Zendesk, ServiceNow, Slack, SnowflakeMartini translates status and priority values, matches customers, prevents duplicate creation, and handles replayed updates.
ProductsCatalog items that can be associated with deals and line items.Shopify, NetSuite, SnowflakeMartini synchronizes product identifiers and properties and preserves relationships required by downstream commercial processes.
Line itemsProduct or service entries associated with deals, quotes, or other commercial records.NetSuite, Shopify, SnowflakeMartini maps quantities, prices, product references, and deal associations while reconciling partial batch results.

Authentication and security considerations

Authentication options

HubSpot supports OAuth 2.0 for applications serving multiple accounts and private app access tokens for account-specific integrations. API keys are legacy credentials and should not be used for new implementations.

Martini security model

Martini can apply OAuth credentials, refresh tokens, and private app tokens through protected environment configuration and HTTP authentication settings.

  • Store client secrets, refresh tokens, and access tokens in protected secrets.
  • Request only the HubSpot scopes required by the workflow.
  • Keep tokens out of payloads, mappings, source code, and logs.
  • Protect webhook endpoints and validate requests according to HubSpot security requirements.
  • Limit exposure of contact properties, file URLs, and personal data in monitoring output.

Operational considerations for HubSpot Data Hub integrations

Rate limits and pagination

HubSpot limits vary by account, subscription, application, and API. Handle HTTP 429 responses, server-provided retry information where available, bounded exponential backoff, and concurrency controls. Follow paging cursors and persist progress for long-running synchronizations.

Idempotency and associations

Use stable external identifiers or unique HubSpot properties for upserts. Deduplicate webhook deliveries, store cross-system IDs, and treat object creation, updates, associations, and archive operations as separate concerns where required.

Schema and webhook coverage

Account-specific custom properties, custom objects, pipelines, internal property names, and enumerated values require versioned mappings and validation. Webhooks cover selected subscriptions rather than every object and event, so periodic reconciliation is recommended.

Bulk processing and testing

Track batch and import identifiers, asynchronous status, per-object errors, and reconciliation counts. Test throttling, partial failures, malformed events, scope changes, duplicate delivery, schema changes, and recovery from interrupted checkpoints.

Why use Martini instead of scripts or point-to-point integrations?

Orchestrate more than an API call

Scripts often combine authentication, pagination, mapping, retries, and business rules into code that is difficult to operate and change. Martini provides workflows and APIs for coordinating HubSpot with applications, databases, files, and messaging systems.

Centralize transformation and policy

Martini separates HubSpot-specific properties and associations from canonical target models. Reusable mappings, validation, routing, and error handling make changes easier to test and maintain.

Support real-time and scheduled patterns

Martini can receive supported HubSpot webhook notifications, expose controlled APIs, run scheduled reconciliation, coordinate batch or import jobs, and preserve checkpoints for restartable processing.

Improve operational control

  • Apply protected environment configuration and secrets.
  • Handle throttling, retries, duplicates, and partial failures consistently.
  • Capture correlation IDs, checkpoints, and reconciliation results.
  • Reuse integration assets across HubSpot accounts and target systems.

Frequently asked questions

How can HubSpot Data Hub be integrated with enterprise systems?

HubSpot Data Hub can be integrated through its REST APIs for CRM objects, associations, properties, search, files, imports, and batch operations. OAuth 2.0 and private app access tokens provide authentication, while selected webhook subscriptions support event notifications. GraphQL is available for specific CMS and HubDB scenarios.

Can Martini integrate with HubSpot Data Hub?

Yes. Martini can consume HubSpot REST APIs, receive supported HubSpot webhook notifications, process batch and import workflows, transfer files, map CRM objects and associations, and expose controlled APIs for HubSpot operations.

Do I need a connector to integrate HubSpot Data Hub with Martini?

No. A dedicated HubSpot connector is not required. Martini can use HubSpot's confirmed native REST APIs, webhook notifications, batch and import endpoints, file APIs, and OAuth 2.0 or private app authentication.

Is there any extra Lonti cost to integrate HubSpot Data Hub with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate HubSpot Data Hub. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from HubSpot, cloud infrastructure, or other third-party services based on subscriptions, usage, and deployment model.

Which HubSpot integration methods should a new implementation use?

Use HubSpot REST APIs as the primary method for CRM synchronization. Use OAuth 2.0 for multi-account applications or private app access tokens for account-specific integrations. Use batch and import mechanisms for bulk movement, Files APIs for documents, and GraphQL only for supported CMS or HubDB use cases.

Can HubSpot trigger a Martini workflow with webhooks?

Yes, for configured and supported HubSpot webhook subscription types. Coverage is event-specific rather than universal, so implementations should validate the exact subscriptions and supplement webhook processing with scheduled REST reconciliation when complete coverage is required.

How does Martini handle HubSpot synchronization and data mapping?

Martini can use pagination, search filters, modified-date properties, webhooks, and persisted checkpoints to implement incremental synchronization. Workflows map HubSpot properties, internal names, associations, statuses, and identifiers into target models, with validation and business rules before writes.

How are HubSpot errors, throttling, duplicates, and retries handled?

Martini workflows can detect HTTP 429 responses, apply bounded backoff, control concurrency, retry transient failures, and route persistent errors for review. Stable identifiers, upsert logic, event deduplication, correlation IDs, and reconciliation make retries and replayed webhook or batch events safer.