Skip to main content

HubSpot Node

The HubSpot node provides integration with HubSpot CRM in SkyStudio workflows. You can read and filter contact, deal, and company records, and run AI-powered queries.


🎬 Click to watch the video →

Connection Setup and Management

To use the HubSpot node, you must create a Private App in HubSpot and add its access token to SkyStudio.

Getting a Private App Token

  1. Sign in to your HubSpot account.
  2. Click the profile icon in the upper-right corner and go to Settings.
  3. Open Integrations → Private Apps from the left menu.
  4. Click the Create App button.
  5. Give the app a name and select the required permission scopes:
    • CRMcrm.objects.contacts.read, crm.objects.deals.read, crm.objects.companies.read
  6. Click the Create App button.
  7. Copy the generated Access Token, which starts with pat-eu1-… or pat-na1-….

Note: The token is displayed in full only once. If you forget to copy it, you must regenerate the token.

Adding the Connection to SkyStudio

  1. Go to Application Connections from the left menu in SkyStudio.
  2. Click the Add New Connection button.
  3. Select HubSpot as the provider.
  4. Enter a descriptive name in the Connection Name field, such as Prod HubSpot.
  5. Paste the token you copied into the Private App Access Token field.
  6. Click the Save button.

Assigning the Connection to the Node

After adding the HubSpot node to the canvas, select the saved connection from the Application Connections dropdown in the right panel.

Tip: You can define separate connections for different HubSpot portals, such as test and production, and choose which one to use in the workflow.


Operations

The HubSpot node provides 7 operations:

OperationCategoryDescription
Get ContactsFeaturedLists all contact records in the CRM
Get DealsFeaturedLists all deal records in the CRM
Search ObjectFeaturedSearches any CRM object using filters
HubSpot AI AssistantFeaturedQueries CRM data using natural language
Get Contact by IDStandardRetrieves details of a specific contact by ID
Get Deal by IDStandardRetrieves details of a specific deal by ID
Get CompaniesStandardLists all company records in the CRM

Get Contacts

Returns all contact records in HubSpot CRM. It is used in bulk contact retrieval and synchronization scenarios.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
PropertiesNoContact properties to retrieve, as comma-separated field names, such as firstname,lastname,email,phone
Get All (Auto Paginate)NoIf enabled, automatically retrieves records from all pages; if disabled, only the first page is returned
LimitNoMaximum number of contacts to return. Applies when Get All is disabled

Property Examples

firstname, lastname, email, phone, company, jobtitle, city, country, createdate, lastmodifieddate, hubspot_owner_id

Example Output

{
"results": [
{
"id": "12345",
"properties": {
"firstname": "Ahmet",
"lastname": "Yılmaz",
"email": "ahmet@company.com",
"phone": "+905551234567",
"company": "Example Inc."
}
}
]
}

Get Deals

Returns all deal records in HubSpot CRM. It is used in sales pipeline tracking and reporting workflows.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
PropertiesNoDeal properties to retrieve, as comma-separated field names
Get All (Auto Paginate)NoAutomatically retrieves all pages
LimitNoMaximum number of deals to return

Property Examples

dealname, amount, dealstage, closedate, pipeline, hubspot_owner_id, createdate, hs_lastmodifieddate

Example Output

{
"results": [
{
"id": "67890",
"properties": {
"dealname": "Enterprise License - Example Inc.",
"amount": "15000",
"dealstage": "presentationscheduled",
"closedate": "2024-12-31T00:00:00.000Z"
}
}
]
}

Search Object

Searches any object type in HubSpot CRM, such as contacts, deals, companies, or tickets, using a specific filter. It is used for dynamic queries and conditional data retrieval scenarios.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
Object TypeYesObject type to search: contacts, deals, companies, or tickets
Filter PropertyNoProperty name to filter by, such as email or dealstage
Filter OperatorNoFilter operator, such as EQ, NEQ, CONTAINS_TOKEN, GT, or LT
Filter ValueNoFilter value, such as ahmet@company.com or closedwon
PropertiesNoField names to return in the results, separated by commas
LimitNoMaximum number of records to return

Filter Operator Values

OperatorDescription
EQEquals
NEQDoes not equal
GTGreater than
LTLess than
GTEGreater than or equal
LTELess than or equal
CONTAINS_TOKENContains, used for text search
NOT_CONTAINS_TOKENDoes not contain

Usage Example

To find closed-won deals:

  • Object Type: deals
  • Filter Property: dealstage
  • Filter Operator: EQ
  • Filter Value: closedwon

HubSpot AI Assistant

Queries HubSpot CRM data using natural language. It is ideal for accessing data analysis without writing complex filters.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
QueryYesCRM query in natural language
System PromptNoSystem instruction that customizes the AI assistant’s behavior

Usage Example

Query: "What is the total value of deals expected to close this month?"

System Prompt: "Consider only deals in the active pipeline. Return the results in Turkish and in Turkish lira."


Get Contact by ID

Returns detailed information for a single contact using a specific HubSpot Contact ID.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
Contact IDYesNumeric ID of the contact record in HubSpot
PropertiesNoField names to retrieve, separated by commas

How to Find the Contact ID

The id field from the output of the Get Contacts or Search Object operations can be used directly.

It is also visible in the URL when you open the contact record in the HubSpot web interface:

app.hubspot.com/contacts/{portal-id}/contact/{contact-id}

Get Deal by ID

Returns detailed information for a single deal using a specific HubSpot Deal ID.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
Deal IDYesNumeric ID of the deal record in HubSpot
PropertiesNoField names to retrieve, separated by commas

How to Find the Deal ID

The id field from the output of the Get Deals or Search Object operations can be used directly.

HubSpot URL format:

app.hubspot.com/contacts/{portal-id}/deal/{deal-id}

Get Companies

Returns all company records in HubSpot CRM.

Parameters

ParameterRequiredDescription
ConnectionYesThe HubSpot connection to use
PropertiesNoCompany properties to retrieve, as comma-separated field names
Get All (Auto Paginate)NoAutomatically retrieves all pages
LimitNoMaximum number of companies to return

Property Examples

name, domain, industry, city, country, phone, numberofemployees, annualrevenue, createdate


Quick Start Examples

Example 1: Daily Sales Report

A workflow that summarizes deals expected to close soon every morning and sends them to Slack:

Schedule (Every morning at 08:00) → Search Object → LLM (summarize) → Slack Message

Search Object settings:

  • Object Type: deals
  • Filter Property: closedate
  • Filter Operator: LTE
  • Filter Value: {{today+7days}}
  • Properties: dealname,amount,dealstage,hubspot_owner_id

Example 2: New Customer Welcome

A workflow that finds a newly added CRM contact and sends a personalized welcome email:

Webhook (HubSpot trigger) → Get Contact by ID → LLM (write email) → Send Email

Get Contact by ID settings:

  • Contact ID: {{webhook.contact_id}}
  • Properties: firstname,lastname,email,company,jobtitle

Example 3: Sales Team AI Assistant

A chatbot that allows the sales team to query CRM using natural language:

Text Input → HubSpot AI Assistant → Text Output

HubSpot AI Assistant settings:

  • Query: {{input.text}}
  • System Prompt: "You are a sales analyst assistant. Respond in Turkish. Show currency in TL. Mask personal data in the response."

Example 4: Creating a Company Profile

A workflow that creates a full CRM profile from a company name:

Text Input (company name) → Search Object → Get Contacts → LLM (create profile) → Text Output

Search Object settings:

  • Object Type: companies
  • Filter Property: name
  • Filter Operator: CONTAINS_TOKEN
  • Filter Value: {{input.text}}
  • Properties: name,domain,industry,numberofemployees,annualrevenue

Common Errors

ErrorPossible CauseSolution
401 UnauthorizedToken is invalid or expiredCheck the Private App token in HubSpot and renew it if needed
403 ForbiddenToken does not have the required scope permissionAdd the required CRM permissions from the Private App settings
404 Not FoundInvalid Contact ID or Deal IDVerify the ID using Get Contacts
429 Too Many RequestsAPI rate limit exceededHubSpot API has a daily limit of 250,000 requests; reduce workflow frequency
INVALID_FILTER_VALUEFilter value is not in the expected formatCheck that the Filter Value matches the relevant field type, such as text, number, or date
Empty result (results: [])No records match the filter conditionCheck the Filter Property and Filter Value values