Hubspot
Integrate your application with the Hubspot API
🚀 Quickstart
Connect to Hubspot with Tenklo and see data flow in 2 minutes.
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Hubspot.
Go to Connections -> Add Test Connection -> Authorize, then log in to Hubspot. Later, you'll let your users do the same directly from your app.
Let's make your first request to the Hubspot API (fetch a list of contacts). Replace the placeholders below with your Environment API key, integration ID, and connection ID:
curl "https://api.tenklo.dev/proxy/crm/v3/objects/contacts?properties=email,phone" \
-H "Authorization: Bearer <NANGO-API-KEY>" \
-H "Provider-Config-Key: <INTEGRATION-ID>" \
-H "Connection-Id: <CONNECTION-ID>"Or fetch credentials with the Node SDK or API.
✅ You're connected! Check the Logs tab in Tenklo to inspect requests.
Follow our Auth implementation guide to integrate Tenklo in your app.
To obtain your own production credentials, follow the setup guide linked below.
HubSpot Marketplace installation flow is not supported. Tenklo only supports the standard OAuth flow — all connections must be initiated through Tenklo (e.g. via the Connect UI or the Tenklo Auth API). If your HubSpot app is listed on the HubSpot Marketplace, users must connect through your Nango-powered flow, not via the Marketplace install button.
Deleting a connection revokes its HubSpot refresh token by default. If multiple Tenklo connections share the same HubSpot refresh token, deleting one of them would revoke that token for all connections using it. To opt out of this for a given connection, set skipTokenRevocation: true in that connection's metadata using the update connection metadata endpoint before deleting it.
📚 Hubspot Integration Guides
Tenklo maintained guides for common use cases.
- How to register your own Hubspot OAuth app
Register an OAuth app with Hubspot and obtain credentials to connect it to Tenklo
Official docs: Hubspot API docs
🧩 Pre-built syncs & actions for Hubspot
Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.
Companies
Contacts
Deals
| Function name | Description | Type | Source code |
|---|---|---|---|
deals | Sync deals with amount, close date, stage, owner, description, and associated companies and contacts | Sync | 🔗 Github |
Marketing Emails
| Function name | Description | Type | Source code |
|---|---|---|---|
marketing-emails | Sync marketing emails from HubSpot | Sync | 🔗 Github |
Owners
| Function name | Description | Type | Source code |
|---|---|---|---|
owners | Sync HubSpot owners with names, email, user IDs, and archive status | Sync | 🔗 Github |
Products
| Function name | Description | Type | Source code |
|---|---|---|---|
products | Sync product records with pricing, SKU, quantity, and billing details | Sync | 🔗 Github |
Tasks
| Function name | Description | Type | Source code |
|---|---|---|---|
tasks | Sync tasks with type, title, priority, assignee, due date, notes, and related contacts, companies, and deals | Sync | 🔗 Github |
Tickets
| Function name | Description | Type | Source code |
|---|---|---|---|
service-tickets | Sync service tickets with subject, content, owner, pipeline, stage, category, and priority | Sync | 🔗 Github |
Users
| Function name | Description | Type | Source code |
|---|---|---|---|
users | Sync provisioned users with role IDs, primary team, and admin status | Sync | 🔗 Github |
Others
| Function name | Description | Type | Source code |
|---|---|---|---|
batch-create-companies | Create multiple companies at once | Action | 🔗 Github |
batch-update-companies | Update multiple companies at once | Action | 🔗 Github |
change-user-role | Update a HubSpot user's role and team assignments | Action | 🔗 Github |
clone-marketing-email | Clone an existing marketing email | Action | 🔗 Github |
create-association | Associate two records together | Action | 🔗 Github |
create-company | Create a company record | Action | 🔗 Github |
create-contact | Create a contact record | Action | 🔗 Github |
create-deal | Create a deal record in HubSpot | Action | 🔗 Github |
create-marketing-email | Create a marketing email in HubSpot | Action | 🔗 Github |
create-note | Create a HubSpot note with body, timestamp, owner, optional attachments, and an explicit association to a contact, company, deal, or ticket. | Action | 🔗 Github |
create-property | Create a custom CRM property for a specified HubSpot object type | Action | 🔗 Github |
create-task | Create a HubSpot task with type, title, priority, assignee, due date, notes, and optional associations to contacts, companies, or deals | Action | 🔗 Github |
create-ticket | Create a support ticket in HubSpot CRM | Action | 🔗 Github |
create-user | Provision a HubSpot user with email, role, and team assignments | Action | 🔗 Github |
delete-a-workflow | Delete an automation workflow | Action | 🔗 Github |
delete-company | Delete a company record | Action | 🔗 Github |
delete-contact | Delete a contact record | Action | 🔗 Github |
delete-deal | Delete a deal record | Action | 🔗 Github |
delete-marketing-email | Delete a marketing email | Action | 🔗 Github |
delete-task | Delete a HubSpot task by record ID | Action | 🔗 Github |
delete-ticket | Delete a support ticket | Action | 🔗 Github |
delete-user | Delete a HubSpot provisioned user by ID | Action | 🔗 Github |
fetch-account-information | Retrieve portal account details, currency settings, timezone, and hosting region | Action | 🔗 Github |
fetch-custom-objects | Retrieve HubSpot custom object schemas for enterprise accounts | Action | 🔗 Github |
fetch-pipelines | List pipelines and stages for an object type, defaulting to deals | Action | 🔗 Github |
fetch-properties | List CRM property metadata for a specified HubSpot object type | Action | 🔗 Github |
fetch-roles | List available user roles for a HubSpot enterprise account | Action | 🔗 Github |
get-company | Get a company by ID | Action | 🔗 Github |
get-contact | Get a contact by ID | Action | 🔗 Github |
get-deal | Get a deal by ID | Action | 🔗 Github |
get-marketing-email | Get a marketing email by ID | Action | 🔗 Github |
get-owner | Get an owner by ID | Action | 🔗 Github |
get-ticket | Get a ticket by ID | Action | 🔗 Github |
list-companies | List company records | Action | 🔗 Github |
list-contacts | List contact records | Action | 🔗 Github |
list-deals | List deal records from HubSpot CRM | Action | 🔗 Github |
list-forms | List forms | Action | 🔗 Github |
list-marketing-emails | List marketing emails | Action | 🔗 Github |
list-tickets | List support tickets | Action | 🔗 Github |
search-companies | Search companies by criteria | Action | 🔗 Github |
search-deals | Search deals by criteria | Action | 🔗 Github |
search-tickets | Search tickets by criteria | Action | 🔗 Github |
update-company | Update a company record | Action | 🔗 Github |
update-contact | Update a contact record | Action | 🔗 Github |
update-deal | Update a deal record in HubSpot CRM | Action | 🔗 Github |
update-marketing-email | Update a marketing email | Action | 🔗 Github |
update-task | Update a HubSpot task's fields, owner, due date, and associations | Action | 🔗 Github |
update-ticket | Update a support ticket | Action | 🔗 Github |
whoami | Retrieve the current authenticated HubSpot user's ID and email | Action | 🔗 Github |