Resources · n8n integration

HubSpot n8n integrationAutomate HubSpot with n8n.

Want HubSpot and n8n wired together without writing code? The HubSpot node exposes 31 operations across companies, contacts, lists, deals, engagements and tickets, and the HubSpot Trigger reacts to 18 events grouped in 5 object families. This HubSpot n8n integration guide covers both.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the HubSpot n8n integration cover?

Two nodes, both shipped with n8n. The HubSpot node calls the CRM API to read and write companies, contacts, contact lists, deals, engagements and tickets, 31 operations in total. The HubSpot Trigger registers a webhook, that is a URL HubSpot calls on its own the moment something changes, and starts your workflow on any of 18 events.

Nothing to install either way: both nodes sit in the node panel of every n8n instance, on n8n Cloud and on a self-hosted one.

Route a new lead in seconds. A form fills the CRM, contact.creation fires, the workflow reads the record with contact.get, drops it in a nurture list with contactList.add and posts the owner a message in Slack. The rep sees the lead before the browser tab is closed.

Keep the pipeline honest. deal.propertyChange fires when a stage moves, deal.get pulls the amount and the close date, and a row lands in Google Sheets for the weekly forecast. Put deal.getRecentlyCreatedUpdated on a schedule next to it and the nightly run fills whatever a switched-off workflow missed.

Onboard without copy-paste. deal.creation starts the sequence: company.searchByDomain finds the account behind the email domain, contact.search returns the other people at that company, and Gmail sends the welcome message. A migration works the same way, with Pipedrive or Salesforce on the read side and contact.upsert on the write side, since the email is the key HubSpot matches on.

The node stops at those six objects. Anything the HubSpot API offers beyond them goes through the HTTP Request node, which reuses the same credential through its predefined authentication. That is the honest answer when an operation is missing, and it costs one extra node rather than a different project.

Two ceilings shape the build. Search accepts three filter groups of three filters at most, so a very selective query sometimes needs a second pass in a Filter node. And HubSpot accepts a single webhook at a time: activate a second HubSpot Trigger and the first one goes quiet. One trigger per account, with the routing done inside the workflow, is the shape that survives.

Connect

How do you connect HubSpot to n8n?

  1. 01

    Create a service key in HubSpot

    Service keys sit under Development, then Keys, then Service Keys; the same page also shows up under Settings, Account Management, Integrations. Select Create service key, give it a descriptive Name, then add one scope per permission the workflow needs and confirm with Update. Creating a key requires super admin access, or the Developer tools access permission on the account.

  2. 02

    Paste the key into the n8n credential

    Open the new key, select Show, copy the value and paste it as App Token in a HubSpot credential, the stored connection n8n reuses. Created once in the Credentials menu, it is offered in every HubSpot node afterwards. Start the scopes with crm.objects.contacts.read and crm.objects.contacts.write, then add the company, deal, owner and list scopes as the workflow grows.

  3. 03

    Add a developer app for the trigger

    The HubSpot Trigger does not use the service key. It needs a developer account and a public app: copy the Developer API Key from the Apps page, then the App ID, Client ID and Client Secret from the app's Auth tab, and paste the n8n OAuth Redirect URL into the app. Read scopes on contacts, companies and deals, plus their schemas, are the recommended set.

Triggers

What the HubSpot Trigger listens to

HubSpot Trigger is the node that starts a workflow when something happens in HubSpot. It listens to 18 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your HubSpot account.

What you see in n8n

Every event, by family

One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.

conversation.*5
  • conversation.
    • creation
    • deletion
    • newMessage
    • privacyDeletion
    • propertyChange
contact.*4
  • contact.
    • creation
    • deletion
    • privacyDeletion
    • propertyChange
company.*3
  • company.
    • creation
    • deletion
    • propertyChange
deal.*3
  • deal.
    • creation
    • deletion
    • propertyChange
ticket.*3
  • ticket.
    • creation
    • deletion
    • propertyChange

Configuration notes

01HubSpot Trigger setupVersion 1 of the node runs on a webhook: at activation n8n registers its URL with HubSpot, and every event you ticked lands in the workflow within seconds. No polling, meaning no repeated call on a timer asking whether anything changed, and no wildcard either, so there is no catch-all option to fall back on.

Version 1 of the node runs on a webhook: at activation n8n registers its URL with HubSpot, and every event you ticked lands in the workflow within seconds. No polling, meaning no repeated call on a timer asking whether anything changed, and no wildcard either, so there is no catch-all option to fall back on.

Key parameters

  • Events: the list you tick, one or several out of the 18 the trigger knows. Contact, deal, company and conversation each get a note below; the ticket family sits next to them, with ticket.creation, ticket.deletion and ticket.propertyChange.
  • Additional Fields: the node's only optional collection, and it holds a single setting, Max Concurrent Requests. Everything else comes from the events above and from the credential.
Use cases
one trigger per HubSpot account, fanning out to a branch per object family, is the pattern that fits the platform's webhook rule.
When to use it
whenever the work starts inside the CRM rather than on a schedule. Mind the rule behind it: HubSpot allows one webhook at a time, so activating a second HubSpot Trigger stops the first one, quietly.
02Contact eventsFour events follow the contact record, and most lead workflows start on one of them.

Four events follow the contact record, and most lead workflows start on one of them.

Key parameters

  • Contact Created (contact.creation): any contact created in the account.
  • Contact Deleted (contact.deletion): any contact deleted in the account.
  • Contact Privacy Deleted (contact.privacyDeletion): a contact deleted for privacy compliance reasons, which rarely deserves the same treatment as an ordinary delete.
  • Contact Property Changed (contact.propertyChange): a specified property changes on any contact.
Use cases
welcome a new contact, log a lifecycle stage change against the account, or send the privacy deletions to a separate branch that writes an audit line.
When to use it
when contacts are the object your process turns around. Deletion and privacy deletion arrive as two distinct events on purpose, so a workflow can treat a routine cleanup and a compliance request differently without a single line of filtering logic between them.
03Deal eventsThree events cover the pipeline. Together they are enough to mirror a HubSpot pipeline somewhere else without ever opening the CRM.

Three events cover the pipeline. Together they are enough to mirror a HubSpot pipeline somewhere else without ever opening the CRM.

Key parameters

  • Deal Created (deal.creation): any deal created in the account.
  • Deal Deleted (deal.deletion): any deal deleted in the account.
  • Deal Property Changed (deal.propertyChange): a specified property changes on any deal, a stage or an amount being the two that usually matter.
Use cases
alert the finance channel when a large deal changes stage, start an onboarding sequence on a win, or keep a forecast sheet in step with the pipeline as it moves.
When to use it
when the delay matters. Reading deals on a schedule works, but a stage that moves at 9am and reaches the team at noon is a different conversation.
04Company eventsThree events watch the account layer, the one that account-based teams care about more than the contact layer. Companies move far less often than contacts, so a workflow listening here stays quiet and matters when it speaks.

Three events watch the account layer, the one that account-based teams care about more than the contact layer. Companies move far less often than contacts, so a workflow listening here stays quiet and matters when it speaks.

Key parameters

  • Company Created (company.creation): any company created in the account.
  • Company Deleted (company.deletion): any company deleted in the account.
  • Company Property Changed (company.propertyChange): a specified property changes on any company.
Use cases
enrich a freshly created company with an external data source and write the result back with company.update, or flag the moment a target account changes its lifecycle stage.
When to use it
on the accounts you actually track. Company Property Changed fires on a specified property, so pointing it at one field keeps the workflow from waking up on every edit a rep makes during a busy afternoon.
05Conversation eventsThe largest family, five events, and the only one that is not about a CRM object but about threads in the inbox.

The largest family, five events, and the only one that is not about a CRM object but about threads in the inbox.

Key parameters

  • Conversation Creation (conversation.creation): a new thread opens in the account.
  • Conversation New Message (conversation.newMessage): a new message has been received on a thread, and the thread itself does not have to be new.
  • Conversation Property Change (conversation.propertyChange): a thread property changes.
  • Conversation Deletion (conversation.deletion): a thread is archived or soft-deleted.
  • Conversation Privacy Deletion (conversation.privacyDeletion): a thread is permanently deleted.
Use cases
summarize an incoming message and attach the summary to the contact, or route a first-time thread to whoever owns that account. The two deletion events are not interchangeable either: one covers a thread that was archived or soft-deleted, the other a thread removed for good, and only the second one closes the door on the history.
Actions

Every HubSpot operation the n8n node exposes

The HubSpot node exposes 31 operations across 6 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDeleteAddRemoveGet Recently Created/UpdatedSearchSearchCreate or Update
Company✓✓✓✓✓✓✓
Contact✓✓✓✓✓✓
Contact List✓✓
Deal✓✓✓✓✓✓✓
Engagement✓✓✓✓
Ticket✓✓✓✓✓

Company

7 operations
01

Create a company

company.create

What you see in n8n

Notes & use cases

Creates a company record and returns it, so the nodes that follow can attach contacts or deals to the new account.

Key parameters

  • Name: the only required field, usually an expression such as {{ $json.company }}, which reads a field from the item coming in.
  • Company Properties: an optional collection of 34 fields, from Company Domain Name and Industry Name or ID to Annual Revenue and Number Of Employees, with Custom Properties for whatever your portal added.
Use cases
turn an enriched domain into an account record before the first deal is opened on it.
02

Delete a company

company.delete

What you see in n8n

Notes & use cases

The account leaves the CRM for good. Nothing gets restored afterwards, so this operation usually sits behind a filter or a human approval step.

Key parameters

  • Company to Delete: a resource locator, so you either pick the company from the list or pass its ID from the previous node.
Use cases
clear the duplicate accounts a weekly audit found, or answer an erasure request that covers a whole organization rather than one person.
03

Get a company

company.get

What you see in n8n

Notes & use cases

Reads one company and its properties, the usual second step once a company event has fired.

Key parameters

  • Company to Get: the company, picked from the list or resolved from the incoming item.
  • Include Merge Audits: false by default; switch it on to get the merge history when the record was previously merged with another company.
Use cases
after company.propertyChange, read the account again to decide whether the change deserves a message to its owner.
04

Get many companies

company.getAll

What you see in n8n

Notes & use cases

Lists companies, page after page of them when Return All is on.

Key parameters

  • Return All: on, n8n walks every page of companies; off, Limit caps how many come back.
  • Company Properties to Include: name the properties you actually need, or the export weighs more than the sheet receiving it.
  • Include Merge Audits: adds the merge history of each company that went through a merge.
Use cases
a full account export before a territory review, industry and employee count included.
05

Get recently created/updated companies

company.getRecentlyCreatedUpdated

What you see in n8n

Notes & use cases

Same list, narrowed to what moved: the companies created or updated since a moment you choose.

Key parameters

  • Since: returns only companies created after that timestamp; inside an expression the format is YYYY-MM-DD hh-mm-ss.
  • Return All: off, the run stops at Limit, which keeps a nightly catch-up predictable.
Use cases
a scheduled sync that mirrors new accounts into the warehouse while the single available webhook stays reserved for another workflow.
06

Search for a company by Domain

company.searchByDomain

What you see in n8n

Notes & use cases

Search means one thing here, the website domain, because that is the property HubSpot uses to tell companies apart.

Key parameters

  • Domain: required, the website domain to look for, like n8n.io, most often the part of the lead's address after the at sign.
  • Return All: one domain can match several records; off, Limit decides how many you keep.
  • Company Properties to Include: the fields returned with each match, worth setting when the next node needs more than an identifier.
Use cases
match an inbound lead to the account that already exists, instead of opening a second one next to it.
07

Update a company

company.update

What you see in n8n

Notes & use cases

Changes values on an existing company and leaves every other field alone.

Key parameters

  • Company to Update: the record to write on, from the list or from the incoming item.
  • Update Fields: 35 fields, one more than on create, because Name becomes editable here; Lifecycle Stage Name or ID and Lead Status Name or ID are the two that move a process forward.
Use cases
push the employee count and the industry back into HubSpot once an enrichment step has resolved them.

Contact

6 operations
08

Create or update a contact

contact.upsert

What you see in n8n

Notes & use cases

One node instead of a search and a branch: the contact is created, or updated when the email already exists.

Key parameters

  • Email: required, and the value HubSpot matches on to decide between create and update.
  • Contact Properties: 67 fields, among them First Name, Last Name, Job Title, Lifecycle Stage Name or ID and Associated Company Name or ID to link the person to an account.
  • Simplify Output: the response carries only the ID unless you turn this on, which resolves the contact data instead.
Use cases
the landing point for every form, chat and webinar list, without ever creating a second record for the same person.
09

Delete a contact

contact.delete

What you see in n8n

Notes & use cases

Erases a contact from the CRM.

Key parameters

  • Contact to Delete: the contact ID, a number like 1485 and not an email address; when the address is all you have, run the search operation first and pass the ID it returns.
Use cases
handle an erasure request from end to end, find the person by email, remove the record, then write the trace somewhere auditable.
10

Get a contact

contact.get

What you see in n8n

Notes & use cases

Reads one contact. By default the answer holds the Contact ID and nothing else, which catches everyone out the first time.

Key parameters

  • Contact to Get: the numeric contact ID again, never the email.
  • Contact Properties to Include: name every property you want back, several of them separated by a comma; without it there is no value to read.
  • Include List Memberships: adds the lists the contact currently belongs to.
  • Form Submission Mode: All, None, Newest or Oldest, to choose which form submissions travel with the record.
Use cases
enrich a support ticket with the lifecycle stage of the person who opened it, before deciding where it goes.
11

Get many contacts

contact.getAll

What you see in n8n

Notes & use cases

Walks the contact database, all of it or the first slice.

Key parameters

  • Return All: on for a real export, off to stop at Limit while the workflow is still being built.
  • Contact Properties to Include: same rule as a single read, no property named means no property returned.
  • Include List Memberships: worth the extra weight when the export has to show which segment each person sits in.
Use cases
rebuild a newsletter audience in a spreadsheet, with the lifecycle stage next to each address.
12

Get recently created/updated contacts

contact.getRecentlyCreatedUpdated

What you see in n8n

Notes & use cases

Recent contacts, created or updated. Unlike the company and deal versions of this operation, it has no Since option, so the cut-off has to come from how often the workflow runs.

Key parameters

  • Return All: off, Limit keeps each scheduled run to a size you can reason about.
  • Form Submission Mode: Newest is the practical setting when the point is to see what someone just submitted.
Use cases
a scheduled sync feeding fresh contacts to the sales tool, running alongside a trigger that is busy elsewhere.

Contact List

2 operations
14

Add a contact to a list

contactList.add

What you see in n8n

Notes & use cases

Puts a contact into a HubSpot list, which is how most nurture sequences get their audience.

Key parameters

  • By: Contact ID or Email, the two ways of designating the person.
  • Email: the address, when By is set to Email.
  • Contact to Add: the numeric ID, when By is set to Contact ID.
  • List to Add To: the list, given as a number and not as its name.
Use cases
after a webinar, put the attendees in the follow-up list and the no-shows in another one, straight from the attendance export.
15

Remove a contact from a list

contactList.remove

What you see in n8n

Notes & use cases

Membership ends, the record stays: the person leaves the list and nothing else about the contact changes.

Key parameters

  • Contact to Remove: the numeric contact ID, with no email shortcut here, unlike the add operation.
  • List to Remove From: the list the person leaves.
Use cases
when a deal is won, pull the buyer out of the prospecting sequence so the acquisition emails stop the same day.

Deal

7 operations
16

Create a deal

deal.create

What you see in n8n

Notes & use cases

Opens a deal in the pipeline and returns it.

Key parameters

  • Deal Stage Name or ID: required, the stage the deal starts in, chosen from the list or passed as an ID.
  • Deal Properties: 10 optional fields, among them Deal Name, Amount, Close Date, Pipeline Name or ID, Deal Owner and Associated Vid Names or IDs to attach the contacts involved.
Use cases
a lead crosses a qualification threshold and the deal appears in the right pipeline, owner already set.
17

Delete a deal

deal.delete

What you see in n8n

Notes & use cases

Takes a deal out of the pipeline permanently. The forecast recalculates without it, which is exactly the point when the deal was never real.

Key parameters

  • Deal to Delete: the deal, selected in the list or passed as an ID from the node before it.
Use cases
empty a test pipeline at the end of a build, or drop the duplicate two reps opened on the same account once the real one has been agreed.
18

Get a deal

deal.get

What you see in n8n

Notes & use cases

Pulls one deal with the properties you asked for. Same rule as contacts: no property named, no value returned.

Key parameters

  • Deal to Get: the deal to read.
  • Deal Properties to Include: the properties added to the result, requested again for each extra one.
  • Include Property Versions: off, you get the current value; on, you get every previous version of that property.
Use cases
when deal.propertyChange fires, read the amount and the stage to decide whether finance needs to hear about it.
19

Get many deals

deal.getAll

What you see in n8n

Notes & use cases

Every deal, or the first page of them, with the option of bringing the linked records along.

Key parameters

  • Return All: on for the whole pipeline, off to stop at Limit.
  • Include Associations: returns the IDs of the contacts and companies tied to each deal, and the associated contact count with them.
  • Deal Properties with History to Include: like the property list, but each value arrives with its history.
Use cases
a monthly forecast export where every deal carries its amount, its stage and the account it belongs to.
20

Get recently created/updated deals

deal.getRecentlyCreatedUpdated

What you see in n8n

Notes & use cases

Deals that moved since a given moment, created ones and updated ones together.

Key parameters

  • Since: the cut-off; written in an expression, the timestamp follows the YYYY-MM-DD hh-mm-ss format.
  • Include Property Versions: adds the earlier values of each property, which is how you spot a stage that moved twice in the same day.
  • Return All: off, Limit holds the run down while the workflow is being tested.
Use cases
a nightly recap of pipeline movement posted to the sales channel before the morning stand-up.
22

Update a deal

deal.update

What you see in n8n

Notes & use cases

The node that moves a deal forward: it writes on an existing record without touching the rest of it.

Key parameters

  • Deal to Update: the deal to write on.
  • Update Fields: 9 fields, Deal Stage Name or ID among them, so the same node that closes a deal can set its Amount and its Close Date.
  • Pipeline: a plain text field here, where the create operation offers a list to choose from.
Use cases
a signature comes back from the e-signature tool and the deal lands in the closed stage with its final amount.

Engagement

4 operations
23

Create an engagement

engagement.create

What you see in n8n

Notes & use cases

An engagement is HubSpot's name for a logged activity, and this operation creates one from a workflow.

Key parameters

  • Type: required, and the four choices are call, email, meeting and task.
  • Metadata: the optional collection carrying the content, with Subject and Body for the text, Status for a task (NOT_STARTED, IN_PROGRESS, WAITING, COMPLETED, DEFERRED) and For Object Type to hang it on a CONTACT or a COMPANY.
  • Associations: sits in the same collection and links the activity to existing records.
Use cases
log the summary of a sales call on the contact who took it, or open a follow-up task when a deal moves.
24

Delete an engagement

engagement.delete

What you see in n8n

Notes & use cases

Takes a logged activity back out of HubSpot. Handy when a run created the wrong one, or when two branches of the same workflow recorded the same call twice.

Key parameters

  • Engagement to Delete: a resource locator, so you either pick the activity from the list or pass its ID through an expression, n8n's way of reusing a value produced by an earlier node.
Use cases
remove the test activities left behind while the workflow was being built, or delete the task a cancelled meeting had created.
25

Get an engagement

engagement.get

What you see in n8n

Notes & use cases

The logged activity comes back whole, content included, so the nodes that follow work on what was actually recorded instead of a guess.

Key parameters

  • Engagement to Get: a resource locator that accepts a pick from the list or an ID from a previous step. Nothing else is asked for.
Use cases
fetch the call an AI agent is meant to summarize, or read the meeting logged on the record before an email goes out.
26

Get many engagements

engagement.getAll

What you see in n8n

Notes & use cases

Returns activities in bulk rather than one by one, which is how a whole month of calls, emails and meetings lands in a single execution.

Key parameters

  • Return All: switched on, n8n keeps asking HubSpot for the next page until every activity is back. Switched off, it stops at Limit.
  • Limit: the maximum number of activities handed to the next node, the sane setting while the workflow is still being tested.
Use cases
feed a reporting sheet with the activities logged last week, or check what a rep actually recorded before a pipeline review.

Ticket

5 operations
27

Create a ticket

ticket.create

What you see in n8n

Notes & use cases

Opens a support ticket in a chosen pipeline and at a chosen stage. Three fields are required, and 10 more sit in an optional collection.

Key parameters

  • Pipeline Name or ID: required, the pipeline the ticket lands in, from the list or as an ID.
  • Stage Name or ID: required, and its options depend on the pipeline, so pick that first.
  • Ticket Name: required, the title the support team reads.
  • Ticket Properties: optional, the ones worth setting being Description, Priority Name or ID, Ticket Owner Name or ID and Contact Names or IDs.
Use cases
turn a form submission into a ticket that already carries an owner and a contact.
28

Delete a ticket

ticket.delete

What you see in n8n

Notes & use cases

Deletes a ticket outright. The node asks for the ticket and for nothing else, so the condition that decides whether it really should go belongs earlier in the workflow.

Key parameters

  • Ticket to Delete: a resource locator, chosen from the list or passed as an ID coming out of the node before.
Use cases
drop the duplicate a double form submission created, or clear the tickets opened by a workflow that was still being tested.
29

Get a ticket

ticket.get

What you see in n8n

Notes & use cases

This operation pulls one ticket back, and it is the only ticket read that can surface a deleted one.

Key parameters

  • Ticket to Get: required, a resource locator, from the list or as an ID.
  • Include Deleted: optional switch that lets a deleted ticket come back in the result.
  • Ticket Properties to Include: names the ticket properties you want in the result.
  • Properties With History: returns the full history of changes for the property you name, instead of its current value alone.
Use cases
check the stage a ticket sits at before an automated reply, or read the history of the priority property to see when it was raised.
30

Get many tickets

ticket.getAll

What you see in n8n

Notes & use cases

Lists tickets instead of fetching them one at a time, with the same properties options as the single read, plus pagination.

Key parameters

  • Return All: every ticket comes back, page after page. Left off, Limit decides how many do.
  • Ticket Properties to Include: keeps the output to the ticket properties the next nodes actually use.
  • Properties With History: adds the change history of the property you name to each ticket returned.
Use cases
build the weekly support digest, or list the open tickets of a company before a renewal call.
31

Update a ticket

ticket.update

What you see in n8n

Notes & use cases

Changes a ticket that already exists. The optional collection holds 13 fields, so one ticket can be moved, reassigned and closed by different branches of the same workflow.

Key parameters

  • Ticket to Update: required, the resource locator pointing at the ticket to change.
  • Stage Name or ID and Pipeline Name or ID: optional here, and together they move the ticket across the board.
  • Ticket Owner Name or ID: hands the ticket to someone else on the team.
  • Close Date: a date field. In an expression, the format is YYYY-MM-DD hh-mm-ss.
Use cases
move a ticket to the next stage once a draft answer is ready, or set Resolution Name or ID when the customer confirms.
Need help

Need help automating HubSpot with n8n?

A person reads every message.

FAQ

Frequently asked questions

01Is the HubSpot n8n integration free?
Yes. The HubSpot node and the HubSpot Trigger both ship with n8n, so there is nothing to install and nothing extra to pay on the n8n side, on n8n Cloud as well as on a self-hosted instance running the Community Edition under its Sustainable Use license. A workflow built on one behaves the same on the other, so you can prototype on Cloud and move the same workflow to your own server later without rewriting it. What the HubSpot account itself costs is a separate matter and is not covered here.
02What credentials and permissions does the HubSpot node need?
Three methods exist, and they do not serve the same node. A service key is the recommended one for the HubSpot node: you create it in HubSpot under Development, then Keys, then Service Keys, and paste it into the App Token field of the n8n credential. Creating it requires super admin access or the Developer tools access permission. OAuth2 also works with the node, through a public app that gives you a Client ID, a Client Secret and an App ID. The HubSpot Trigger is the exception: it authenticates with a Developer API key from a developer account. Scopes follow what the workflow does, read and write on contacts, companies and deals, plus the matching schema scopes.
03What are the limits of the HubSpot node in n8n?
Three are worth knowing. Reads are paginated: with Return All off the node stops at Limit, and a workflow tested on a handful of records behaves differently on a full export. Search accepts three filter groups of three filters at most, so a very selective query needs a second pass in a Filter node. And the node covers six objects, companies, contacts, contact lists, deals, engagements and tickets, across 31 operations; anything the HubSpot API offers beyond that goes through the HTTP Request node, which reuses the same credential through its predefined authentication. That fallback costs one extra node, not a different project.
04Does the HubSpot Trigger react in real time?
Yes. It works by webhook: when the workflow is activated, n8n registers a webhook URL with HubSpot, and each event you ticked reaches the workflow within seconds. There is no polling interval to choose and no delay to tune. One rule shapes the design, though. HubSpot accepts a single webhook at a time, so activating a second HubSpot Trigger stops the first one from receiving anything. The way around it is a single trigger per account, subscribed to every event family that matters, with the routing handled inside the workflow rather than by several triggers sitting side by side.
05n8n or Make for HubSpot?
It depends on where the automation should live and how you want to pay for it. Make is hosted by Make, with no self-hosting option, and it bills per operation, which stays predictable at low volume and less so once a HubSpot account fires events all day. n8n runs on Cloud or on a server you own, so the CRM data can stay inside your own infrastructure, and its cost model is not tied to the number of steps a workflow executes. The visual logic differs as well: n8n lets you drop into code when a branch gets awkward. If the CRM data is sensitive, self-hosting usually settles it.