Pipedrive to HubSpot, leads synced without duplicates
Your leads are moving, but your CRM data isn’t. Someone updates a person in Pipedrive, marketing pulls a list from HubSpot, and suddenly you’re staring at duplicates, missing contacts, and “who owns this lead?” confusion.
This Pipedrive HubSpot sync hits Marketing Ops fast, because list hygiene is everything. A sales manager feels it when reps can’t trust what’s in HubSpot. And a small business owner just wants follow-ups to happen without another spreadsheet detour.
This workflow keeps HubSpot updated automatically, only creating contacts that exist in Pipedrive but not in HubSpot. You’ll see how it prevents duplicates, what you need to run it, and the common places it can break.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Pipedrive to HubSpot, leads synced without duplicates
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Retrieve HubSpot Contacts"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/pipedrive.svg' width='40' height='40' /></div><br/>Fetch Pipedrive People"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Deduped Records"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Create HubSpot Contact"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Scheduled Automation Trigger", pos: "b", h: 48 }
n4 --> n1
n4 --> n0
n2 --> n3
n0 --> n2
n1 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3 customIcon
The Problem: CRM contacts drift, and duplicates quietly pile up
Keeping Pipedrive and HubSpot aligned sounds simple until you’re doing it in real life. A rep creates a Person in Pipedrive after a call, then marketing builds an email list in HubSpot and the contact isn’t there yet. So someone exports a CSV, imports it, maps fields, and hopes nothing breaks. Next week it happens again. Meanwhile, duplicates sneak in (same email, different name formatting), and you spend your Friday afternoon cleaning lists instead of launching campaigns or following up with hot leads.
The friction compounds. Here’s where it usually breaks down.
- CSV exports turn into a weekly ritual, and they always seem to happen right before a campaign send.
- Duplicates slip in when someone manually creates a contact in HubSpot “just this once.”
- Sales and marketing end up debating which CRM is “correct,” so follow-ups get delayed.
- Even small mistakes (wrong field mapping, missing email) can break segmentation and reporting for days.
The Solution: A one-way Pipedrive → HubSpot lead sync that avoids duplicates
This n8n workflow runs on a schedule and acts like a quiet data clerk in the background. Every minute, it pulls your current People list from Pipedrive and your existing Contacts list from HubSpot. It then compares them and filters out anything HubSpot already has, so you’re not “recreating” contacts or generating duplicates. Only the net-new people that exist in Pipedrive move forward. Finally, the workflow creates those new contacts in HubSpot automatically, which keeps marketing lists and automations up to date without anyone touching a CSV.
The workflow starts with a Cron schedule. From there, n8n fetches Pipedrive People and HubSpot Contacts, then merges the two lists using a dedupe setting that removes key matches. What’s left gets sent into HubSpot as new contacts.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you add about 15 new people a day in Pipedrive. Manually, a careful export, import, and dedupe check often takes around 5 minutes per contact once you include mapping and fixing mistakes, which is roughly an hour a day. With this workflow, the “work” is basically zero: contacts appear in HubSpot within a minute or two of the next run. You still review results when you want, but you stop doing repetitive admin every afternoon.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Pipedrive as the source of People records.
- HubSpot to create and store the synced Contacts.
- Pipedrive API token (get it from Pipedrive Settings → Personal preferences → API).
Skill level: Beginner. You’ll mainly connect accounts and confirm which fields map into HubSpot.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Scheduled trigger. A Cron node runs the automation every minute, so you don’t rely on someone remembering to “sync contacts” before a send.
Two lists get pulled. n8n retrieves People from Pipedrive and pulls your existing Contacts from HubSpot. This is the key moment because it gives the workflow the full picture of what already exists.
Deduping happens before creation. The workflow merges the two datasets using a “remove key matches” approach, which keeps only the people that are unique to Pipedrive. No guesswork. No manual spot checks.
New HubSpot contacts are created. The remaining records are sent to HubSpot as new contacts, so your marketing lists and workflows can pick them up automatically.
You can easily modify the matching logic to compare on email (recommended) or to include additional fields based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Automation Trigger
Set the schedule that kicks off the sync process.
- Add and open Scheduled Automation Trigger.
- Set Trigger Times to
everyMinute(or adjust to your preferred cadence). - Confirm the node is connected to both data retrieval nodes as shown in the workflow.
Tip: Running every minute is great for testing, but consider a longer interval for production to avoid API rate limits.
Step 2: Connect Pipedrive and HubSpot
Pull all contacts from both CRMs so they can be deduplicated before new records are created.
- Open Fetch Pipedrive People and set Resource to
person, Operation togetAll, and Return All totrue. - Credential Required: Connect your pipedriveApi credentials in Fetch Pipedrive People.
- Open Retrieve HubSpot Contacts and set Resource to
contact, Operation togetAll, and Return All totrue. - Credential Required: Connect your hubspotApi credentials in Retrieve HubSpot Contacts.
- Confirm the execution flow: Scheduled Automation Trigger outputs to both Fetch Pipedrive People and Retrieve HubSpot Contacts in parallel.
⚠️ Common Pitfall: If either CRM returns no data, the merge step may not create any new contacts. Verify API access and permissions for both accounts.
Step 3: Set Up Combine Deduped Records
Remove duplicates by comparing email values between Pipedrive and HubSpot records.
- Open Combine Deduped Records and set Mode to
removeKeyMatches. - Set Property Name 1 to
email[0].value(Pipedrive email field). - Set Property Name 2 to
identity-profiles[0].identities[0].value(HubSpot email field). - Ensure both Fetch Pipedrive People and Retrieve HubSpot Contacts connect into Combine Deduped Records.
Step 4: Configure Create HubSpot Contact
Create new HubSpot contacts from Pipedrive records that are not already in HubSpot.
- Open Create HubSpot Contact and set Resource to
contact. - Set Email to
={{$json["email"][0]["value"]}}. - In Additional Fields, set First Name to
={{$json["first_name"]}}. - Credential Required: Connect your hubspotApi credentials in Create HubSpot Contact.
- Confirm that Combine Deduped Records feeds directly into Create HubSpot Contact.
Step 5: Test and Activate Your Workflow
Validate the full sync and turn on the scheduled automation.
- Click Execute Workflow to run a manual test.
- Verify that Combine Deduped Records outputs only contacts missing from HubSpot.
- Check HubSpot to confirm new contacts were created by Create HubSpot Contact.
- Once validated, toggle the workflow to Active to enable scheduled runs.
If the workflow does not create contacts, re-check the email field paths and confirm both CRM accounts return data.
Common Gotchas
- HubSpot credentials can expire or lack contact-write permissions. If things break, check the HubSpot private app scopes and the n8n credential settings first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
Usually about 30 minutes if your API access is ready.
No. You’ll connect Pipedrive and HubSpot, then confirm the matching field (typically email).
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Pipedrive and HubSpot plan limits if your API usage is high.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, but it’s a different design. This workflow is intentionally one-way (Pipedrive → HubSpot) and only creates missing HubSpot contacts, so you’d add additional HubSpot-to-Pipedrive logic and conflict rules. Common customizations include changing the dedupe key to email, mapping extra fields like lifecycle stage, and filtering to only sync people with an email address. If you want true two-way alignment, start with this one, then consider moving to a dedicated two-way workflow once you trust the field mapping.
Usually it’s expired credentials or missing scopes on a HubSpot private app. Update the credential in n8n, then confirm you’ve granted contact read/write permissions. If it fails only when creating contacts, check for required fields in your HubSpot account (some portals enforce properties). Rate limits can also show up when you’re syncing a large backlog, so throttling the schedule can help.
A lot, but it depends on your n8n plan and API limits. n8n Cloud Starter gives you a monthly execution cap, while self-hosting has no execution limit (your server is the constraint). Practically, most teams run it every minute and it keeps up fine, then slow it down to every 5–10 minutes if they’re syncing a big first-time backlog.
For dedupe-heavy syncing like this, n8n is often the easier long-term choice because you can pull two full lists, compare them, and branch logic without paying extra for every conditional step. Self-hosting is also a big deal if you run frequent schedules and don’t want to think about task limits. Zapier or Make can be fine for simpler “create contact when a person is created” flows, but duplicates creep in when the matching rules aren’t tight. With this workflow, you’re explicitly comparing Pipedrive against HubSpot each run, which is more reliable. If you’re torn, Talk to an automation expert and we’ll point you to the simplest option for your setup.
Once this is running, your HubSpot lists stay current without the weekly cleanup cycle. The workflow handles the repetitive stuff, so you can focus on leads that actually need attention.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.