<!-- BusyBot node reference — https://busybot.net/tools/pipedrive/ -->

> Node: Pipedrive (`pipedrive`) · Action (binary) · v1
> Category: Sales · Credentials: Pipedrive API (`pipedriveApi`)
> Updated: 2026-08-16

# Pipedrive

> Manage Pipedrive CRM deals, persons, organizations, and files

## Overview

The Pipedrive tool provides full CRUD operations against the Pipedrive REST API v1. Supports ten resources: (1) Activity -- create, delete, get, getAll, update. (2) Deal -- create, delete, duplicate, get, getAll, search, update. (3) Deal Activity -- getAll. (4) Deal Product -- add, getAll, remove, update. (5) File -- create (upload binary), delete, download (binary), get, update. (6) Lead -- create, delete, get, getAll, update. (7) Note -- create, delete, get, getAll, update. (8) Organization -- create, delete, get, getAll, search, update. (9) Person -- create, delete, get, getAll, search, update. (10) Product -- getAll. File operations handle binary data: upload reads from the item's binary property, download writes fetched content to the binary store. Supports custom property resolution/encoding and offset-based pagination.

**Category:** Sales  
**Tool Name:** `pipedrive`  
**Version:** 1

**Appearance:** Icon: `lucide-CircleDollarSign` | Color: `#017737`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Pipedrive API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/pipedrive-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Activity | `activity` |
| Deal | `deal` |
| Deal Activity | `dealActivity` |
| Deal Product | `dealProduct` |
| File | `file` |
| Lead | `lead` |
| Note | `note` |
| Organization | `organization` |
| Person | `person` |
| Product | `product` |

### Operations

Which operations are available depends on the selected resource — see the parameter subsections below.

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new record — for the File resource this uploads a file |
| Delete | `delete` | Delete a record by its ID |
| Get | `get` | Retrieve a single record by its ID — file metadata for the File resource |
| Get Many | `getAll` | Retrieve many records, with optional filters and pagination |
| Update | `update` | Update an existing record |
| Duplicate | `duplicate` | Duplicate an existing deal |
| Search | `search` | Search for records matching a term |
| Add | `add` | Add a product to a deal |
| Remove | `remove` | Remove a product from a deal |
| Download | `download` | Download a file's contents into a binary property |

### Parameters

#### Activity: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Subject | `string` | Yes | — | Subject line of the activity. |
| Done | `options` | No | `0` | Whether the activity is done. |
| | | | | Options: `0` (Not Done), `1` (Done) |
| Type | `string` | No | `call` | Activity type key (e.g. call, meeting, task, email, lunch, deadline). |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the new activity. |
| — Deal ID (`deal_id`) | `number` | No | `0` | Associated deal ID. |
| — Due Date | `string` | No | — | Due date in YYYY-MM-DD format. |
| — Note | `string` | No | — | HTML-formatted note content. |
| — Organization ID (`org_id`) | `number` | No | `0` | Associated organization ID. |
| — Person ID (`person_id`) | `number` | No | `0` | Associated person ID. |
| — User ID | `number` | No | `0` | Assignee user ID. |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |

#### Activity: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`activityId`) | `number` | Yes | `0` | ID of the activity. |

#### Activity: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`activityId`) | `number` | Yes | `0` | ID of the activity. |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |

#### Activity: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Additional Fields | `collection` | No | `{}` | Optional filters applied to the query. |
| — Done | `boolean` | No | `false` | — |
| — End Date | `string` | No | — | — |
| — Filter ID (`filterId`) | `string` | No | — | — |
| — Start Date | `string` | No | — | — |
| — Type | `multiOptions` | No | `[]` | — |
| | | | | Options: `call`, `meeting`, `task`, `deadline`, `email`, `lunch` |
| — User ID | `number` | No | `0` | — |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Activity: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`activityId`) | `number` | Yes | `0` | ID of the activity. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Deal ID (`deal_id`) | `number` | No | `0` | — |
| — Done | `options` | No | `0` | — |
| | | | | Options: `0` (Not Done), `1` (Done) |
| — Due Date | `string` | No | — | — |
| — Note | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |
| — Subject | `string` | No | — | — |
| — Type | `string` | No | — | — |
| — User ID | `number` | No | `0` | — |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |
| Encode Properties | `boolean` | No | `false` | Encode custom property names to hash keys before sending. |

#### Deal: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | Title of the deal. |
| Associate With | `options` | No | `organization` | Entity type to link the deal with. |
| | | | | Options: `organization`, `person` |
| Organization ID (`org_id`) | `number` | Yes | `0` | Organization ID to associate. _(shown when Associate With is `organization`)_ |
| Person ID (`person_id`) | `number` | Yes | `0` | Person ID to associate. _(shown when Associate With is `person`)_ |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the new deal. |
| — Currency | `string` | No | `USD` | 3-letter ISO currency code. |
| — Label | `string` | No | — | Deal label ID. |
| — Lost Reason | `string` | No | — | — |
| — Probability | `number` | No | `0` | Deal success probability (0-100). |
| — Stage ID | `number` | No | `0` | Numeric stage ID. To find: GET /api/v1/stages or use the Pipedrive admin URL. |
| — Status | `options` | No | `open` | — |
| | | | | Options: `open`, `won`, `lost`, `deleted` |
| — User ID | `number` | No | `0` | — |
| — Value | `number` | No | `0` | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |

#### Deal: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID. |

#### Deal: Duplicate

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID. |

#### Deal: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID. |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |

#### Deal: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Filters | `collection` | No | `{}` | Optional filters applied to the query. |
| — Filter ID (`filter_id`) | `string` | No | — | Predefined filter ID. |
| — Stage ID | `number` | No | `0` | Numeric stage ID. To find: GET /api/v1/stages or use the Pipedrive admin URL. |
| — Status | `options` | No | `all_not_deleted` | — |
| | | | | Options: `all_not_deleted`, `deleted`, `lost`, `open`, `won` |
| — User ID | `number` | No | `0` | — |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Deal: Search

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Search Term | `string` | Yes | — | Search term (min 2 chars or 1 with exact match). |
| Exact Match | `boolean` | No | `false` | When enabled, search term must match exactly. |
| Additional Fields | `collection` | No | `{}` | Optional query parameters sent with the search. |
| — Fields | `multiOptions` | No | `[]` | — |
| | | | | Options: `custom_fields`, `notes`, `title` |
| — Include Fields | `string` | No | — | — |
| — Organization ID (`organizationId`) | `string` | No | — | — |
| — Person ID (`personId`) | `string` | No | — | — |
| — Raw Data | `boolean` | No | `false` | Return raw search results without unwrapping. |
| — Status | `options` | No | — | — |
| | | | | Options: `open`, `won`, `lost` |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Deal: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Currency | `string` | No | — | — |
| — Label | `string` | No | — | Deal label ID. Set to "null" to clear. |
| — Lost Reason | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |
| — Probability | `number` | No | `0` | — |
| — Stage ID | `number` | No | `0` | Numeric stage ID. To find: GET /api/v1/stages or use the Pipedrive admin URL. |
| — Status | `options` | No | `open` | — |
| | | | | Options: `open`, `won`, `lost`, `deleted` |
| — Title | `string` | No | — | — |
| — User ID | `number` | No | `0` | — |
| — Value | `number` | No | `0` | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |
| Encode Properties | `boolean` | No | `false` | Encode custom property names to hash keys before sending. |

#### Deal Activity: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID this activity/product belongs to. |
| Additional Fields | `collection` | No | `{}` | Optional filters applied to the query. |
| — Done | `boolean` | No | `false` | — |
| — Exclude | `string` | No | — | Comma-separated activity IDs to exclude. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Deal Product: Add

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID this activity/product belongs to. |
| Product ID (`productId`) | `number` | Yes | `0` | Product ID to attach to deal. |
| Item Price | `number` | Yes | `0` | Price per item. |
| Quantity | `number` | Yes | `1` | Quantity of the product. |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the attached product. |
| — Comments | `string` | No | — | — |
| — Discount Percentage | `number` | No | `0` | — |
| — Product Variation ID | `string` | No | — | — |

#### Deal Product: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID this activity/product belongs to. |

#### Deal Product: Remove

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID this activity/product belongs to. |
| Product Attachment ID | `number` | Yes | `0` | Product attachment ID in the deal. |

#### Deal Product: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`dealId`) | `number` | Yes | `0` | The Pipedrive deal ID this activity/product belongs to. |
| Product Attachment ID | `number` | Yes | `0` | Product attachment ID in the deal. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Comments | `string` | No | — | — |
| — Discount Percentage | `number` | No | `0` | — |
| — Item Price | `number` | No | `0` | — |
| — Product Variation ID | `string` | No | — | — |
| — Quantity | `number` | No | `1` | — |

#### File: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Binary Property | `string` | No | `data` | Name of the binary property to read from (upload) or write to (download). |
| Additional Fields | `collection` | No | `{}` | Optional records to attach the uploaded file to. |
| — Activity ID (`activity_id`) | `number` | No | `0` | — |
| — Deal ID (`deal_id`) | `number` | No | `0` | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |
| — Product ID (`product_id`) | `number` | No | `0` | — |

#### File: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| File ID | `number` | Yes | `0` | ID of the file. |

#### File: Download

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| File ID | `number` | Yes | `0` | ID of the file. |
| Binary Property | `string` | No | `data` | Name of the binary property to read from (upload) or write to (download). |

#### File: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| File ID | `number` | Yes | `0` | ID of the file. |

#### File: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| File ID | `number` | Yes | `0` | ID of the file. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Description | `string` | No | — | — |
| — Name | `string` | No | — | — |

#### Lead: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | Title of the lead. |
| Associate With | `options` | No | `organization` | — |
| | | | | Options: `organization`, `person` |
| Organization ID (`organization_id`) | `number` | Yes | `0` | _(shown when Associate With is `organization`)_ |
| Person ID (`person_id`) | `number` | Yes | `0` | _(shown when Associate With is `person`)_ |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the new lead. |
| — Expected Close Date | `string` | No | — | Expected close date (YYYY-MM-DD or datetime; will be truncated to date). |
| — Label IDs | `string` | No | — | Comma-separated list of lead label UUIDs. |
| — Owner ID | `number` | No | `0` | — |
| — Value | `fixedCollection` | No | `{}` | The lead's monetary value. |
| — — Amount | `number` | No | `0` | — |
| — — Currency | `string` | No | `USD` | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company), `5` (Entire Company + Followers), `7` (Everyone) |

#### Lead: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Lead ID (`leadId`) | `string` | Yes | — | UUID of the lead. |

#### Lead: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Lead ID (`leadId`) | `string` | Yes | — | UUID of the lead. |

#### Lead: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Filters | `collection` | No | `{}` | Optional filters applied to the query. |
| — Archived Status | `options` | No | `not_archived` | — |
| | | | | Options: `all`, `archived`, `not_archived` |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Lead: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Lead ID (`leadId`) | `string` | Yes | — | UUID of the lead. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Expected Close Date | `string` | No | — | — |
| — Label IDs | `string` | No | — | — |
| — Owner ID | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |
| — Title | `string` | No | — | — |
| — Value | `fixedCollection` | No | `{}` | The lead's monetary value. |
| — — Amount | `number` | No | `0` | — |
| — — Currency | `string` | No | `USD` | — |

#### Note: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Content | `string` | Yes | — | HTML content of the note. |
| Additional Fields | `collection` | No | `{}` | Record associations — set them when creating a note, or filter by them when listing notes. |
| — Deal ID (`deal_id`) | `number` | No | `0` | — |
| — Lead ID (`lead_id`) | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |

#### Note: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Note ID | `number` | Yes | `0` | ID of the note. |

#### Note: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Note ID | `number` | Yes | `0` | ID of the note. |

#### Note: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Additional Fields | `collection` | No | `{}` | Record associations — set them when creating a note, or filter by them when listing notes. |
| — Deal ID (`deal_id`) | `number` | No | `0` | — |
| — Lead ID (`lead_id`) | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Note: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Note ID | `number` | Yes | `0` | ID of the note. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Content | `string` | No | — | — |
| — Deal ID (`deal_id`) | `number` | No | `0` | — |
| — Lead ID (`lead_id`) | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Person ID (`person_id`) | `number` | No | `0` | — |

#### Organization: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Name | `string` | Yes | — | Name of the organization. |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the new organization. |
| — Label | `string` | No | — | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |

#### Organization: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Organization ID (`organizationId`) | `number` | Yes | `0` | ID of the organization. |

#### Organization: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Organization ID (`organizationId`) | `number` | Yes | `0` | ID of the organization. |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |

#### Organization: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Filters | `collection` | No | `{}` | Optional filters applied to the query. |
| — Filter ID (`filterId`) | `string` | No | — | — |
| — First Character | `string` | No | — | Filter by first character of the name. |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Organization: Search

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Search Term | `string` | Yes | — | Search term (min 2 chars or 1 with exact match). |
| Additional Fields | `collection` | No | `{}` | Optional query parameters sent with the search. |
| — Exact Match | `boolean` | No | `false` | — |
| — Fields | `multiOptions` | No | `[]` | — |
| | | | | Options: `address`, `custom_fields`, `name`, `notes` |
| — Raw Data | `boolean` | No | `false` | — |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Organization: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Organization ID (`organizationId`) | `number` | Yes | `0` | ID of the organization. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Label | `string` | No | — | Set to "null" to clear label. |
| — Name | `string` | No | — | — |
| — Owner ID | `number` | No | `0` | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |
| Encode Properties | `boolean` | No | `false` | Encode custom property names to hash keys before sending. |

#### Person: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Name | `string` | Yes | — | Name of the person. |
| Additional Fields | `collection` | No | `{}` | Optional fields to set on the new person. |
| — Email | `string` | No | — | — |
| — Label | `string` | No | — | — |
| — Marketing Status | `options` | No | `no_consent` | — |
| | | | | Options: `no_consent`, `unsubscribed`, `subscribed`, `archived` |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Owner ID | `number` | No | `0` | — |
| — Phone | `string` | No | — | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |

#### Person: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Person ID (`personId`) | `number` | Yes | `0` | ID of the person. |

#### Person: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Person ID (`personId`) | `number` | Yes | `0` | ID of the person. |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |

#### Person: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Additional Fields | `collection` | No | `{}` | Optional query parameters sent with the request. |
| — Filter ID (`filterId`) | `string` | No | — | — |
| — First Character | `string` | No | — | — |
| — Sort | `string` | No | — | Sort order (e.g. "name ASC, id DESC"). |
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Person: Search

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Search Term | `string` | Yes | — | Search term (min 2 chars or 1 with exact match). |
| Additional Fields | `collection` | No | `{}` | Optional query parameters sent with the search. |
| — Exact Match | `boolean` | No | `false` | — |
| — Fields | `string` | No | — | Search fields (comma-separated). |
| — Include Fields | `string` | No | — | — |
| — Organization ID (`organizationId`) | `string` | No | — | — |
| — Raw Data | `boolean` | No | `false` | — |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### Person: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Person ID (`personId`) | `number` | Yes | `0` | ID of the person. |
| Update Fields | `collection` | No | `{}` | Fields to change — only the fields you add are sent. |
| — Email | `string` | No | — | — |
| — Label | `string` | No | — | Set to "null" to clear label. |
| — Marketing Status | `options` | No | `no_consent` | — |
| | | | | Options: `no_consent`, `unsubscribed`, `subscribed`, `archived` |
| — Name | `string` | No | — | — |
| — Organization ID (`org_id`) | `number` | No | `0` | — |
| — Owner ID | `number` | No | `0` | — |
| — Phone | `string` | No | — | — |
| — Visible To | `options` | No | `3` | — |
| | | | | Options: `1` (Owner Only), `3` (Entire Company) |
| — Custom Properties | `fixedCollection` | No | `{}` | Custom field values, each given as a name and a value. |
| — — Name | `string` | No | — | — |
| — — Value | `string` | No | — | — |
| Encode Properties | `boolean` | No | `false` | Encode custom property names to hash keys before sending. |

#### Product: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Resolve Properties | `boolean` | No | `false` | Resolve custom property hash keys to human-readable names. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Maximum number of results to return. _(shown when Return All is `false`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Keep low to avoid Pipedrive rate limits. |

## Output Data

The Pipedrive response is **merged onto the incoming item JSON** — the node spreads the returned record over the fields already on the item, so upstream fields survive unless the record uses the same key. Binary data on the input item is forwarded to every output item, including error items.

**How many items come out**

- **Get Many and Search** emit **one output item per record returned**, each one a copy of the input item merged with that record. A page of 50 deals from a single input item therefore produces 50 output items.
- **Every other operation** emits exactly one output item per input item.
- **An empty response** (no records matched) emits the input item **unchanged** — no fields are added, so check for a field you expect rather than assuming a match.
- An empty input produces no output items at all.

**Shapes the node builds itself**

Most of the item is whatever the Pipedrive API returned for that record — the node does not rename or reshape it. Three things are determined here rather than by the API:

- **Delete and Remove.** When the API answers with a bare `true` rather than a record, the node writes this onto the item instead:

  ```json
  { "success": true }
  ```

- **Search.** Results are unwrapped from the API's search envelope, and unless **Raw Data** is on each output item carries the match score alongside the matched record's own fields:

  ```json
  { "result_score": 0.71 }
  ```

  With **Raw Data** on, the raw search entry is kept as returned, with the record still nested inside it.

- **File: Download.** The item JSON passes through **unchanged** — nothing is merged. The downloaded content is written to the binary property named by **Binary Property** and merged with any binary already on the item, using the file's own name and type from its Pipedrive metadata. Read the file downstream from that binary property, not from the item JSON.

**Custom properties**

With **Resolve Properties** on (Get and Get Many for Activity, Deal, Organization, Person and Product), custom-field hash keys in the result are replaced by the field's human-readable name before the merge. Single-select fields resolve to the option label and multi-select fields to an array of labels, so a custom field named `industry` reads as `{{ $json.industry }}` rather than as a hash key. With **Encode Properties** on (Update for Activity, Deal, Organization and Person), the reverse happens on the way out — custom field names you supply are translated to hash keys before the request is sent.

**Pagination**

With **Return All** on, the node pages through the whole collection and emits every record. With it off, **Limit** caps the request. Deal Product: Get Many has neither control and returns whatever one request yields.

Reference the merged fields downstream by expression, e.g. `{{ $json.result_score }}` after a search or `{{ $json.success }}` after a delete.

## Usage Examples

- Create a new deal in Pipedrive
- Upload a file and attach it to a deal
- Download a file from Pipedrive
- Search for a person by name
- Get all deals with a specific filter
- Add a product to a deal
- Create a lead and associate with an organization

## Example Configuration

Create a deal and link it to an organization, setting value, stage and one custom field:

```json
{
  "type": "pipedrive",
  "parameters": {
    "resource": "deal",
    "operation": "create",
    "title": "{{ $json.company }} — Enterprise License",
    "associateWith": "organization",
    "org_id": 789,
    "additionalFields": {
      "value": 50000,
      "currency": "USD",
      "stage_id": 2,
      "probability": 75,
      "visible_to": "3",
      "customProperties": {
        "property": [
          { "name": "deal_source", "value": "website" }
        ]
      }
    }
  }
}
```

Search for persons by name and cap the result set:

```json
{
  "type": "pipedrive",
  "parameters": {
    "resource": "person",
    "operation": "search",
    "term": "{{ $json.contactName }}",
    "returnAll": false,
    "limit": 20,
    "additionalFields": {
      "exactMatch": false,
      "fields": "name,email",
      "organizationId": "789"
    }
  }
}
```

List open activities for a date range, with custom fields resolved to readable names:

```json
{
  "type": "pipedrive",
  "parameters": {
    "resource": "activity",
    "operation": "getAll",
    "returnAll": false,
    "limit": 100,
    "resolveProperties": true,
    "additionalFields": {
      "done": false,
      "type": ["call", "meeting"],
      "start_date": "2026-01-01",
      "end_date": "2026-01-31",
      "user_id": 123
    }
  }
}
```

Upload the file held on the item's `data` binary property and attach it to a deal and a person:

```json
{
  "type": "pipedrive",
  "parameters": {
    "resource": "file",
    "operation": "create",
    "binaryPropertyName": "data",
    "additionalFields": {
      "deal_id": 123,
      "person_id": 456
    }
  }
}
```

Download a file into a named binary property so a later node can write or send it:

```json
{
  "type": "pipedrive",
  "parameters": {
    "resource": "file",
    "operation": "download",
    "fileId": "{{ $json.fileId }}",
    "binaryPropertyName": "attachment"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Pipedrive CRM resources (deals, persons, organizations, files, etc.) with full CRUD and binary file support.

### Common Patterns

**Creating records with custom properties.** When creating or updating records that support custom properties, use the `customProperties` fixedCollection:

```json
{
  "customProperties": {
    "property": [
      { "name": "custom_field_name", "value": "custom_field_value" },
      { "name": "another_field", "value": "another_value" }
    ]
  }
}
```

**Pagination control.** For operations that return multiple records, control pagination with `returnAll` and `limit`. Leave Return All off and set Limit for a bounded page; turn Return All on to walk the whole collection.

**Property resolution.** When retrieving data, turn on Resolve Properties to get custom property names instead of hash keys. When updating data, turn on Encode Properties so the names you supply are translated back to hash keys.

**Search operations.** Search requires a term of at least 2 characters, or 1 character with exact match. Deal and Organization searches pick their search fields from a fixed list; Person search takes a comma-separated string of field names.

**File operations.** Uploads and downloads both work through the Binary Property parameter — upload reads the named property from the incoming item, download writes the fetched file to it.

**Rate limits.** Keep Max Concurrency low to stay inside Pipedrive's API rate limits. When the API does throttle a request, the node waits and retries it.