HubSpot is the CRM of choice for thousands of Indian SaaS and service businesses. n8n is the automation backbone. Connecting the two unlocks a massive range of automations — and it's more straightforward than you might think.
Authentication: Private Apps vs OAuth
For n8n-to-HubSpot connections, always use a HubSpot Private App token (not OAuth, unless you're building for multiple HubSpot accounts). Create a Private App in HubSpot → Settings → Integrations → Private Apps. Grant only the scopes you need.
Creating Contacts from n8n
Use the n8n HubSpot node (built-in) or an HTTP Request node pointed at POST https://api.hubapi.com/crm/v3/objects/contacts. The body is a properties object with HubSpot internal property names (e.g., firstname, lastname, email, phone).
Handling Duplicate Contacts
Always check if a contact exists before creating. Use the HubSpot Search API: POST /crm/v3/objects/contacts/search with a filter on email. If a result returns, update instead of create — avoiding duplicate contacts.
Updating Deals and Pipelines
Deals are separate objects in HubSpot. To create a deal and associate it with a contact: (1) create the deal via POST /crm/v3/objects/deals, (2) associate via PUT /crm/v4/objects/deals/{dealId}/associations/contacts/{contactId}/crm_v4_object.
Triggering n8n from HubSpot Events
HubSpot Workflows can call a webhook. Set up an n8n Webhook trigger and paste the URL into a HubSpot Workflow action "Send a webhook." This enables: trigger n8n when a deal reaches a stage, when a contact's lifecycle changes, or when a form is submitted.
Pagination for Large Lists
HubSpot API returns max 100 records per request. Use the "after" cursor from the response's paging.next.after field in your next request. n8n's Loop Over Items node makes paginating through all records straightforward.
Get More Like This
AI automation tips and n8n tutorials every 2 weeks. No spam.