HubSpot Integration for Rain Automation: Connect Your CRM to Every Other Tool

Rain Automation connects HubSpot to the rest of your stack with n8n workflows we build, host, and monitor for you. The integration runs both directions: HubSpot events such as a new contact, a deal stage change, or a form submission can start a workflow, and workflows can create, update, and upsert contacts, companies, deals, tickets, notes, and custom objects back in HubSpot. It authenticates with a private app access token, so it works on the free HubSpot CRM tier without a paid Data Hub subscription.

How to connect HubSpot

Step 1. Create a private app in HubSpot

In HubSpot, go to Settings > Integrations > Private Apps > Create a private app. Name it something a future admin will recognize, such as "Rain Automation workflows", because that name is what shows up in your HubSpot audit log next to every call the workflows make.

Step 2. Grant only the scopes the workflows need

On the Scopes tab, select the CRM scopes for the objects your workflows will touch. A standard lead to deal build needs five: crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, crm.objects.deals.write, and crm.schemas.contacts.read. Tickets, companies, line items, and custom objects each add their own read and write pair. Skip the rest. A narrow token is easier to rotate later and easier to explain to whoever audits your stack.

HubSpot retired the legacy hapikey API key in November 2022, so a private app access token (or a full OAuth app) is the only supported path for new builds.

Step 3. Hand the token over once

Create the app and copy the access token. HubSpot shows it once. Send it through the credential intake link we provide rather than by email, and it goes straight into the encrypted credential store on the n8n instance that runs your workflows. After that, nodes reference the credential by name and nobody pastes the token into a workflow again. Rotation is a one field change on our side, with no workflow edits.

Step 4. Choose how HubSpot starts a workflow

There are three ways in, and the right one depends on your HubSpot subscription.

  1. Webhook action inside a HubSpot workflow. The cleanest option when it is available. HubSpot posts the enrolled record to a Rain endpoint over HTTPS with a request signature. This action requires Data Hub Professional or Enterprise (the product previously sold as Operations Hub), so it is off the table on Free and Starter.
  2. App webhook subscriptions. A HubSpot developer app subscribes to object events (creation, property update, deletion, merge, restore, and association changes) across contacts, companies, deals, tickets, quotes, tasks, and custom objects. Events arrive within seconds, HubSpot signs each request, and the workflow validates that signature before it acts on anything. This path works on any HubSpot tier, including the free CRM.
  3. Scheduled search. When a developer app is not worth the overhead, the workflow polls the CRM Search API on a schedule, filtered on hs_lastmodifieddate, and processes whatever changed since the last successful run. Minutes instead of seconds, but it needs nothing beyond the private app token.

Step 5. Map fields before anything writes

We pull your live property list through the CRM schemas endpoint and map it against the source system: form fields, phone system, booking tool, payment processor. Two decisions get made here and they are the ones that cause the most cleanup later. First, the match key. Email alone creates duplicates when the same person fills out a form from work and books from a personal address, so most builds match on email with a normalized phone number as the fallback. Second, which side wins on conflict. HubSpot usually wins on sales owned fields, and the source system wins on operational fields such as job status or payment state.

Step 6. Go live behind an error handler

Every workflow ships with a retry policy, a dead letter path, and an alert that names the record that failed and why. A HubSpot write that fails on a validation error should not disappear quietly, and it should not leave a half created deal behind either. We run the first week in parallel with whatever process it replaces, compare record counts, then cut over.

What Rain reads and writes in HubSpot

Workflows can create, update, and upsert contacts, companies, deals, tickets, notes, tasks, and custom object records, associate records to each other, add contacts to static lists, and enroll contacts into HubSpot workflows through the Workflow Enrollment API. On the read side, they query the CRM Search API, pull property schemas, and fetch associations, engagements, and owners. What Rain does not do is replace HubSpot. The CRM stays your system of record, and the automation fills the gaps around it.

Related reading

Example workflows

Form submission to contact, deal, and first reply

A website, Typeform, or landing page submission hits a Rain webhook. The workflow normalizes the phone number and email, upserts the contact with HubSpot's create or update operation so a repeat submitter never becomes a second record, creates a deal in the right pipeline stage, associates the two, and sends the first reply from the owner's mailbox. Works on the free HubSpot CRM tier, where native workflows are not available.

Use case: Inbound lead capture

Deal stage change to a Slack alert with real context

When a deal moves stage, the workflow posts to Slack with the pieces a rep actually needs: amount, owner, days in the previous stage, last logged activity, and a direct record link. Compound conditions that HubSpot's native alerting struggles with (stage moved backwards, or moved forward while a required property is still blank) are branch logic here rather than a tier upgrade.

Use case: Pipeline visibility

Stalled deal sweeper on a nightly schedule

Each night the workflow runs a CRM Search query for open deals whose last modified date is older than that stage's agreed limit, groups them by owner, and sends one digest per owner plus a rollup to the sales lead. Deals past a second threshold get a HubSpot task created against the owner automatically. No Data Hub subscription and no per deal date property maintenance.

Use case: Revenue protection

Duplicate guard across multiple lead sources

Before any new record is written, the workflow searches HubSpot on normalized email and on the phone number in E.164 form, then decides: update the existing contact, associate the new activity to it, or create a fresh record. Businesses running ads, a call tracking number, a booking tool, and a web form usually discover three copies of their best customers. This runs at the point of entry so the cleanup never starts.

Use case: CRM data hygiene

Breeze Intelligence enrichment on new contacts

Breeze has no direct enrich endpoint, so the workflow uses the two step pattern: create or update the contact through the CRM API, then enroll it into an enrichment workflow through the Workflow Enrollment API and wait for the property change event to come back. Enriched company size, industry, and revenue then drive routing and lead scoring. Credit spend is capped per day so a bad form run cannot drain the balance.

Use case: Lead enrichment and routing

Quote accepted to invoice, kickoff, and onboarding sequence

A deal reaching closed won triggers the post sale chain in one pass: generate the invoice in your billing system with the line items already on the deal, create the kickoff task set and assign owners, add the contact to the onboarding list, and write the invoice number and due date back onto the HubSpot deal so sales sees payment status without leaving the record.

Use case: Post sale handoff

Pricing

The HubSpot connection is part of the workflow build, not a separate integration fee. Most HubSpot builds land in the short workflow automation engagement rather than a full CRM build, since HubSpot is already your system of record. See pricing for how engagements are scoped.

Three things to know about cost on the HubSpot side, none of which Rain bills you for:

On the automation side, Rain hosts and monitors the n8n instance, so there is no per execution or per task metering. A workflow that fires a thousand times in a day costs the same as one that fires ten times.

Talk to Rain about your HubSpot build