DEV Community

Pirate Prentice
Pirate Prentice

Posted on

n8n Pipedrive Node: Automate Deals, Contacts, and CRM Pipelines [Free Workflow JSON]

n8n Pipedrive Node: Automate Deals, Contacts, and CRM Pipelines [Free Workflow JSON]

Pipedrive is the CRM built by salespeople for salespeople — and n8n's Pipedrive node lets you create and update deals, persons, organizations, and activities without touching the UI. This guide covers every operation, the gotchas, and three copy-paste-ready workflow patterns.


What the Pipedrive Node Does

The n8n Pipedrive node covers six primary resources:

Resource Operations
Deal Create, Delete, Get, Get All, Update, Search
Person Create, Delete, Get, Get All, Update, Search
Organization Create, Delete, Get, Get All, Update, Search
Activity Create, Delete, Get, Get All, Update
Lead Create, Delete, Get, Get All, Update
Note Create, Delete, Get, Get All, Update

Authentication: Pipedrive API Token. Find it in Pipedrive → Your Name (top-right) → Personal Preferences → API.


Setting Up the Credential

  1. In Pipedrive, click your avatar → Personal preferences → API
  2. Copy the Personal API Token
  3. In n8n, add a Pipedrive API credential and paste the token

For team/production use, consider creating a dedicated Pipedrive user ("n8n Bot") so API actions appear attributed to that user and don't clutter your personal activity feed.


Key Operations

Deals

Create Deal — minimum required: title. Recommended additions:

  • value + currency (deal size for pipeline value reporting)
  • pipeline_id + stage_id (which pipeline and stage to place it in)
  • person_id or org_id (link to the contact or company)
  • expected_close_date: ISO 8601 date

Update Deal — move deal through pipeline stages, update value, set won/lost:

{
  "status": "won",
  "stage_id": 5
}
Enter fullscreen mode Exit fullscreen mode

Search Deals — search by title, value, or custom field. Returns matching deals — useful for checking if a deal already exists before creating a duplicate.

Persons and Organizations

Search Person — search by name or email before creating, to avoid duplicates. Returns up to 10 matches with exact_match option.

Create Person with custom fields:

{
  "name": "Ada Lovelace",
  "email": [{"value": "ada@example.com", "primary": true}],
  "phone": [{"value": "+15551234567", "primary": true}]
}
Enter fullscreen mode Exit fullscreen mode

Note: emails and phones are arrays of objects, not simple strings.

Activities

Activities represent tasks, calls, emails, or meetings linked to deals/contacts. Use them to automate follow-up scheduling:

{
  "subject": "Follow-up call after trial",
  "type": "call",
  "due_date": "2026-07-21",
  "due_time": "10:00",
  "deal_id": 1234
}
Enter fullscreen mode Exit fullscreen mode

6 Gotchas

  1. Stage IDs, not names. Every pipeline stage has a numeric ID. Use the Pipedrive API browser (https://yourcompany.pipedrive.com/v1/stages?api_token=...) or the n8n Pipedrive node's "Get All" on stages to map them. Hard-coding names is fragile; use IDs.

  2. Custom field keys are hashes. Pipedrive custom fields (e.g. "Lead Source", "Contract Value") use cryptic hash keys like abc1234defgh567. Find them in Pipedrive Settings → Data Fields → copy the API key column. The node's "Additional Fields" section accepts these hash keys.

  3. Duplicate detection is manual. Pipedrive has weak built-in dedup. Before creating a Person or Deal, always run a Search first and check the result count. If items.length > 0, update the existing record rather than creating a duplicate.

  4. Rate limits: 100 requests/10 seconds per company. For bulk imports (hundreds of contacts), add a Wait node (500ms) between iterations to avoid 429 errors. The node doesn't handle rate limit retries automatically.

  5. Activity types must match configured types. The type field must be one of your configured activity types (call, meeting, email, lunch, task, or custom types you've defined in Settings). A mismatched type returns a 400 error.

  6. Owner assignment. If you don't set user_id on a deal or person, it defaults to the API token's user. For team environments where records should be owned by specific reps, pull the user list from /v1/users and map the correct user_id when creating records.


3 Workflow Patterns

Pattern 1: Website Lead Form → Pipedrive Deal + Person

Every form submission creates a qualified deal in Pipedrive automatically.

Trigger: Webhook Trigger (from Typeform, Tally, or a custom HTML form)
Steps:

  1. Parse name, email, company, and message from form payload
  2. Pipedrive node → Search Person by email — check if contact already exists
  3. IF node → person found: get their id. Person not found: Create Person with name + email
  4. Pipedrive node → Create Deal: title = "Website Lead — {company}", person_id = from step 3, pipeline_id = your inbound pipeline, stage_id = "New Lead" stage
  5. Pipedrive node → Create Note on the deal: include the full form message
  6. Pipedrive node → Create Activity: "Follow up with lead" task, due in 1 business day
  7. Slack node → notify sales channel

Value: Every lead is in Pipedrive within seconds, with no data entry, linked to the contact and with a follow-up task auto-created.


Pattern 2: Stripe Payment → Deal Won in Pipedrive

When a customer pays, automatically mark the Pipedrive deal as Won and log the payment details.

Trigger: Webhook Trigger (payment_intent.succeeded from Stripe)
Steps:

  1. Extract customer.email and amount from Stripe payload
  2. Pipedrive node → Search Person by email → get person_id
  3. Pipedrive node → Get All Deals for this person (filter: status = "open")
  4. IF node → deal found: Update Deal: status = "won", value = amount/100
  5. Pipedrive node → Add Note: "Stripe payment confirmed: ${amount/100} on {date}"
  6. Google Sheets → log the closed deal for revenue tracking

Pattern 3: Stale Deal Alert — No Activity in 7 Days

Prevent deals from dying in the pipeline by alerting reps about stale deals.

Trigger: Schedule Trigger — every Monday 8 AM
Steps:

  1. Pipedrive node → Get All Deals: status = "open"
  2. Code node — filter deals where last_activity_date is null or older than 7 days:
   return items.filter(i => {
     const lastAct = i.json.last_activity_date;
     if (!lastAct) return true;
     const daysSince = (Date.now() - new Date(lastAct).getTime()) / 86400000;
     return daysSince > 7;
   });
Enter fullscreen mode Exit fullscreen mode
  1. Slack node → send DM to deal owner (map owner_id to Slack user): "Deal '{title}' has had no activity for 7+ days."

Footer

Pipedrive + n8n covers the highest-friction parts of any sales workflow: lead entry, deal progression, payment capture, and pipeline hygiene — all automated.

Need this built for your CRM? I offer a done-for-you n8n workflow build — you describe what you need, I build and test it, you import and run it. $99 flat. → Book here

Or grab the n8n Workflow Pack (30+ pre-built automations): → pirateprentice.gumroad.com/l/sxcoe ($29)

Related Articles


Free: n8n Integration Checklist

25 production checks before you ship any n8n workflow — credentials, error handling, dedup, and integration-specific gotchas. Takes 2 minutes to run.

Get the free checklist

Top comments (0)