Skip to main content

Pipedrive

Read and write a Pipedrive company's CRM - deals, persons, organizations, activities and products - with its pipelines, stages and company-specific custom fields.

Connect a Pipedrive company with a personal API token to work its CRM over API v2: search deals, people and organizations by name, email or phone; read and write records with their custom fields; move deals through pipeline stages and mark them won or lost; schedule and complete activities; and manage a deal's product line items. Discovery is first-class - List fields reports the field schema this company actually has, and List pipelines / List stages report the ids a deal is placed by. Notes, leads, users and file attachments have NO tools here: Pipedrive ships no API v2 endpoint for them, and v1 is being switched off.

Connect

Credential fieldRequiredWhere it comes from
API token (API_TOKEN)YesFrom Settings → Personal preferences → API. It carries the Pipedrive permissions of the user who created it - there are no per-token scopes.
SettingRequiredWhat it is
Company domain (COMPANY_DOMAIN)YesThe subdomain your Pipedrive account is served from - the acme in https://acme.pipedrive.com. API v2 is served only from this host, never from the shared api.pipedrive.com.

Tools

ToolAccessWhat it does
List records (yekar.pipedrive.list-records)ReadA page of deals, persons, organizations, activities or products, with cursor paging and the filters that entity actually supports - deals by pipeline, stage, status, person or organization; activities by deal, person, done-state or type. Filters that do not apply to the chosen entity are rejected rather than silently ignored. This endpoint reports no total; page until hasMore is false to count. Use Search records to find a record by name, email or phone.
Get record (yekar.pipedrive.get-record)ReadOne deal, person, organization, activity or product by its Pipedrive id, with its standard fields and its company-specific custom fields returned separately. Pipedrive has no look-up-by-email endpoint - use Search records for that, then read the id back here.
Search records (yekar.pipedrive.search-records)ReadFind deals, persons, organizations or products by free text - a name, email address, phone number, deal title or custom field value - ranked by Pipedrive's own relevance score. This is the way to turn a name or an email into an id; Get record then reads the full record. Results are ranked, not filtered: use List records when you want every record matching a structural condition.
Create record (yekar.pipedrive.create-record)WriteCreate a deal, person, organization, activity or product from a field map. Call List fields first - which fields are mandatory, and what an enum field's allowed values are, is company-specific; deal stages take stage ids from List stages. Custom fields are passed separately and keyed by their hash. Creating does not link the record to anything by itself: set person_id / org_id / deal_id in the same call.
Update record (yekar.pipedrive.update-record)WriteChange fields on an existing deal, person, organization, activity or product. This is a partial update - only the keys you send are written, everything else is left alone. Moving a deal through the pipeline is an update to stage_id; marking it won or lost is an update to status; completing an activity is done: true.
Delete record (yekar.pipedrive.delete-record)WriteDelete a deal, person, organization, activity or product. Pipedrive marks it deleted rather than erasing it: it leaves lists and search immediately, is restorable from the UI for a grace period, and is purged after that. Related records are not deleted with it. To take a deal out of play without deleting it, update its status to lost instead.
List fields (yekar.pipedrive.list-fields)ReadThe field schema an entity type actually has in THIS Pipedrive company - every standard field plus every custom one, with its write key, type, whether it is mandatory, and the allowed values of an enum or set field. Call this before Create record or Update record: mandatory fields and enum options are configured per company, and a custom field is written by its 40-character hash key, never by its numeric id.
List pipelines (yekar.pipedrive.list-pipelines)ReadThe company's deal pipelines, in display order. A pipeline id is what filters List records for deals and what List stages takes to show that pipeline's stages - start here when a request names a pipeline by its human name.
List stages (yekar.pipedrive.list-stages)ReadThe stages of a deal pipeline, in order, with each stage's win probability. A stage id is what Create record and Update record take to place or move a deal - a deal is advanced by writing stage_id, not by writing the stage's name. Stage names repeat across pipelines, so pass pipelineId when a request names a stage.
List deal products (yekar.pipedrive.list-deal-products)ReadThe products attached to a deal - its line items, with unit price, quantity, discount, tax and line total. Each row's attachmentId identifies the line item on this deal and is different from the productId in the product catalogue; the same product attached twice is two rows with two attachment ids.
Add deal product (yekar.pipedrive.add-deal-product)WriteAttach a catalogue product to a deal as a line item, at a unit price and quantity for this deal. The unit price is required - Pipedrive does not copy the catalogue price on the API path the way the UI pre-fills it. This appends: adding the same product again creates a second line item rather than changing the first.

Notes

  • In Pipedrive go to Settings → Personal preferences → API and copy your personal API token.
  • Paste it as the API token here. It carries YOUR Pipedrive permissions - everything a tool does is done as you, and is attributed to you in the company's history. An admin's token can reach every record; a restricted user's token cannot, and a 403 here usually means that rather than a broken setup.
  • Set the Company domain to the subdomain your account is served from - the acme in https://acme.pipedrive.com. The bare subdomain, the full host and the pasted URL all work.
  • Do not use api.pipedrive.com: that shared host serves the retiring API v1 and has no /api/v2, so a connection pointed at it fails every call.
  • Add one credential per company - a production and a sandbox account can live on the same connection.