InTouch Hub · Blue Isle Software

Pipedrive

Manage deals, persons, organizations, and pipelines through the Pipedrive REST API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

crmcrm-salesdealsemailsalesstatus

Pipedrive

Manage deals, persons, organizations, and pipelines through the Pipedrive REST API.

This tool wraps the current Pipedrive resource endpoints (/api/v2/...) on the official base URL https://api.pipedrive.com. It uses Python standard library only (urllib, json) — no third-party dependencies. Non-2xx HTTP responses are returned (status + body) rather than raised, so the caller can inspect the Pipedrive error payload.

Operations

operation Method & path Required input Notes
list_deals GET /api/v2/deals — limit (1-500, default 10)
get_deal GET /api/v2/deals/{id} id Single deal by id
create_deal POST /api/v2/deals title Optional: value, currency, personId
list_persons GET /api/v2/persons — limit (1-500, default 10)
create_person POST /api/v2/persons name Optional: email, phone
list_organizations GET /api/v2/organizations — limit (1-500, default 10)
list_pipelines GET /api/v2/pipelines — limit (1-500, default 10)

API token setup

  1. In Pipedrive, go to Settings > Personal preferences > API.
  2. Copy your personal API token (one active token per user per company).
  3. Pass it as the apiKey input. The tool appends it as the ?api_token=<token> query parameter on every request — Pipedrive's stateless token authentication scheme. No OAuth or bearer header is needed for a single-user token.

Each user has a separate token per company they belong to. Treat the token as a secret; in InTouch, store it in a credential or runtime-environment variable rather than hardcoding it.

Output

Every run publishes:

On a transport-level failure the tool prints {"result": "", "status": "0", "error": "..."} and exits non-zero so the InTouch step is marked FAILED.

Examples

List the 5 most recent deals:

{
  "apiKey": "YOUR_PIPEDRIVE_TOKEN",
  "operation": "list_deals",
  "limit": "5"
}

Get a single deal:

{
  "apiKey": "YOUR_PIPEDRIVE_TOKEN",
  "operation": "get_deal",
  "id": "1234"
}

Create a deal linked to a person:

{
  "apiKey": "YOUR_PIPEDRIVE_TOKEN",
  "operation": "create_deal",
  "title": "Acme — annual renewal",
  "value": "12000",
  "currency": "USD",
  "personId": "987"
}

Create a person:

{
  "apiKey": "YOUR_PIPEDRIVE_TOKEN",
  "operation": "create_person",
  "name": "Jane Doe",
  "email": "[email protected]",
  "phone": "+1-555-0100"
}

List pipelines:

{
  "apiKey": "YOUR_PIPEDRIVE_TOKEN",
  "operation": "list_pipelines"
}

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes — Pipedrive API token. Found in Pipedrive > Settings > Personal preferences > API. Sent as the ?api_token= query parameter on every request.
operation string yes — One of: list_deals, get_deal, create_deal, list_persons, create_person, list_organizations, list_pipelines
id string no — Record id — required for get_deal (GET /api/v2/deals/{id}).
title string no — Deal title — required for create_deal.
value string no — Deal monetary value — optional for create_deal.
currency string no — ISO currency code for the deal value — optional for create_deal.
personId string no — Linked person id — optional for create_deal.
name string no — Person name — required for create_person.
email string no — Person email address — optional for create_person.
phone string no — Person phone number — optional for create_person.
limit string no — Max items to return for list_* operations (1-500, default 10).