Gifts

Culture

Reviews

Local Spots

How to Setup HubSpot CRM with n8n (2026 Guide)

HubSpot CRM

HubSpot CRM

★★★★ 4.5
Crm General Crm

A popular free CRM with powerful marketing, sales, and service hubs that scale as your business grows.

Full Review

n8n

Open-source workflow automation tool with self-hosting options.

All n8n Tools

Overview

n8n is an open-source workflow automation platform that connects HubSpot CRM to your entire tech stack. Unlike cloud-only tools like Zapier and Make, n8n can be self-hosted on your own infrastructure, giving you complete control over data flow and eliminating per-execution pricing. The HubSpot CRM node in n8n supports contacts, companies, deals, tickets, and engagements with both trigger and action capabilities.

n8n's approach to automation is more developer-friendly than Zapier or Make, with built-in support for JavaScript/Python code nodes, HTTP requests, and complex data transformations. The visual workflow builder is intuitive enough for non-developers but powerful enough for technical users who need conditional logic, loops, error handling, and custom API calls. For organizations already using HubSpot's free CRM and looking to build sophisticated automations without enterprise pricing, n8n is a compelling option.

The choice between n8n's self-hosted and cloud versions depends on your team. Self-hosted n8n is free with unlimited executions, making it ideal for high-volume HubSpot automations. n8n Cloud starts at $24/month with a usage-based model that is still more affordable than Zapier or Make for most workflows.

Prerequisites

  • An n8n instance (self-hosted via Docker or n8n Cloud account)
  • A HubSpot account with API access
  • A HubSpot private app with the required scopes, or OAuth credentials
  • For self-hosted: a server with Docker or Node.js 18+ installed, and a publicly accessible URL for webhook triggers

Step-by-Step Setup

Step 1: Create a HubSpot private app for authentication

In HubSpot, go to Settings > Integrations > Private Apps. Click Create a private app. Name it "n8n Integration" and add a description. Under the Scopes tab, select the permissions n8n needs: crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, crm.objects.deals.write, and any additional scopes for objects you plan to automate. Click Create app and copy the access token.

Step 2: Add HubSpot credentials in n8n

In n8n, go to Settings > Credentials (or click Credentials in the left sidebar). Click Add Credential and search for "HubSpot." Select HubSpot API. Choose the authentication method: Access Token (for private apps) or OAuth2. If using Access Token, paste the token from your HubSpot private app. Click Save. n8n will test the connection automatically.

Step 3: Create a new workflow

Click New Workflow from the n8n dashboard. You will see a blank canvas with a trigger node placeholder. Click the + button to add your first node.

Step 4: Add the HubSpot trigger node

Search for "HubSpot Trigger" and add it to the canvas. Select the credential you created in Step 2. Choose the event to listen for: Contact Created, Contact Updated, Deal Created, Deal Updated, or other available events. The trigger uses HubSpot webhooks, so your n8n instance must be publicly accessible. Click Listen for Test Event and then create or update a record in HubSpot to capture sample data.

Step 5: Add action nodes

Click the + after the HubSpot Trigger to add the next step. You can add another HubSpot node (to update a different object), a Slack node (to send notifications), a Google Sheets node (to log data), or any of n8n's 400+ integrations. Map fields from the HubSpot trigger output to the input fields of downstream nodes using n8n's expression editor.

Step 6: Test the workflow

Click Test Workflow to run it with the sample data captured from the trigger. Review the output of each node to verify data flows correctly. The execution panel shows input and output data for every node, making debugging straightforward.

Step 7: Activate the workflow

Toggle the workflow to Active using the switch in the top right. The HubSpot trigger webhook will now listen for events in real-time. Every time a matching event occurs in HubSpot, the workflow will execute automatically.

Configuration Options

n8n's HubSpot node supports filtering with the Additional Fields section, letting you specify which properties to return and limit results. The IF node enables conditional branching based on HubSpot data (e.g., route high-value deals to a different notification channel). Use the Code node for custom JavaScript transformations when built-in nodes cannot handle your data mapping needs. The Merge node combines data from multiple sources before writing to HubSpot, useful for enrichment workflows.

What Syncs

DataDirectionFrequency
ContactsBidirectionalReal-time (webhook) or scheduled
CompaniesBidirectionalReal-time or scheduled
DealsBidirectionalReal-time or scheduled
TicketsBidirectionalReal-time or scheduled
EngagementsHubSpot to n8nScheduled (polling)

Best Practices

  • Use HubSpot private apps with minimal required scopes rather than full API keys for better security
  • For self-hosted n8n, use a reverse proxy (nginx, Caddy) with SSL to secure webhook endpoints
  • Add error handling with the Error Trigger node to catch and alert on workflow failures
  • Use n8n's built-in versioning to track workflow changes and roll back if needed
  • For high-volume workflows, use the Split In Batches node to process records in manageable chunks and respect HubSpot's rate limits
  • Store sensitive configuration (API keys, thresholds) in n8n's credential store rather than hardcoding in workflows

Common Issues and Fixes

Webhook triggers not firing

If the HubSpot trigger does not receive events, verify that your n8n instance is publicly accessible via HTTPS. Self-hosted instances behind a firewall or without a public URL cannot receive webhooks. Use a tunnel service like ngrok for development, or deploy n8n on a cloud server with a public domain and SSL certificate.

Rate limit errors from HubSpot API

HubSpot limits API calls to 100 requests per 10 seconds for OAuth apps and 200 per 10 seconds for private apps. If your workflow processes many records, add a Wait node between batches to throttle requests. The Split In Batches node combined with a Wait node handles this pattern cleanly.

Missing properties in trigger data

HubSpot webhook payloads include only the properties that changed, not the full record. If your workflow needs additional properties, add a HubSpot action node after the trigger to fetch the complete record using the record ID from the trigger payload.

Advanced Configuration

Use n8n's Webhook node instead of the HubSpot Trigger to receive HubSpot webhook subscriptions with custom configurations. Implement retry logic using the Error Trigger combined with Wait and Execute Workflow nodes for resilient automations. For complex data transformations, the Code node supports full JavaScript or Python with access to npm packages. n8n's sub-workflow feature lets you build reusable HubSpot operations (e.g., "upsert contact with deduplication") that multiple workflows can call, reducing duplication and simplifying maintenance.

HubSpot CRM Full Review » | All n8n Tools »