Skip to content

HubSpot

HubSpot CRM and marketing — contacts, deals, companies, and engagement tracking.

PropertyValue
Typehttp
Authenticationoauth2
CategoryCRM & Sales
FieldTypeRequiredDescription
client_idstringYesHubSpot OAuth2 client ID
client_secretstringYesHubSpot OAuth2 client secret

Create a new contact in HubSpot CRM.

EndpointPOST /crm/v3/objects/contacts
MethodPOST

Update properties on an existing contact.

EndpointPATCH /crm/v3/objects/contacts/{contactId}
MethodPATCH

Retrieve a single contact by ID.

EndpointGET /crm/v3/objects/contacts/{contactId}
MethodGET

Search contacts using filters, query strings, and sorting.

EndpointPOST /crm/v3/objects/contacts/search
MethodPOST

Create a new deal in the sales pipeline.

EndpointPOST /crm/v3/objects/deals
MethodPOST

Update properties on an existing deal.

EndpointPATCH /crm/v3/objects/deals/{dealId}
MethodPATCH

Create a new company record.

EndpointPOST /crm/v3/objects/companies
MethodPOST

List all deal pipelines and their stages.

EndpointGET /crm/v3/pipelines/deals
MethodGET
name: shopify-order-to-hubspot
trigger:
type: webhook
source: shopify
event: orders/create
steps:
- name: find-existing-contact
connector: hubspot
action: search-contacts
input:
filterGroups:
- filters:
- propertyName: email
operator: EQ
value: "{{ trigger.body.customer.email }}"
- name: upsert-contact
connector: hubspot
action: create-contact
skip_if: "{{ steps.find-existing-contact.output.total > 0 }}"
input:
properties:
email: "{{ trigger.body.customer.email }}"
firstname: "{{ trigger.body.customer.first_name }}"
lastname: "{{ trigger.body.customer.last_name }}"
phone: "{{ trigger.body.customer.phone }}"
- name: create-deal
connector: hubspot
action: create-deal
input:
properties:
dealname: "Shopify Order #{{ trigger.body.order_number }}"
amount: "{{ trigger.body.total_price }}"
dealstage: "closedwon"
pipeline: "default"