Skip to main content
📊

Pipedrive Integration

61 pre-built action templates across 13 categories

One-Click Connect available! Go to Settings → Integrations → Connect Platform → Pipedrive to connect with a single click via OAuth. No API keys needed.

Overview

The Pipedrive integration gives your AI agents full access to your CRM data during live phone calls and widget conversations. With 61 pre-built action templates across 13 categories, your AI can search contacts, create deals, schedule activities, manage products, look up records, traverse relationships, and more, all while talking to the customer.

Connect via One-Click OAuth. No API tokens needed. Token refresh is handled automatically.

Connection Setup

  1. 1Go to Settings → Integrations
  2. 2Click Connect Platform
  3. 3Select Pipedrive from the grid
  4. 4Authorize access on Pipedrive's consent screen
  5. 5You're connected! Click Add Action to start adding templates.

Pipedrive-Specific Notes

Email & Phone Arrays

Pipedrive stores emails and phones as arrays with metadata: [{"value": "...", "primary": true, "label": "work"}]. The templates handle this automatically and optional fields are cleaned up before sending.

Lead IDs are UUIDs

Unlike other Pipedrive objects that use integer IDs, leads use UUID strings (e.g., a1b2c3d4-e5f6-7890-abcd-ef1234567890).

Activity Duration Format

Durations use HH:MM format. 5 minutes = 00:05, 1.5 hours = 01:30. The AI converts natural language automatically.

Activity Types

Supported types: call, meeting, task, deadline, email, lunch.

API Versions

Most endpoints use Pipedrive API v2. Leads (CUD), Notes, Call Logs, Users, Currencies, and Lead Labels use v1. The templates use the correct version automatically.

Persons (Contacts)

4 templates: Search, create, update, and delete persons in Pipedrive.

Search Persons

SettingValue
MethodGET
Endpoint/api/v2/persons/search
Requiredterm (min 2 chars)
Optionalfields, exact_match

Searches by name, email, or phone. Returns matching persons with contact details and organization.

Create Person

SettingValue
MethodPOST
Endpoint/api/v2/persons
Requiredname
Optionalemails[], phones[], org_id
{
  "name": "{{name}}",
  "emails": [{"value": "{{email}}", "primary": true, "label": "work"}],
  "phones": [{"value": "{{phone}}", "primary": true, "label": "mobile"}],
  "org_id": "{{org_id}}"
}

Update Person

SettingValue
MethodPATCH
Endpoint/api/v2/persons/{{id}}
Requiredid (path)
Optionalname, emails[], phones[], org_id

Delete Person

SettingValue
MethodDELETE
Endpoint/api/v2/persons/{{id}}
Requiredid (path)
ConfirmationRequired

Organizations

4 templates: Search, create, update, and delete organizations.

Search Organizations

SettingValue
MethodGET
Endpoint/api/v2/organizations/search
Requiredterm (min 2 chars)
Optionalfields, exact_match

Create Organization

SettingValue
MethodPOST
Endpoint/api/v2/organizations
Requiredname
Optionaladdress
{
  "name": "{{name}}",
  "address": "{{address}}"
}

Update Organization

SettingValue
MethodPATCH
Endpoint/api/v2/organizations/{{id}}
Requiredid (path)
Optionalname, address

Delete Organization

SettingValue
MethodDELETE
Endpoint/api/v2/organizations/{{id}}
Requiredid (path)
ConfirmationRequired

Deals

4 templates: Search, create, update, and delete deals.

Search Deals

SettingValue
MethodGET
Endpoint/api/v2/deals/search
Requiredterm (min 2 chars)
Optionalfields, exact_match

Create Deal

SettingValue
MethodPOST
Endpoint/api/v2/deals
Requiredtitle
Optionalvalue, currency, person_id, org_id, expected_close_date
{
  "title": "{{title}}",
  "value": "{{value}}",
  "currency": "{{currency}}",
  "person_id": "{{person_id}}",
  "org_id": "{{org_id}}",
  "expected_close_date": "{{expected_close_date}}"
}

Update Deal

SettingValue
MethodPATCH
Endpoint/api/v2/deals/{{id}}
Requiredid (path)
Optionaltitle, value, status (open/won/lost), expected_close_date

Delete Deal

SettingValue
MethodDELETE
Endpoint/api/v2/deals/{{id}}
Requiredid (path)
ConfirmationRequired

Leads

4 templates: Search, create, update, and delete leads. Lead IDs are UUIDs.

Note: Lead CRUD operations use Pipedrive API v1 (/v1/leads). Search uses v2. Lead IDs are UUID strings, not integers.

Search Leads

SettingValue
MethodGET
Endpoint/api/v2/leads/search
Requiredterm (min 2 chars)
Optionalfields

Create Lead

SettingValue
MethodPOST
Endpoint/v1/leads
Requiredtitle + person_id or organization_id
Optionalvalue (nested: {amount, currency}), expected_close_date
{
  "title": "{{title}}",
  "person_id": "{{person_id}}",
  "organization_id": "{{organization_id}}",
  "value": {"amount": "{{amount}}", "currency": "{{currency}}"},
  "expected_close_date": "{{expected_close_date}}"
}

Lead value uses a nested object format, unlike deals which use flat fields.

Update Lead

SettingValue
MethodPATCH
Endpoint/v1/leads/{{id}}
Requiredid (path, UUID)
Optionaltitle, value

Delete Lead

SettingValue
MethodDELETE
Endpoint/v1/leads/{{id}}
Requiredid (path, UUID)
ConfirmationRequired

Activities

4 templates: List, create, update, and delete activities (calls, meetings, tasks, etc.).

Activity Types

call · meeting · task · deadline · email · lunch

List Activities

SettingValue
MethodGET
Endpoint/api/v2/activities
Optional Filterstype, done, person_id, deal_id

Pipedrive activities don't have a search endpoint. Use query filters to narrow results.

Create Activity

SettingValue
MethodPOST
Endpoint/api/v2/activities
Requiredsubject, type
Optionaldue_date, due_time, duration, deal_id, person_id, org_id, note, done
{
  "subject": "{{subject}}",
  "type": "{{type}}",
  "due_date": "{{due_date}}",
  "due_time": "{{due_time}}",
  "duration": "{{duration}}",
  "deal_id": "{{deal_id}}",
  "person_id": "{{person_id}}",
  "org_id": "{{org_id}}",
  "note": "{{note}}",
  "done": "{{done}}"
}

Duration format: HH:MM. 5 minutes = 00:05, 30 minutes = 00:30, 1 hour = 01:00, 1.5 hours = 01:30. The AI converts natural language automatically.

Update Activity

SettingValue
MethodPATCH
Endpoint/api/v2/activities/{{id}}
Requiredid (path)
Optionalsubject, type, due_date, due_time, duration, done

Delete Activity

SettingValue
MethodDELETE
Endpoint/api/v2/activities/{{id}}
Requiredid (path)
ConfirmationRequired

Products

4 templates: Search, create, update, and delete products.

Search Products

SettingValue
MethodGET
Endpoint/api/v2/products/search
Requiredterm (min 2 chars)
Optionalfields

Create Product

SettingValue
MethodPOST
Endpoint/api/v2/products
Requiredname
Optionalcode, unit, tax, prices[]
{
  "name": "{{name}}",
  "code": "{{code}}",
  "unit": "{{unit}}",
  "tax": "{{tax}}",
  "prices": [{"currency": "{{currency}}", "price": "{{price}}"}]
}

Update Product

SettingValue
MethodPATCH
Endpoint/api/v2/products/{{id}}
Requiredid (path)
Optionalname, code, unit, tax, prices[]

Delete Product

SettingValue
MethodDELETE
Endpoint/api/v2/products/{{id}}
Requiredid (path)
ConfirmationRequired

Notes

4 templates: List, create, update, and delete notes.

Note: Notes use Pipedrive API v1 (/v1/notes). The content field supports HTML. Update uses PUT (replaces the entire note).

List Notes

SettingValue
MethodGET
Endpoint/v1/notes
Optional Filtersperson_id, deal_id, org_id

Create Note

SettingValue
MethodPOST
Endpoint/v1/notes
Requiredcontent + one of deal_id/person_id/org_id/lead_id
{
  "content": "{{content}}",
  "deal_id": "{{deal_id}}",
  "person_id": "{{person_id}}",
  "org_id": "{{org_id}}",
  "lead_id": "{{lead_id}}"
}

Update Note

SettingValue
MethodPUT
Endpoint/v1/notes/{{id}}
Requiredid (path)
Optionalcontent

Uses PUT (not PATCH) and replaces the entire note content.

Delete Note

SettingValue
MethodDELETE
Endpoint/v1/notes/{{id}}
Requiredid (path)
ConfirmationRequired

Direct Lookups

6 templates: Retrieve a single record by its ID for persons, organizations, deals, leads, activities, and products.

Get Person by ID

SettingValue
MethodGET
Endpoint/api/v2/persons/{{id}}
Requiredid (path)

Returns full person details including emails, phones, and linked organization.

Get Organization by ID

SettingValue
MethodGET
Endpoint/api/v2/organizations/{{id}}
Requiredid (path)

Returns full organization details including address and custom fields.

Get Deal by ID

SettingValue
MethodGET
Endpoint/api/v2/deals/{{id}}
Requiredid (path)

Returns full deal details including value, stage, pipeline, and linked contacts.

Get Lead by ID

SettingValue
MethodGET
Endpoint/api/v2/leads/{{id}}
Requiredid (path, UUID)

Returns full lead details. Lead IDs are UUID strings.

Get Activity by ID

SettingValue
MethodGET
Endpoint/api/v2/activities/{{id}}
Requiredid (path)

Returns full activity details including type, due date, and linked records.

Get Product by ID

SettingValue
MethodGET
Endpoint/api/v2/products/{{id}}
Requiredid (path)

Returns full product details including pricing and custom fields.

Pipelines & Stages

4 templates: List and inspect pipelines and their stages.

List Pipelines

SettingValue
MethodGET
Endpoint/api/v2/pipelines

Returns all pipelines in the account with their names and deal/stage counts.

Get Pipeline

SettingValue
MethodGET
Endpoint/api/v2/pipelines/{{id}}
Requiredid (path)

Returns details for a single pipeline including deal grouping and order.

List Stages

SettingValue
MethodGET
Endpoint/api/v2/stages
Optionalpipeline_id

Returns all stages. Filter by pipeline_id to get stages for a specific pipeline.

Get Stage

SettingValue
MethodGET
Endpoint/api/v2/stages/{{id}}
Requiredid (path)

Returns details for a single stage including its pipeline and order number.

Call Logs

5 templates: List, create, update, retrieve, and delete call logs.

Note: Call Logs use Pipedrive API v1 (/v1/callLogs).

List Call Logs

SettingValue
MethodGET
Endpoint/v1/callLogs

Returns all call logs for the authenticated user.

Create Call Log

SettingValue
MethodPOST
Endpoint/v1/callLogs
Requiredsubject, duration, outcome, to_phone_number, start_time
Optionalperson_id, org_id, deal_id, note
{
  "subject": "{{subject}}",
  "duration": "{{duration}}",
  "outcome": "{{outcome}}",
  "to_phone_number": "{{to_phone_number}}",
  "start_time": "{{start_time}}",
  "person_id": "{{person_id}}",
  "org_id": "{{org_id}}",
  "deal_id": "{{deal_id}}",
  "note": "{{note}}"
}

Duration is in seconds. Outcome values: connected, no_answer, left_message, left_voicemail, wrong_number.

Update Call Log

SettingValue
MethodPATCH
Endpoint/v1/callLogs/{{call_log_id}}
Requiredcall_log_id (path)
Optionalsubject, duration, outcome, note, to_phone_number, from_phone_number
{
  "subject": "{{subject}}",
  "duration": "{{duration}}",
  "outcome": "{{outcome}}",
  "note": "{{note}}"
}

Get Call Log

SettingValue
MethodGET
Endpoint/v1/callLogs/{{id}}
Requiredid (path)

Returns details for a single call log entry.

Delete Call Log

SettingValue
MethodDELETE
Endpoint/v1/callLogs/{{id}}
Requiredid (path)
ConfirmationRequired

Users

3 templates: List users, get a specific user, or get the current authenticated user.

Note: Users use Pipedrive API v1 (/v1/users).

List Users

SettingValue
MethodGET
Endpoint/v1/users

Returns all users in the Pipedrive account.

Get User

SettingValue
MethodGET
Endpoint/v1/users/{{id}}
Requiredid (path)

Returns details for a specific user including name, email, and role.

Get Current User

SettingValue
MethodGET
Endpoint/v1/users/me

Returns the currently authenticated user's details. Useful for identifying ownership context.

Utilities

9 templates: Convert leads, manage deal products, list activity types, search globally, and more.

Convert Lead to Deal

SettingValue
MethodPOST
Endpoint/v1/leads/{{id}}/convert
Requiredid (path, UUID)

Converts a lead into a deal. The lead is archived after conversion.

Add Product to Deal

SettingValue
MethodPOST
Endpoint/api/v2/deals/{{id}}/products
Requiredid (path), product_id, item_price, quantity
Optionaldiscount, comments
{
  "product_id": "{{product_id}}",
  "item_price": "{{item_price}}",
  "quantity": "{{quantity}}",
  "discount": "{{discount}}",
  "comments": "{{comments}}"
}

Remove Product from Deal

SettingValue
MethodDELETE
Endpoint/api/v2/deals/{{id}}/products/{{product_attachment_id}}
Requiredid (path), product_attachment_id (path)

Removes a product attachment from a deal. Use the product_attachment_id from the deal's products list, not the product ID itself.

List Activity Types

SettingValue
MethodGET
Endpoint/api/v2/activityTypes

Returns all activity types including custom ones created in Pipedrive settings.

List Lead Labels

SettingValue
MethodGET
Endpoint/v1/leadLabels

Returns all available lead labels used for categorizing leads.

Global Search

SettingValue
MethodGET
Endpoint/api/v2/itemSearch
Requiredterm (min 2 chars)
Optionalitem_types, fields, exact_match

Searches across all item types (persons, organizations, deals, leads, products) simultaneously. Narrow results with the item_types parameter.

List Currencies

SettingValue
MethodGET
Endpoint/v1/currencies

Returns all supported currencies with codes and symbols. Useful for validating currency input on deals and products.

Get Note by ID

SettingValue
MethodGET
Endpoint/v1/notes/{{id}}
Requiredid (path)

Returns a single note by its ID including content and linked records.

List Deal Fields

SettingValue
MethodGET
Endpoint/api/v2/dealFields

Returns all deal fields including custom fields. Useful for discovering field keys when creating or updating deals with custom data.

Example Conversation

Here's how your AI agent uses Pipedrive during a real phone call:

Caller: “Hi, this is Lisa Chen from Acme Corp. I wanted to check on the status of our deal.”

→ Executes: search_persons with term=“Lisa Chen”

→ Found: Lisa Chen (id: 42), Acme Corp, [email protected]

AI Agent: “Hi Lisa! Let me pull up your deals right away.”

→ Executes: list_person_deals with id=42

→ Found: “Acme Corp Enterprise License” — $24,000, stage: Proposal Sent

AI Agent: “I can see your deal 'Acme Corp Enterprise License' for $24,000. It's currently in the Proposal Sent stage. Would you like me to schedule a follow-up call with your account manager?”

Caller: “Yes, how about Thursday at 3 PM?”

→ Executes: create_activity with subject=“Follow-up call - Lisa Chen / Acme Corp”, type=“call”, due_date=“2026-03-06”, due_time=“15:00”, person_id=42

AI Agent: “Done! I've scheduled a follow-up call for Thursday at 3 PM. I'll also log this conversation.”

→ Executes: create_note with content=“Inbound call from Lisa Chen. Inquired about deal status (Proposal Sent). Follow-up call scheduled for Thursday 3 PM.”, person_id=42

Last updated: March 2026

Pipedrive Integration | Staffify Docs