HubSpot integration

CRM: contacts, companies, deals, tickets, engagements, lists, pipelines

Help CentreConnectors

Overview

HubSpot is a unified CRM with marketing, sales, service, and CMS hubs. The Automize HubSpot connector covers the core CRM objects (contacts, companies, deals, tickets), engagements (calls, emails, notes), and the schema/properties/owners metadata you need to drive automations.

  • Regions: HubSpot is a single multi-tenant platform – no region selector. The connector talks to api.hubapi.com for all customers.
  • Plans: All HubSpot plans expose the CRM API. Some endpoints (custom objects, high-volume search) need Enterprise. Free CRM works for basic flows.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. Sign in to developers.hubspot.com and create a new app.
  2. On the app's Auth page, set the Redirect URL shown in the Automize HubSpot connector dialog.
  3. Add scopes you'll need (see list below) and save.
  4. Copy the Client ID and Client Secret from the Auth page.
  5. In Automize, open Settings → Connectors → HubSpot → Add connection. Paste credentials, click Connect with HubSpot, choose the HubSpot account, approve scopes.

Scopes required:

  • crm.objects.contacts.read
  • crm.objects.contacts.write
  • crm.objects.companies.read
  • crm.objects.companies.write
  • crm.objects.deals.read
  • crm.objects.deals.write
  • tickets

Find your credentials at https://app.hubspot.com/developer.


Rate limits

HubSpot enforces 100 requests per 10-second window per app, with daily caps that scale by plan (250k–1M+/day). The connector reads the X-HubSpot-RateLimit-Remaining headers and auto-backs-off on 429s. Search endpoints have a tighter limit (4/sec per token).


Data model

HubSpot's CRM is built around four standard objects plus engagements.

    Contacts ─┬─ associated Companies (M2M)
              ├─ associated Deals (M2M, through pipelines)
              └─ associated Tickets (M2M)
    Engagements (calls, emails, notes, meetings) link to any object.

Object types are referenced by string (contact, company, deal, ticket) or
by their numeric object_type_id for custom objects.

Available operations

28 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create associationAssociationsAssociate two CRM records in HubSpot (e.g. contact to company).
List associationsAssociationsList associations for a HubSpot record.
Create companyCompaniesCreate a new company in HubSpot.
Get companyCompaniesGet a HubSpot company by ID.
List companiesCompaniesList CRM companies in HubSpot.
Search companiesCompaniesSearch HubSpot companies by filters.
Update companyCompaniesUpdate a HubSpot company.
Create contactContactsCreate a new contact in HubSpot.
Delete contactContactsArchive a HubSpot contact.
Get contactContactsGet a HubSpot contact by ID.
List contactsContactsList CRM contacts in HubSpot.
Search contactsContactsSearch HubSpot contacts by filters.
Update contactContactsUpdate a HubSpot contact.
Create dealDealsCreate a new deal in HubSpot.
Get dealDealsGet a HubSpot deal by ID.
List dealsDealsList CRM deals in HubSpot.
Search dealsDealsSearch HubSpot deals by filters.
Update dealDealsUpdate a HubSpot deal.
Log callEngagementsLog a call engagement in HubSpot.
Log emailEngagementsLog an email engagement in HubSpot.
Create noteEngagementsCreate a note/engagement on a HubSpot record.
List PropertiesGeneralList all properties for an object type (contacts, companies, deals, tickets)
List Custom Object SchemasGeneralList custom object schemas
List ownersPipelines & OwnersList CRM owners/users in HubSpot.
List pipelinesPipelines & OwnersList deal or ticket pipelines in HubSpot.
Create ticketTicketsCreate a new ticket in HubSpot.
Get ticketTicketsGet a HubSpot ticket by ID.
List ticketsTicketsList support tickets in HubSpot.

Operations

Create association

Associate two CRM records in HubSpot (e.g. contact to company).

ParameterRequiredTypeDescription
From type from_typeYestext
From ID from_idYestext
To type to_typeYestext
To ID to_idYestext

Tips

  • Bidirectional – creates one logical association visible from both sides.
  • For custom association types, pass associationCategory + associationTypeId.

Log call

Log a call engagement in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea
Associations (JSON) associationsYestextarea

Tips

  • Log a call engagement with metadata: duration, disposition, direction, body.
  • associations links to whoever was called.

Create company

Create a new company in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea

Tips

  • name and domain are typically required. domain is the dedupe key.

Create contact

Create a new contact in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea

Tips

  • properties is a JSON object. At minimum send {email: 'foo@bar.com'}.
  • If a contact with the same email exists, returns 409. Use the Upsert pattern via Search → Update.

Errors

  • CONFLICT – Contact with this email already exists. Look it up and update instead.

Create deal

Create a new deal in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea

Tips

  • dealname, pipeline, dealstage are typically required. Use List Pipelines to discover valid stage IDs.

Log email

Log an email engagement in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea
Associations (JSON) associationsYestextarea

Tips

  • Log an email after the fact. For sending email use the Marketing Email API (not exposed here).

Create note

Create a note/engagement on a HubSpot record.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea
Associations (JSON) associationsYestextarea

Tips

  • properties.hs_note_body holds the note text. associations links it to a contact/company/deal/ticket.

Create ticket

Create a new ticket in HubSpot.

ParameterRequiredTypeDescription
Properties (JSON) propertiesYestextarea

Tips

  • subject and hs_pipeline_stage are required. Associate to a contact via Create Association after creation.

Delete contact

Archive a HubSpot contact.

ParameterRequiredTypeDescription
Contact ID contact_idYestext

Tips

  • Archives the contact (soft-delete). Restorable from the UI for 90 days.

Get company

Get a HubSpot company by ID.

ParameterRequiredTypeDescription
Company ID company_idYestext

Tips

  • Use idProperty=domain to look up by company domain.

Get contact

Get a HubSpot contact by ID.

ParameterRequiredTypeDescription
Contact ID contact_idYestext

Tips

  • By default returns a slim payload. Add properties query param to include extra fields (max ~100 per call).
  • Use idProperty=email to look up by email instead of HubSpot's internal contact_id.

Get deal

Get a HubSpot deal by ID.

ParameterRequiredTypeDescription
Deal ID deal_idYestext

Tips

  • Returns deal properties only. Use List Associations to find linked contacts / companies.

Get ticket

Get a HubSpot ticket by ID.

ParameterRequiredTypeDescription
Ticket ID ticket_idYestext

Tips

  • subject, content, hs_pipeline_stage are the most useful properties.

List associations

List associations for a HubSpot record.

ParameterRequiredTypeDescription
From type from_typeYestext
From ID from_idYestext
To type to_typeYestext

Tips

  • from_type: contact, company, deal, ticket. to_type: same set. Returns the linked record IDs.

List companies

List CRM companies in HubSpot.

No input parameters.

Tips

  • Same paging contract as contacts. Project fields via properties=name,domain,industry.

List contacts

List CRM contacts in HubSpot.

No input parameters.

Tips

  • Default returns 100 per page with paging cursor. Add properties=email,firstname,lastname to project fewer fields.
  • For filtered lists, use Search Contacts – it's faster and supports complex filters.

List deals

List CRM deals in HubSpot.

No input parameters.

Tips

  • Project pipeline + dealstage to know where each deal sits.

List owners

List CRM owners/users in HubSpot.

No input parameters.

Tips

  • Owners are HubSpot users that can be assigned to records via hubspot_owner_id property.

List pipelines

List deal or ticket pipelines in HubSpot.

ParameterRequiredTypeDescription
Object type (deals/tickets) object_typeYestext

Tips

  • object_type: deal or ticket. Returns pipelines with their stage IDs.

List Properties

List all properties for an object type (contacts, companies, deals, tickets)

ParameterRequiredTypeDescription
Object Type object_typeYestext

Tips

  • object_type: contacts, companies, deals, tickets. Use to discover all available property names.
  • Returns ~30-100 properties per object depending on portal customisation.

List Custom Object Schemas

List custom object schemas

No input parameters.

Tips

  • Custom object schemas. Returns names + IDs for portal-defined custom objects.

List tickets

List support tickets in HubSpot.

No input parameters.

Tips

  • Filter by hs_pipeline + hs_pipeline_stage to scope to specific support queues.

Search companies

Search HubSpot companies by filters.

ParameterRequiredTypeDescription
Filter groups (JSON) filterGroupsYestextarea
Properties (JSON) propertiesNotextarea
Search query queryNotext
Sorts sortsNotext
Limit limitNotext
After afterNotext

Tips

  • Same filter shape as Search Contacts.

Search contacts

Search HubSpot contacts by filters.

ParameterRequiredTypeDescription
Filter groups (JSON) filterGroupsYestextarea
Properties to return (JSON) propertiesNotextarea
Search query queryNotext
Limit limitNonumber
Sorts sortsNotext
After afterNotext

Tips

  • Body: {filterGroups: [...], properties: [...], sorts: [...], limit, after}.
  • filterGroups are OR'd; filters within a group are AND'd.
  • Rate-limited to 4/sec – back off for large sweeps.

Search deals

Search HubSpot deals by filters.

ParameterRequiredTypeDescription
Filter groups (JSON) filterGroupsYestextarea
Properties (JSON) propertiesNotextarea
Search query queryNotext
Sorts sortsNotext
Limit limitNotext
After afterNotext

Update company

Update a HubSpot company.

ParameterRequiredTypeDescription
Company ID company_idYestext
Properties (JSON) propertiesYestextarea

Update contact

Update a HubSpot contact.

ParameterRequiredTypeDescription
Contact ID contact_idYestext
Properties (JSON) propertiesYestextarea

Update deal

Update a HubSpot deal.

ParameterRequiredTypeDescription
Deal ID deal_idYestext
Properties (JSON) propertiesYestextarea

FAQ

Why is my Search returning 0 results when the contact exists?
HubSpot search re-indexes asynchronously. New records can take up to a few seconds to appear. Use Get Contact with idProperty=email for immediate reads.
How do I get a contact's company?
Use List Associations from_type=contact from_id=<id> to_type=company. Returns one or more company IDs to look up.
What's the limit on properties[] in a request?
Roughly 100 per call. For wide reads, do two requests or use the v3 batch endpoint (not yet exposed in this connector).
Why does Create Contact return 409 – I want it to upsert.
There's no native upsert – use Search Contacts with filter email=X first; if found, Update; if not, Create.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.