Skip to main content
Lifetime license included with every purchase
n8n workflowsHubSpot automationCRM workflowssales automation

How to Automate HubSpot with n8n (Contacts, Deals, and Email Sequences)

Learn how to automate HubSpot CRM with n8n. Sync contacts, update deals, trigger email sequences, and build powerful no-code HubSpot automation workflows.

Nn8n Marketplace Team·May 24, 2026·7 min read

HubSpot Automation That Goes Beyond the Built-In Workflow Builder

HubSpot's native workflow builder handles simple branching inside HubSpot well. The moment you need to sync a closed deal to your accounting system, post a Slack message with deal context, or update a Notion board when a contact changes lifecycle stage, you hit a hard wall.

n8n removes that wall. It connects to HubSpot's API directly, reacts to contact, deal, and ticket events in real time, and routes data to any tool you already use, without Zapier.s per-task pricing.

This guide covers five high-value HubSpot automation patterns with exact node configurations you can deploy today.

What You Can Automate With n8n and HubSpot

Every recurring HubSpot task is a candidate for automation:

  • Sync new contacts to Slack, a Google Sheet, or your data warehouse
  • Score inbound leads and route hot prospects to the right sales rep
  • Update deal stages based on external triggers like payments received or trials activated
  • Trigger multi-step email sequences from lifecycle stage changes
  • Create follow-up tasks when deals go stale for more than a set number of days
  • Enrich contacts automatically with Clearbit, Hunter, or a custom API
  • Send win/loss summaries to Slack and update reporting dashboards
Browse HubSpot automation templates

The HubSpot Automation Pipeline

Every effective HubSpot workflow follows the same four-stage structure:

HubSpot Trigger
  → Enrich / Score  (Code node, HTTP Request, or AI node)
  → Route           (IF node or Switch node)
  → Act             (Slack, Email, CRM update, Database)

The trigger is a HubSpot webhook: contact created, deal stage changed, ticket submitted. The middle two stages handle logic. The final stage is where work happens in external systems.

Why webhooks beat polling

HubSpot Trigger nodes register a webhook on your portal automatically. When the event fires, n8n receives it in under a second. Polling every few minutes is slower, burns API quota, and misses burst activity. Always use event triggers for HubSpot work.

Step-by-Step: Build a HubSpot Contact Sync Workflow

1. Collect: Set the HubSpot Trigger

Add a HubSpot Trigger node. Select the event: contact.creation for new contacts, or contact.propertyChange for property updates. Authenticate with a HubSpot private app token (Settings → Integrations → Private Apps).

The trigger payload includes objectId (the HubSpot contact ID) plus changed properties.

2. Process: Fetch the Full Contact Record

Trigger payloads are minimal. Use a HubSpot node in Get Contact mode to pull the full record using the objectId. Request only the properties you need (email, firstname, lastname, lifecyclestage, hs_lead_status) to keep payloads lean.

HubSpot Trigger (contact.creation)
  → HubSpot: Get Contact (by objectId)
  → Code node: build normalized output object

3. Route: Qualify the Lead

Add an IF node. Check lifecyclestage === "lead" and hs_lead_status !== "unqualified". Contacts that pass route to the hot-lead branch; others route to nurture.

For granular scoring, drop in a Code node that computes a score from company size, industry, and page views, then branch on the score threshold.

4. Act: Update External Systems

On the hot-lead branch:

  • Slack node → post to #sales with name, company, and HubSpot contact URL
  • HubSpot node → update hs_lead_status to "in_progress"
  • HTTP Request node → create a task in your project management tool

On the nurture branch:

  • HubSpot node → enroll in a marketing sequence
  • Google Sheets node → append a row to your tracking spreadsheet

5. Follow Up: Flag Stale Deals Daily

Add a separate Schedule Trigger workflow that runs every morning. Pull all deals where dealstage = "appointmentscheduled" and hs_lastmodifieddate is older than three days. For each stale deal, create an owner task and post a Slack reminder.

Enrich contacts before routing

Before the IF node, add an HTTP Request node calling the Clearbit Enrichment API with the contact email. Merge company size, industry, and tech stack into the HubSpot contact record. Your lead score will be significantly more accurate with enriched data than with HubSpot properties alone.

See the AI lead scoring template

Implementation Patterns

Pattern 1: Deal Stage → External System Sync

When a deal moves to closedwon, sync revenue data to your accounting tool and announce it in Slack.

HubSpot Trigger (deal.propertyChange: dealstage)
  → IF: new value === "closedwon"
  → HTTP Request: POST to QuickBooks or Xero API
  → Slack: post to #wins channel
  → HubSpot: Set closedate to today

Use a Switch node instead of IF when you need to handle multiple target stages (closedwon, closedlost, contractsent) with different downstream actions for each.

Pattern 2: Lifecycle Stage → Email Sequence

When a contact becomes a Marketing Qualified Lead, enroll them in a targeted sequence automatically.

HubSpot Trigger (contact.propertyChange: lifecyclestage)
  → IF: new value === "marketingqualifiedlead"
  → HubSpot: Enroll in Sequence (sequenceId from config)
  → Slack: notify the assigned rep

Pair this with the email follow-up automator template for a complete nurture pipeline.

Pattern 3: Churn Risk → Win-Back Campaign

Find contacts whose hs_last_sales_activity_date has not changed in 60 days and whose associated deal value exceeds a threshold, then route them into a win-back sequence.

Schedule Trigger (daily at 08:00)
  → HubSpot: Search Contacts (days_since_last_activity > 60)
  → Code: filter for deal value > 1000
  → HubSpot: Enroll in win-back sequence
  → Slack: alert the CS team

This pattern maps directly to the churn monitor and win-back template, which has the filters and routing logic pre-built.

Use HubSpot Search instead of list exports

The HubSpot Search Contacts node accepts filter groups identical to HubSpot's built-in contact filters. You can replicate any saved list entirely inside n8n. No CSV exports, no manual refreshes. Combine multiple criteria using AND and OR groups directly in the node parameters.

n8n Nodes You'll Use Most

NodePurpose
HubSpot TriggerReact to contact, deal, ticket, or company events in real time
HubSpotCRUD on contacts, deals, companies, engagements, and tickets
IF / SwitchRoute records by score, lifecycle stage, or deal value
CodeScore leads, transform properties, calculate date differences
HTTP RequestCall Clearbit, Hunter, or any custom enrichment API
SlackNotify sales and CS teams on key events
Google SheetsAppend rows to pipeline and reporting trackers
Schedule TriggerRun daily stale-deal and churn-risk checks

Getting Started

  1. Install n8n: self-host on a $6/month VPS or use n8n Cloud's free tier to get started immediately.
  2. Create a HubSpot private app: go to Settings → Integrations → Private Apps. Grant scopes for contacts, deals, and CRM. Copy the access token.
  3. Add HubSpot credentials in n8n: open Credentials → New → HubSpot API and paste the token.
  4. Pick your first trigger: start with contact.creation to understand the payload structure before building complex routing logic.
  5. Always fetch the full record after a trigger: triggers return minimal data. Use the HubSpot Get node with the objectId to pull complete properties before any branching.
  6. Test with a real contact: create a test contact in HubSpot, watch the n8n execution log, and verify each node output before activating the workflow.
  7. Browse the templates library: pre-built HubSpot patterns let you copy and adapt complete workflows in minutes instead of building from scratch.

For complementary automation patterns, read How to Automate Your CRM Workflows with n8n and How to Automate Lead Generation and Outreach with n8n. Both cover approaches that stack directly with the workflows above.

Browse all sales automation templates
FAQ

Common questions

Can n8n connect to HubSpot without writing code?
Yes. n8n has a native HubSpot node that handles contacts, companies, deals, engagements, and tickets. Authenticate once with a private app token and you can trigger workflows from any HubSpot event. No custom code required.
How do I sync new HubSpot contacts to other tools with n8n?
Use the HubSpot Trigger node set to 'contact.creation'. When a contact is created, n8n fires instantly and can write to Slack, Google Sheets, a database, or any connected app. No polling, no manual exports.
What can n8n do with HubSpot that HubSpot's own workflows can't?
HubSpot workflows only touch HubSpot data and HubSpot actions. n8n connects HubSpot events to any external tool (Stripe, Notion, PostgreSQL, Telegram) and lets you run custom JavaScript between steps to transform, score, or route data any way you need.
Stop reading. Start running.

Get the workflow templates this guide is built on

Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.