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
- In Pipedrive, go to Settings > Personal preferences > API.
- Copy your personal API token (one active token per user per company).
- Pass it as the
apiKeyinput. 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:
result— the raw Pipedrive JSON response body, as a string.status— the HTTP status code as a string ("200","201","401", ...).
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"
}