HubSpot is where your leads and deals live, and n8n is how they get there and what happens next. Together they can create contacts from any form, route deals to the right rep, score leads with AI and hand closed deals to finance, which saves the hours your team spends copying data between tabs.
Who this is for
This page is for sales and marketing teams that already live in HubSpot and still move data into it by hand. A form fill gets copied into a contact. Someone eyeballs a new deal and pings the right rep. A manager scrolls the pipeline on Friday looking for deals nobody has touched. Each of those jobs is small, but together they decide how fast you answer a lead and how many deals quietly die in a stage.
HubSpot’s own workflows cover a lot of this if you pay for the right tier. Where n8n earns its place is the work that crosses tools: your website form, an AI model, Slack, your accounting system and a reporting sheet. It sits between all of them, and you pay for runs, not per seat.
Five HubSpot automations at a glance
Every row uses the native HubSpot node or the HubSpot Trigger node. The trigger events and operations are the ones n8n lists for those nodes today.
| Automation | Starts with | HubSpot operation | What the business gets |
|---|---|---|---|
| Web form to contact | Webhook node or n8n Form Trigger | Contact > Create/Update (matches on email) | Every lead lands in the CRM in seconds, with source fields filled in and no copy-paste typos. |
| Route new deals and alert the owner | HubSpot Trigger, Deal > Created | Deal > Get, then Deal > Update with a Deal Owner | The right rep owns the deal immediately and hears about it in Slack, not in tomorrow’s stand-up. |
| AI lead score on the contact | HubSpot Trigger, Contact > Created | Contact > Get, then Contact > Create/Update with a custom property | Reps call the best-fit leads first, and the reason for the score is saved next to it. |
| Follow-up task when a deal stalls | Schedule Trigger (daily) | Deal > Search, then Engagement > Create (type Task) | Stalled deals show up on a rep’s task list before they go cold. |
| Closed-won to finance or a sheet | HubSpot Trigger, Deal > Property changed (dealstage) | Deal > Get | Finance gets a customer or invoice in QuickBooks Online, or a clean row in Google Sheets, without re-keying. |
A few notes on the rows. The form automation does not need the HubSpot Trigger at all: n8n receives the form, cleans the fields with an Edit Fields node, and calls Contact > Create/Update, which updates the existing contact when the email already exists. The scoring row pairs an OpenAI or AI Agent node with a short rubric (company size, role, what they asked for) and writes both a number and a one-line reason into custom properties you create in HubSpot first. If lead scoring is new to you, the lead scoring glossary entry covers the idea in plain terms, and the AI demo request qualification lesson walks through a similar build step by step.
One flow, node by node: route a new deal
This is the one I would build first, because the payoff is visible on day one.
- HubSpot Trigger with the event Deal > Created. HubSpot sends a small payload, mostly the deal’s ID, so the next step fetches the details.
- HubSpot, Deal > Get, using the ID from the trigger. Ask for the properties you route on, such as amount, pipeline and a region or industry property.
- Switch with one output per rule: deals over a set amount to a senior rep, one territory to another rep, everything else to a round-robin list.
- HubSpot, Deal > Update, setting the Deal Owner for that branch.
- Slack, Message > Send, as a direct message to the new owner with the deal name, amount and a link to the record.
Keep the routing rules in an Edit Fields node or a small sheet rather than buried in expressions. When sales leadership changes territories, you change one table, not five nodes.
HubSpot API pitfalls worth knowing up front
- The trigger needs a developer app. The HubSpot Trigger node authenticates with a developer API key and needs a HubSpot developer account and a public app (app ID, client ID and client secret). The regular HubSpot node uses a service key or OAuth2. The old HubSpot API key method is deprecated.
- One trigger per app. n8n’s docs note that HubSpot allows one webhook at a time, so activating a second HubSpot Trigger stops the first one. Plan one trigger workflow that fans out, or use separate apps.
- Scopes have to match the work. Writing contacts and deals needs the write scopes (for example crm.objects.contacts.write and crm.objects.deals.write), and owner lookups need crm.objects.owners.read. A missing scope shows up as a 403, not a helpful message.
- Rate limits are per 10 seconds. Privately distributed apps get 100 requests per 10 seconds on Free and Starter and 190 on Professional and Enterprise, plus a daily cap per account. The CRM search endpoints are stricter: five requests per second per account, up to 200 records per page and 10,000 results per query. Batch large backfills and add a Wait node.
- Search lags behind writes. HubSpot says new or updated records can take a short time to appear in search. A “search, and create if missing” pattern can create duplicates when two submissions arrive close together. For contacts, let Create/Update match on email instead.
- Field types are strict. Use internal property names, send dropdown values as their internal values rather than labels, and send date properties as midnight UTC. Custom properties must exist in HubSpot before n8n can write to them.
When to do it yourself and when to hire help
The form-to-contact and Slack alert flows are good DIY projects. If you can follow a lesson and test with a few fake contacts, you can run them. Hire help when the workflow touches money (closed-won into accounting), when you are cleaning up years of duplicates, or when several teams depend on the same trigger app. Those are the cases where a quiet failure costs real revenue. I teach n8n on Udemy to about 15,000 students, and the pattern I see is that people get the first workflow running easily and then struggle with error handling and scopes. That is usually the part worth paying for. You can see how I approach sales automation on the sales automation page.
Frequently asked questions
Does n8n have a HubSpot trigger?
Yes. The HubSpot Trigger node starts a workflow on created, deleted and property changed events for contacts, companies, deals and tickets, plus conversation events. It needs a HubSpot developer account and a public app.
Which credential should I use for the HubSpot node?
n8n recommends a service key, which you create inside your HubSpot account, or OAuth2. The old HubSpot API key method is deprecated.
How do I avoid duplicate contacts?
Use the Contact Create/Update operation, which matches on email and updates the existing contact. Avoid search-then-create patterns, because HubSpot search can lag a little behind recent writes.
Want this built?
Tell me which HubSpot task eats the most time each week. I will map the workflow on a free 30-minute call and send a written quote before any work starts.