Files
sim/apps/docs/content/docs/en/tools/pipedrive.mdx
Waleed f99518b837 feat(calcom): added calcom (#3070)
* feat(tools): added calcom

* added more triggers, tested

* updated regex in script for release to be more lenient

* fix(tag-dropdown): performance improvements and scroll bug fixes

- Add flatTagIndexMap for O(1) tag lookups (replaces O(n²) findIndex calls)
- Memoize caret position calculation to avoid DOM manipulation on every render
- Use refs for inputValue/cursorPosition to keep handleTagSelect callback stable
- Change itemRefs from index-based to tag-based keys to prevent stale refs
- Fix scroll jump in nested folders by removing scroll reset from registerFolder
- Add onFolderEnter callback for scroll reset when entering folder via keyboard
- Disable keyboard navigation wrap-around at boundaries
- Simplify selection reset to single effect on flatTagList.length change

Also:
- Add safeCompare utility for timing-safe string comparison
- Refactor webhook signature validation to use safeCompare

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* updated types

* fix(calcom): simplify required field constraints for booking attendee

The condition field already restricts these to calcom_create_booking,
so simplified to required: true. Per Cal.com API docs, email is optional
while name and timeZone are required.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* added tests

* updated folder multi select, updated calcom and github tools and docs generator script

* updated drag, updated outputs for tools, regen docs with nested docs script

* updated setup instructions links, destructure trigger outputs, fix text subblock styling

* updated docs gen script

* updated docs script

* updated docs script

* updated script

* remove destructuring of stripe webhook

* expanded wand textarea, updated calcom tools

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 20:37:30 -08:00

503 lines
20 KiB
Plaintext

---
title: Pipedrive
description: Interact with Pipedrive CRM
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="pipedrive"
color="#2E6936"
/>
{/* MANUAL-CONTENT-START:intro */}
[Pipedrive](https://www.pipedrive.com) is a powerful sales-focused CRM platform designed to help sales teams manage leads, track deals, and optimize their sales pipeline. Built with simplicity and effectiveness in mind, Pipedrive has become a favorite among sales professionals and growing businesses worldwide for its intuitive visual pipeline management and actionable sales insights.
Pipedrive provides a comprehensive suite of tools for managing the entire sales process from lead capture to deal closure. With its robust API and extensive integration capabilities, Pipedrive enables sales teams to automate repetitive tasks, maintain data consistency, and focus on what matters most—closing deals.
Key features of Pipedrive include:
- Visual Sales Pipeline: Intuitive drag-and-drop interface for managing deals through customizable sales stages
- Lead Management: Comprehensive lead inbox for capturing, qualifying, and converting potential opportunities
- Activity Tracking: Sophisticated system for scheduling and tracking calls, meetings, emails, and tasks
- Project Management: Built-in project tracking capabilities for post-sale customer success and delivery
- Email Integration: Native mailbox integration for seamless communication tracking within the CRM
In Sim, the Pipedrive integration allows your AI agents to seamlessly interact with your sales workflow. This creates opportunities for automated lead qualification, deal creation and updates, activity scheduling, and pipeline management as part of your AI-powered sales processes. The integration enables agents to create, retrieve, update, and manage deals, leads, activities, and projects programmatically, facilitating intelligent sales automation and ensuring that critical customer information is properly tracked and acted upon. By connecting Sim with Pipedrive, you can build AI agents that maintain sales pipeline visibility, automate routine CRM tasks, qualify leads intelligently, and ensure no opportunities slip through the cracks—enhancing sales team productivity and driving consistent revenue growth.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Pipedrive into your workflow. Manage deals, contacts, sales pipeline, projects, activities, files, and communications with powerful CRM capabilities.
## Tools
### `pipedrive_get_all_deals`
Retrieve all deals from Pipedrive with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `status` | string | No | Only fetch deals with a specific status. Values: open, won, lost. If omitted, all not deleted deals are returned |
| `person_id` | string | No | If supplied, only deals linked to the specified person are returned |
| `org_id` | string | No | If supplied, only deals linked to the specified organization are returned |
| `pipeline_id` | string | No | If supplied, only deals in the specified pipeline are returned |
| `updated_since` | string | No | If set, only deals updated after this time are returned. Format: 2025-01-01T10:20:00Z |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Array of deal objects from Pipedrive |
| ↳ `id` | number | Deal ID |
| ↳ `title` | string | Deal title |
| ↳ `value` | number | Deal value |
| ↳ `currency` | string | Currency code |
| ↳ `status` | string | Deal status \(open, won, lost, deleted\) |
| ↳ `stage_id` | number | Pipeline stage ID |
| ↳ `pipeline_id` | number | Pipeline ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `owner_id` | number | Deal owner user ID |
| ↳ `add_time` | string | When the deal was created \(ISO 8601\) |
| ↳ `update_time` | string | When the deal was last updated \(ISO 8601\) |
| ↳ `won_time` | string | When the deal was won |
| ↳ `lost_time` | string | When the deal was lost |
| ↳ `close_time` | string | When the deal was closed |
| ↳ `expected_close_date` | string | Expected close date |
| `metadata` | object | Pagination metadata for the response |
| ↳ `total_items` | number | Total number of items |
| ↳ `has_more` | boolean | Whether more items are available |
| `success` | boolean | Operation success status |
### `pipedrive_get_deal`
Retrieve detailed information about a specific deal
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deal_id` | string | Yes | The ID of the deal to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | Deal object with full details |
| `success` | boolean | Operation success status |
### `pipedrive_create_deal`
Create a new deal in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | The title of the deal |
| `value` | string | No | The monetary value of the deal |
| `currency` | string | No | Currency code \(e.g., USD, EUR\) |
| `person_id` | string | No | ID of the person this deal is associated with |
| `org_id` | string | No | ID of the organization this deal is associated with |
| `pipeline_id` | string | No | ID of the pipeline this deal should be placed in |
| `stage_id` | string | No | ID of the stage this deal should be placed in |
| `status` | string | No | Status of the deal: open, won, lost |
| `expected_close_date` | string | No | Expected close date in YYYY-MM-DD format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | The created deal object |
| `success` | boolean | Operation success status |
### `pipedrive_update_deal`
Update an existing deal in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deal_id` | string | Yes | The ID of the deal to update |
| `title` | string | No | New title for the deal |
| `value` | string | No | New monetary value for the deal |
| `status` | string | No | New status: open, won, lost |
| `stage_id` | string | No | New stage ID for the deal |
| `expected_close_date` | string | No | New expected close date in YYYY-MM-DD format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | The updated deal object |
| `success` | boolean | Operation success status |
### `pipedrive_get_files`
Retrieve files from Pipedrive with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deal_id` | string | No | Filter files by deal ID |
| `person_id` | string | No | Filter files by person ID |
| `org_id` | string | No | Filter files by organization ID |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `files` | array | Array of file objects from Pipedrive |
| ↳ `id` | number | File ID |
| ↳ `name` | string | File name |
| ↳ `file_type` | string | File type/extension |
| ↳ `file_size` | number | File size in bytes |
| ↳ `add_time` | string | When the file was uploaded |
| ↳ `update_time` | string | When the file was last updated |
| ↳ `deal_id` | number | Associated deal ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `url` | string | File download URL |
| `total_items` | number | Total number of files returned |
| `success` | boolean | Operation success status |
### `pipedrive_get_mail_messages`
Retrieve mail threads from Pipedrive mailbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `folder` | string | No | Filter by folder: inbox, drafts, sent, archive \(default: inbox\) |
| `limit` | string | No | Number of results to return \(default: 50\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `messages` | array | Array of mail thread objects from Pipedrive mailbox |
| `total_items` | number | Total number of mail threads returned |
| `success` | boolean | Operation success status |
### `pipedrive_get_mail_thread`
Retrieve all messages from a specific mail thread
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `thread_id` | string | Yes | The ID of the mail thread |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `messages` | array | Array of mail message objects from the thread |
| `metadata` | object | Thread and pagination metadata |
| `success` | boolean | Operation success status |
### `pipedrive_get_pipelines`
Retrieve all pipelines from Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `sort_by` | string | No | Field to sort by: id, update_time, add_time \(default: id\) |
| `sort_direction` | string | No | Sorting direction: asc, desc \(default: asc\) |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
| `cursor` | string | No | For pagination, the marker representing the first item on the next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipelines` | array | Array of pipeline objects from Pipedrive |
| ↳ `id` | number | Pipeline ID |
| ↳ `name` | string | Pipeline name |
| ↳ `url_title` | string | URL-friendly title |
| ↳ `order_nr` | number | Pipeline order number |
| ↳ `active` | boolean | Whether the pipeline is active |
| ↳ `deal_probability` | boolean | Whether deal probability is enabled |
| ↳ `add_time` | string | When the pipeline was created |
| ↳ `update_time` | string | When the pipeline was last updated |
| `total_items` | number | Total number of pipelines returned |
| `success` | boolean | Operation success status |
### `pipedrive_get_pipeline_deals`
Retrieve all deals in a specific pipeline
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `pipeline_id` | string | Yes | The ID of the pipeline |
| `stage_id` | string | No | Filter by specific stage within the pipeline |
| `status` | string | No | Filter by deal status: open, won, lost |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Array of deal objects from the pipeline |
| `metadata` | object | Pipeline and pagination metadata |
| `success` | boolean | Operation success status |
### `pipedrive_get_projects`
Retrieve all projects or a specific project from Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `project_id` | string | No | Optional: ID of a specific project to retrieve |
| `status` | string | No | Filter by project status: open, completed, deleted \(only for listing all\) |
| `limit` | string | No | Number of results to return \(default: 100, max: 500, only for listing all\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | Array of project objects \(when listing all\) |
| `project` | object | Single project object \(when project_id is provided\) |
| `total_items` | number | Total number of projects returned |
| `success` | boolean | Operation success status |
### `pipedrive_create_project`
Create a new project in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | The title of the project |
| `description` | string | No | Description of the project |
| `start_date` | string | No | Project start date in YYYY-MM-DD format |
| `end_date` | string | No | Project end date in YYYY-MM-DD format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The created project object |
| `success` | boolean | Operation success status |
### `pipedrive_get_activities`
Retrieve activities (tasks) from Pipedrive with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deal_id` | string | No | Filter activities by deal ID |
| `person_id` | string | No | Filter activities by person ID |
| `org_id` | string | No | Filter activities by organization ID |
| `type` | string | No | Filter by activity type \(call, meeting, task, deadline, email, lunch\) |
| `done` | string | No | Filter by completion status: 0 for not done, 1 for done |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `activities` | array | Array of activity objects from Pipedrive |
| ↳ `id` | number | Activity ID |
| ↳ `subject` | string | Activity subject |
| ↳ `type` | string | Activity type \(call, meeting, task, etc.\) |
| ↳ `due_date` | string | Due date \(YYYY-MM-DD\) |
| ↳ `due_time` | string | Due time \(HH:MM\) |
| ↳ `duration` | string | Duration \(HH:MM\) |
| ↳ `deal_id` | number | Associated deal ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `done` | boolean | Whether the activity is done |
| ↳ `note` | string | Activity note |
| ↳ `add_time` | string | When the activity was created |
| ↳ `update_time` | string | When the activity was last updated |
| `total_items` | number | Total number of activities returned |
| `success` | boolean | Operation success status |
### `pipedrive_create_activity`
Create a new activity (task) in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `subject` | string | Yes | The subject/title of the activity |
| `type` | string | Yes | Activity type: call, meeting, task, deadline, email, lunch |
| `due_date` | string | Yes | Due date in YYYY-MM-DD format |
| `due_time` | string | No | Due time in HH:MM format |
| `duration` | string | No | Duration in HH:MM format |
| `deal_id` | string | No | ID of the deal to associate with |
| `person_id` | string | No | ID of the person to associate with |
| `org_id` | string | No | ID of the organization to associate with |
| `note` | string | No | Notes for the activity |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `activity` | object | The created activity object |
| `success` | boolean | Operation success status |
### `pipedrive_update_activity`
Update an existing activity (task) in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `activity_id` | string | Yes | The ID of the activity to update |
| `subject` | string | No | New subject/title for the activity |
| `due_date` | string | No | New due date in YYYY-MM-DD format |
| `due_time` | string | No | New due time in HH:MM format |
| `duration` | string | No | New duration in HH:MM format |
| `done` | string | No | Mark as done: 0 for not done, 1 for done |
| `note` | string | No | New notes for the activity |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `activity` | object | The updated activity object |
| `success` | boolean | Operation success status |
### `pipedrive_get_leads`
Retrieve all leads or a specific lead from Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `lead_id` | string | No | Optional: ID of a specific lead to retrieve |
| `archived` | string | No | Get archived leads instead of active ones |
| `owner_id` | string | No | Filter by owner user ID |
| `person_id` | string | No | Filter by person ID |
| `organization_id` | string | No | Filter by organization ID |
| `limit` | string | No | Number of results to return \(default: 100, max: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `leads` | array | Array of lead objects \(when listing all\) |
| ↳ `id` | string | Lead ID \(UUID\) |
| ↳ `title` | string | Lead title |
| ↳ `person_id` | number | ID of the associated person |
| ↳ `organization_id` | number | ID of the associated organization |
| ↳ `owner_id` | number | ID of the lead owner |
| ↳ `value` | object | Lead value |
| ↳ `amount` | number | Value amount |
| ↳ `currency` | string | Currency code \(e.g., USD, EUR\) |
| ↳ `expected_close_date` | string | Expected close date \(YYYY-MM-DD\) |
| ↳ `is_archived` | boolean | Whether the lead is archived |
| ↳ `was_seen` | boolean | Whether the lead was seen |
| ↳ `add_time` | string | When the lead was created \(ISO 8601\) |
| ↳ `update_time` | string | When the lead was last updated \(ISO 8601\) |
| `lead` | object | Single lead object \(when lead_id is provided\) |
| ↳ `id` | string | Lead ID \(UUID\) |
| ↳ `title` | string | Lead title |
| ↳ `person_id` | number | ID of the associated person |
| ↳ `organization_id` | number | ID of the associated organization |
| ↳ `owner_id` | number | ID of the lead owner |
| ↳ `value` | object | Lead value |
| ↳ `amount` | number | Value amount |
| ↳ `currency` | string | Currency code \(e.g., USD, EUR\) |
| ↳ `expected_close_date` | string | Expected close date \(YYYY-MM-DD\) |
| ↳ `is_archived` | boolean | Whether the lead is archived |
| ↳ `was_seen` | boolean | Whether the lead was seen |
| ↳ `add_time` | string | When the lead was created \(ISO 8601\) |
| ↳ `update_time` | string | When the lead was last updated \(ISO 8601\) |
| `total_items` | number | Total number of leads returned |
| `success` | boolean | Operation success status |
### `pipedrive_create_lead`
Create a new lead in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | The name of the lead |
| `person_id` | string | No | ID of the person \(REQUIRED unless organization_id is provided\) |
| `organization_id` | string | No | ID of the organization \(REQUIRED unless person_id is provided\) |
| `owner_id` | string | No | ID of the user who will own the lead |
| `value_amount` | string | No | Potential value amount |
| `value_currency` | string | No | Currency code \(e.g., USD, EUR\) |
| `expected_close_date` | string | No | Expected close date in YYYY-MM-DD format |
| `visible_to` | string | No | Visibility: 1 \(Owner & followers\), 3 \(Entire company\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | The created lead object |
| `success` | boolean | Operation success status |
### `pipedrive_update_lead`
Update an existing lead in Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `lead_id` | string | Yes | The ID of the lead to update |
| `title` | string | No | New name for the lead |
| `person_id` | string | No | New person ID |
| `organization_id` | string | No | New organization ID |
| `owner_id` | string | No | New owner user ID |
| `value_amount` | string | No | New value amount |
| `value_currency` | string | No | New currency code \(e.g., USD, EUR\) |
| `expected_close_date` | string | No | New expected close date in YYYY-MM-DD format |
| `is_archived` | string | No | Archive the lead: true or false |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | The updated lead object |
| `success` | boolean | Operation success status |
### `pipedrive_delete_lead`
Delete a specific lead from Pipedrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `lead_id` | string | Yes | The ID of the lead to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `data` | object | Deletion confirmation data |
| `success` | boolean | Operation success status |