CRM & Sales

HubSpot connector

Read, write, and stream data across HubSpot contacts, companies, deals, tickets, and custom objects from any Neblex workflow or agent, follow associations between them in a single step, and react to property changes as webhooks the moment they happen, all under the same governance and audit trail as every other connector.

OAuth 2.0 or private app token
Authentication
REST, Search, inbound webhooks
API surface
Standard, plus custom on Enterprise
Objects supported
48 polled triggers
Change events

Overview

The HubSpot connector lets a Neblex workflow or agent treat a HubSpot portal as a source and a destination: read and write records across every object, walk the associations between them, enroll records in workflows and lists, and wake a flow the instant a property changes, without polling the portal on a timer.

  • Works against production and HubSpot sandbox portals, switched per connection
  • Reads the property and object schema at connection time, so custom properties and custom objects appear with no manual mapping file
  • Associations are first class: one step reads a deal's primary company and every associated contact, with no lookup per link
  • One connector powers deterministic workflows, agent tool calls, and marketing and sales sync jobs, all in the same run log

Why teams use the HubSpot connector

The three jobs this connector is picked for most often, and what each one gets you.

  • Run a real two-way CRM sync.
  • Turn a closed deal into an order.
  • Get marketing and sales data to the warehouse.

Worked example

A real flow revenue teams build early, with the actual field-level detail.

Closed-won HubSpot deal to a NetSuite customer and sales order, associations and all

When a deal reaches Closed Won, Neblex reads its associated company and contacts, creates or updates the customer in the ERP, and raises the order. Deals over a threshold wait for approval first.

  1. 1Trigger: Deal stage changed to closedwon, passing the deal ID and amount.
  2. 2Read associations: Get associations on the deal returns the primary company and every associated contact with its label.
  3. 3Gate: if amount is 25,000 or more, send an approval to the deal owner's manager with the company name and line items. On reject, log a note on the deal and stop.
  4. 4Customer: Upsert record on the ERP customer, keyed on external ID hs_company_id, mapping company.name → companyName, company.domain → website, company.country → billing country, and the primary contact's email → email, firstname → first name, lastname → last name.
  5. 5Order: create the sales order from the deal's line items, mapping line.hs_product_id → item, line.quantity → quantity, line.price → rate.
  6. 6Close the loop: write the order number back to a deal property erp_order_number, and post the order link to the deal owner in Slack.

Example flows

Common patterns other teams start from with this connector.

  • Two-way CRM sync. Contacts, companies, and deals stay in step between HubSpot and Salesforce, with field and owner mapping and conflict rules you control. (RevOps)
  • Lead enrichment and routing. New contacts are enriched, scored, deduped against existing records, and assigned an owner before sales ever sees them. (Marketing)
  • CRM to warehouse replication. Contact, company, and deal changes land in Snowflake on the next poll, or on the next HubSpot webhook if you point HubSpot's subscriptions at a Neblex endpoint. (Data)
  • Inbound triage agent. Given a form submission, an agent researches the company, checks fit against your ICP, and either routes to sales or nurtures, with a note explaining the call. (Agentic)

Supported objects

All standard objects are supported. Custom objects are supported on Marketing Hub and Sales Hub Enterprise. Custom properties are picked up automatically through schema discovery.

Standard objects

Contact, Company, Deal, Ticket, Product, Line Item, Quote, Call, Email, Meeting, Note, Task, Marketing Event, List, Owner

Custom objects on Enterprise tiers, and any custom property, are discovered at connection time and behave identically to standard objects across every operation above, including associations.

Security and access

The connection is scoped to the OAuth scopes or private app permissions you grant, so it can only touch the objects and actions you approve.

  • OAuth 2.0 or private app. OAuth 2.0 for interactive setup, private app tokens for a single portal. Scopes are granted per object and per capability.
  • Scope-limited access. A connection with read-only deal scope cannot write deals. Grant the narrowest scope set each flow needs.
  • Webhook endpoints. A flow can expose a webhook endpoint for HubSpot to call, protected by an API consumer key with per-consumer rate limits, quotas, and metering.
  • Full audit trail. Every read, write, association change, and webhook event flows into the same Neblex audit trail as every other connector.

Limits, as the vendor publishes them

The shape of the vendor's limits, as published at the time of writing. Verify the exact figures for your plan; they change without notice. Neblex honors the vendor's own rate-limit and retry signals and backs off within them.

  • REST calls are limited to roughly 100 requests per 10 seconds per app per portal, with a daily cap that rises by subscription tier and the API add-on
  • Batch endpoints process up to 100 records per call
  • The Search API returns up to 200 results per page and 10,000 results per query, at about 4 requests per second
  • Webhook delivery is at least once, with retries over 24 hours, so a flow must be safe to run twice on the same event
  • Rate-limit headers are read on every call, and the connector paces and backs off automatically

What a flow can do in HubSpot

Create and update contacts, companies, deals, and tickets, search records by any property, manage associations between records, add and remove list memberships, log calls, emails, notes, and meetings, batch create, update, and archive, and many more.

The connector exposes 336 operations, generated from HubSpot as it ships, and 81.5% of them describe their output so later steps can map fields without guessing. Authentication: Bearer.

How flows react to changes in HubSpot

The HubSpot connector declares 48 triggers, delivered by polling on the schedule you set. A flow that starts from one of them runs with the changed record already in hand.

Flows can start on new or changed contacts, companies, deals, and tickets, new or changed leads, quotes, invoices, and line items, list membership changes and completed imports.

Frequently asked questions

Does the HubSpot connector support custom objects?

Yes, on Marketing Hub and Sales Hub Enterprise, where HubSpot allows custom objects. Custom properties on any object are supported on every tier and are discovered at connection time.

Can it react to changes on the next poll?

Close to it. The connector declares 48 change triggers, such as Changed get crm v3 imports crm v3 imports, Changed get crm v3 lists list id memberships crm v3 lists list id memberships, Changed get crm v3 objects 0 3 get page, delivered by polling on the schedule you set, from every minute upward, so a flow starts with the changed record in hand. If HubSpot can send webhooks on your plan, point them at a Neblex webhook endpoint for an event-driven start instead.

How does it handle associations?

Get associations returns every related record and its label in one call, so a flow can read a deal with its company and contacts without a lookup per link. The Associate action sets links with a specific label.

How do I backfill history?

The Search API and the list endpoints page through existing records with a modified-since filter, so a first run can load history before the polled change triggers take over for ongoing changes.

Does it work with sandbox portals?

Yes. Each connection targets a production or sandbox portal, so you can build and test in a sandbox and promote the same flow through environments.

See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.