Skip to content

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 15:24

Features

Full custom fields support for the Pipedrive MCP server.

Writing custom values

All *_create / *_update tools for deals, persons, organizations, products and leads now accept a custom_fields object:

{
  "title": "ACME deal",
  "value": 50000,
  "custom_fields": {
    "Industria": "Tech",
    "Budget": 50000,
    "Tags": ["Enterprise", "EU"]
  }
}
  • Keys can be display names (case-insensitive, trimmed) or 40-char hash keys
  • enum/set labels translated to option ids automatically
  • monetary accepts a number or { value, currency }
  • daterange/timerange expand { start, end } to the two hash keys Pipedrive expects
  • Unknown names produce a clear error with top-3 Levenshtein suggestions
  • Duplicate display names raise duplicate_name with candidate hashes

Reading enriched responses

*_get, *_list and *_search now include custom_fields_resolved alongside the raw payload:

{
  "id": 123,
  "title": "ACME deal",
  "abc123def456...": 18,
  "custom_fields_resolved": { "Industria": "Tech" }
}

Read-path enrichment is opportunistic — only adds the resolved map if the field-definitions cache is warm; never adds an extra HTTP call. Search response shape (data.items[].item) is also handled.

CRUD for field definitions

Twelve new tools mirror the existing organization-field CRUD pattern:

  • fields_create_deal_field, fields_update_deal_field, fields_delete_deal_field, fields_bulk_delete_deal_fields
  • fields_create_person_field, fields_update_person_field, fields_delete_person_field, fields_bulk_delete_person_fields
  • fields_create_product_field, fields_update_product_field, fields_delete_product_field, fields_bulk_delete_product_fields

Leads share deal field definitions (no separate /leadFields endpoint in Pipedrive).

Breaking-ish change

Create/update zod schemas for deals, persons, organizations, products and leads no longer reject unknown top-level keys (.strict() removed). Custom values should now be passed inside custom_fields instead of at the top level. Existing top-level hash keys are silently stripped by zod's default behavior.

Organization tools were also migrated to use the canonical schemas (instead of inline ones), exposing 6 additional address fields previously not accessible: label, address_subpremise, address_sublocality, address_admin_area_level_1, address_admin_area_level_2, address_formatted_address.

Docs

See docs/CUSTOM_FIELDS.md for full usage guide.

Tests

959 tests passing (33 files). Type-check, build and lint clean.

Full diff: #32