How to Sync HubSpot and Pipedrive with n8n

If you're running HubSpot and Pipedrive at the same time — one for marketing, one for sales — you already know the pain: contacts that exist in both systems but never agree on which stage they're in,

How to Sync HubSpot and Pipedrive with n8n

If you're running HubSpot and Pipedrive at the same time — one for marketing, one for sales — you already know the pain: contacts that exist in both systems but never agree on which stage they're in, deals that get created manually because nothing talks to each other, and reps who spend 20 minutes a day doing data entry that should be automatic. n8n fixes this without code, without middleware fees, and without giving up control of your data.

Why Sync HubSpot and Pipedrive in the First Place

Most companies end up with both tools because they serve different teams. Marketing lives in HubSpot. Sales lives in Pipedrive. The problem is neither team should have to babysit the other's CRM. When a lead converts in HubSpot, it should appear in Pipedrive automatically. When a deal moves to "Won" in Pipedrive, HubSpot needs to know so it stops sending nurture emails to a customer.

Manual exports and CSV imports are not a sync. They're a disaster waiting to happen. What you need is a live, bidirectional workflow that handles three things:

  • New contact in HubSpot → create person and deal in Pipedrive
  • Deal stage change in Pipedrive → update contact property in HubSpot
  • De-duplication logic so you don't end up with 400 duplicate contacts

How to Set Up the Integration in n8n

n8n has native nodes for both HubSpot and Pipedrive, which means you connect your API keys and start building — no custom HTTP requests needed for the core operations. Here's the general architecture that works in production:

  • Trigger: Use a HubSpot webhook trigger (or a scheduled poll if you're on a plan without webhook access) that fires when a contact reaches a specific lifecycle stage — typically "Marketing Qualified Lead"
  • Lookup: Before creating anything, search Pipedrive for an existing person with the same email. If they exist, update. If not, create.
  • Create or Update: Map HubSpot fields to Pipedrive fields. First name, last name, email, company, phone — these map directly. Custom properties need manual mapping in the node.
  • Deal Creation: Once the person exists in Pipedrive, create a deal and assign it to the right pipeline and stage. Pull the deal value from a HubSpot property if you have it, otherwise set a default.
  • Error handling: Add an error branch that logs failures to a Google Sheet or sends a Slack notification. Silent failures kill integrations.

For the reverse direction — Pipedrive back to HubSpot — use Pipedrive's webhook system to fire on deal stage changes. Map each Pipedrive stage to a HubSpot lifecycle stage or contact property, then use the HubSpot node to update the contact.

The Fields That Actually Matter

Most sync setups fail not because the workflow breaks, but because the field mapping is wrong. Here's what to get right from the start:

  • Email as the unique key: Always use email to match records across both systems. Never rely on names — they duplicate constantly.
  • Owner mapping: HubSpot contact owners and Pipedrive deal owners are different user IDs in different systems. You need a lookup table or a hardcoded mapping to make sure leads land with the right rep.
  • Custom fields: If HubSpot has a "Lead Source" property that Pipedrive doesn't have natively, create a custom field in Pipedrive before you build the workflow. Trying to push data into a field that doesn't exist will fail silently.
  • Date formats: HubSpot uses Unix timestamps in milliseconds. Pipedrive uses ISO 8601 strings. n8n's Date/Time node handles the conversion, but you need to add it explicitly.

Running It in Production Without Breaking Things

A sync workflow that runs every 5 minutes across two CRMs with thousands of contacts needs to be built defensively. A few things that matter once you go live:

  • Rate limits: HubSpot's API allows 100 requests per 10 seconds on most plans. If you're syncing in bulk, add a Wait node between iterations or use batch operations where the node supports it.
  • Idempotency: Your workflow should be safe to run multiple times on the same record. The lookup-then-create-or-update pattern handles this. Never build a workflow that blindly creates records without checking first.
  • Logging: Write a summary to a Google Sheet or Airtable after each run — how many records processed, how many created, how many updated, how many errored. You'll thank yourself when something breaks at 2am.
  • Test with a single contact first: Before you run this on your full database, test with one real record and verify both sides look exactly right. Field mapping mistakes at scale are expensive to clean up.

Building this from scratch takes a few hours if you know what you're doing — and longer if you're discovering API quirks along the way. If you want to skip the trial and error, there are ready-made n8n templates that cover the HubSpot and Pipedrive integration patterns with the field mappings, error handling, and de-duplication logic already built in. Import, connect your credentials, and you're running in minutes instead of days.

Calendly to HubSpot + Slack
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O Calendly to HubSpot + Slack e um workflow n8n pronto para instalar que faz exatamente isso — em minutos, nao horas.

Instalar por $49 →