- Add date_added to all 950+ skills for complete tracking - Update version to 6.5.0 in package.json and README - Regenerate all indexes and catalog - Sync all generated files Features from merged PR #150: - Stars/Upvotes system for community-driven discovery - Auto-update mechanism via START_APP.bat - Interactive Prompt Builder - Date tracking badges - Smart auto-categorization All skills validated and indexed. Made-with: Cursor
229 lines
12 KiB
Markdown
229 lines
12 KiB
Markdown
---
|
|
name: pipedrive-automation
|
|
description: "Automate Pipedrive CRM operations including deals, contacts, organizations, activities, notes, and pipeline management via Rube MCP (Composio). Always search tools first for current schemas."
|
|
risk: unknown
|
|
source: community
|
|
date_added: "2026-02-27"
|
|
---
|
|
|
|
# Pipedrive Automation via Rube MCP
|
|
|
|
Automate Pipedrive CRM workflows including deal management, contact and organization operations, activity scheduling, notes, and pipeline/stage queries through Composio's Pipedrive toolkit.
|
|
|
|
## Prerequisites
|
|
|
|
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
|
|
- Active Pipedrive connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `pipedrive`
|
|
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
|
|
|
|
## Setup
|
|
|
|
**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
|
|
|
|
|
|
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `pipedrive`
|
|
3. If connection is not ACTIVE, follow the returned auth link to complete Pipedrive OAuth
|
|
4. Confirm connection status shows ACTIVE before running any workflows
|
|
|
|
## Core Workflows
|
|
|
|
### 1. Create and Manage Deals
|
|
|
|
**When to use**: User wants to create a new deal, update an existing deal, or review deal details in the sales pipeline.
|
|
|
|
**Tool sequence**:
|
|
1. `PIPEDRIVE_SEARCH_ORGANIZATIONS` - Find existing org to link to the deal [Optional]
|
|
2. `PIPEDRIVE_ADD_AN_ORGANIZATION` - Create organization if none found [Optional]
|
|
3. `PIPEDRIVE_SEARCH_PERSONS` - Find existing contact to link [Optional]
|
|
4. `PIPEDRIVE_ADD_A_PERSON` - Create contact if none found [Optional]
|
|
5. `PIPEDRIVE_GET_ALL_PIPELINES` - Resolve pipeline ID [Prerequisite]
|
|
6. `PIPEDRIVE_GET_ALL_STAGES` - Resolve stage ID within the pipeline [Prerequisite]
|
|
7. `PIPEDRIVE_ADD_A_DEAL` - Create the deal with title, value, org_id, person_id, stage_id [Required]
|
|
8. `PIPEDRIVE_UPDATE_A_DEAL` - Modify deal properties after creation [Optional]
|
|
9. `PIPEDRIVE_ADD_A_PRODUCT_TO_A_DEAL` - Attach line items/products [Optional]
|
|
|
|
**Key parameters**:
|
|
- `title`: Deal title (required for creation)
|
|
- `value`: Monetary value of the deal
|
|
- `currency`: 3-letter ISO currency code (e.g., "USD")
|
|
- `pipeline_id` / `stage_id`: Numeric IDs for pipeline placement
|
|
- `org_id` / `person_id`: Link to organization and contact
|
|
- `status`: "open", "won", or "lost"
|
|
- `expected_close_date`: Format YYYY-MM-DD
|
|
|
|
**Pitfalls**:
|
|
- `title` is the only required field for `PIPEDRIVE_ADD_A_DEAL`; all others are optional
|
|
- Custom fields appear as long hash keys in responses; use dealFields endpoint to map them
|
|
- `PIPEDRIVE_UPDATE_A_DEAL` requires the numeric `id` of the deal
|
|
- Setting `status` to "lost" requires also providing `lost_reason`
|
|
|
|
### 2. Manage Contacts (Persons and Organizations)
|
|
|
|
**When to use**: User wants to create, update, search, or list contacts and companies in Pipedrive.
|
|
|
|
**Tool sequence**:
|
|
1. `PIPEDRIVE_SEARCH_PERSONS` - Search for existing person by name, email, or phone [Prerequisite]
|
|
2. `PIPEDRIVE_ADD_A_PERSON` - Create new contact if not found [Required]
|
|
3. `PIPEDRIVE_UPDATE_A_PERSON` - Modify existing contact details [Optional]
|
|
4. `PIPEDRIVE_GET_DETAILS_OF_A_PERSON` - Retrieve full contact record [Optional]
|
|
5. `PIPEDRIVE_SEARCH_ORGANIZATIONS` - Search for existing organization [Prerequisite]
|
|
6. `PIPEDRIVE_ADD_AN_ORGANIZATION` - Create new organization if not found [Required]
|
|
7. `PIPEDRIVE_UPDATE_AN_ORGANIZATION` - Modify organization properties [Optional]
|
|
8. `PIPEDRIVE_GET_DETAILS_OF_AN_ORGANIZATION` - Retrieve full org record [Optional]
|
|
|
|
**Key parameters**:
|
|
- `name`: Required for both person and organization creation
|
|
- `email`: Array of objects with `value`, `label`, `primary` fields for persons
|
|
- `phone`: Array of objects with `value`, `label`, `primary` fields for persons
|
|
- `org_id`: Link a person to an organization
|
|
- `visible_to`: 1 = owner only, 3 = entire company
|
|
- `term`: Search term for SEARCH_PERSONS / SEARCH_ORGANIZATIONS (minimum 2 characters)
|
|
|
|
**Pitfalls**:
|
|
- `PIPEDRIVE_ADD_AN_ORGANIZATION` may auto-merge with an existing org; check `response.additional_data.didMerge`
|
|
- Email and phone fields are arrays of objects, not plain strings: `[{"value": "test@example.com", "label": "work", "primary": true}]`
|
|
- `PIPEDRIVE_SEARCH_PERSONS` wildcards like `*` or `@` are NOT supported; use `PIPEDRIVE_GET_ALL_PERSONS` to list all
|
|
- Deletion via `PIPEDRIVE_DELETE_A_PERSON` or `PIPEDRIVE_DELETE_AN_ORGANIZATION` is soft-delete with 30-day retention, then permanent
|
|
|
|
### 3. Schedule and Track Activities
|
|
|
|
**When to use**: User wants to create calls, meetings, tasks, or other activities linked to deals, contacts, or organizations.
|
|
|
|
**Tool sequence**:
|
|
1. `PIPEDRIVE_SEARCH_PERSONS` or `PIPEDRIVE_GET_DETAILS_OF_A_DEAL` - Resolve linked entity IDs [Prerequisite]
|
|
2. `PIPEDRIVE_ADD_AN_ACTIVITY` - Create the activity with subject, type, due date [Required]
|
|
3. `PIPEDRIVE_UPDATE_AN_ACTIVITY` - Modify activity details or mark as done [Optional]
|
|
4. `PIPEDRIVE_GET_DETAILS_OF_AN_ACTIVITY` - Retrieve activity record [Optional]
|
|
5. `PIPEDRIVE_GET_ALL_ACTIVITIES_ASSIGNED_TO_A_PARTICULAR_USER` - List user's activities [Optional]
|
|
|
|
**Key parameters**:
|
|
- `subject`: Activity title (required)
|
|
- `type`: Activity type key string, e.g., "call", "meeting", "task", "email" (required)
|
|
- `due_date`: Format YYYY-MM-DD
|
|
- `due_time`: Format HH:MM
|
|
- `duration`: Format HH:MM (e.g., "00:30" for 30 minutes)
|
|
- `deal_id` / `person_id` / `org_id`: Link to related entities
|
|
- `done`: 0 = not done, 1 = done
|
|
|
|
**Pitfalls**:
|
|
- Both `subject` and `type` are required for `PIPEDRIVE_ADD_AN_ACTIVITY`
|
|
- `type` must match an existing ActivityTypes key_string in the account
|
|
- `done` is an integer (0 or 1), not a boolean
|
|
- Response includes `more_activities_scheduled_in_context` in additional_data
|
|
|
|
### 4. Add and Manage Notes
|
|
|
|
**When to use**: User wants to attach notes to deals, persons, organizations, leads, or projects.
|
|
|
|
**Tool sequence**:
|
|
1. `PIPEDRIVE_SEARCH_PERSONS` or `PIPEDRIVE_GET_DETAILS_OF_A_DEAL` - Resolve entity ID [Prerequisite]
|
|
2. `PIPEDRIVE_ADD_A_NOTE` - Create note with HTML content linked to an entity [Required]
|
|
3. `PIPEDRIVE_UPDATE_A_NOTE` - Modify note content [Optional]
|
|
4. `PIPEDRIVE_GET_ALL_NOTES` - List notes filtered by entity [Optional]
|
|
5. `PIPEDRIVE_GET_ALL_COMMENTS_FOR_A_NOTE` - Retrieve comments on a note [Optional]
|
|
|
|
**Key parameters**:
|
|
- `content`: Note body in HTML format (required)
|
|
- `deal_id` / `person_id` / `org_id` / `lead_id` / `project_id`: At least one entity link required
|
|
- `pinned_to_deal_flag` / `pinned_to_person_flag`: Filter pinned notes when listing
|
|
|
|
**Pitfalls**:
|
|
- `content` is required and supports HTML; plain text works but is sanitized server-side
|
|
- At least one of `deal_id`, `person_id`, `org_id`, `lead_id`, or `project_id` must be provided
|
|
- `PIPEDRIVE_GET_ALL_NOTES` returns notes across all entities by default; filter with entity ID params
|
|
|
|
### 5. Query Pipelines and Stages
|
|
|
|
**When to use**: User wants to view sales pipelines, stages, or deals within a pipeline/stage.
|
|
|
|
**Tool sequence**:
|
|
1. `PIPEDRIVE_GET_ALL_PIPELINES` - List all pipelines and their IDs [Required]
|
|
2. `PIPEDRIVE_GET_ONE_PIPELINE` - Get details and deal summary for a specific pipeline [Optional]
|
|
3. `PIPEDRIVE_GET_ALL_STAGES` - List all stages, optionally filtered by pipeline [Required]
|
|
4. `PIPEDRIVE_GET_ONE_STAGE` - Get details for a specific stage [Optional]
|
|
5. `PIPEDRIVE_GET_DEALS_IN_A_PIPELINE` - List all deals across stages in a pipeline [Optional]
|
|
6. `PIPEDRIVE_GET_DEALS_IN_A_STAGE` - List deals in a specific stage [Optional]
|
|
|
|
**Key parameters**:
|
|
- `id`: Pipeline or stage ID (required for single-item endpoints)
|
|
- `pipeline_id`: Filter stages by pipeline
|
|
- `totals_convert_currency`: 3-letter currency code or "default_currency" for converted totals
|
|
- `get_summary`: Set to 1 for deal summary in pipeline responses
|
|
|
|
**Pitfalls**:
|
|
- `PIPEDRIVE_GET_ALL_PIPELINES` takes no parameters; returns all pipelines
|
|
- `PIPEDRIVE_GET_ALL_STAGES` returns stages for ALL pipelines unless `pipeline_id` is specified
|
|
- Deal counts in pipeline summaries use `per_stages_converted` only when `totals_convert_currency` is set
|
|
|
|
## Common Patterns
|
|
|
|
### ID Resolution
|
|
Always resolve display names to numeric IDs before operations:
|
|
- **Organization name -> org_id**: `PIPEDRIVE_SEARCH_ORGANIZATIONS` with `term` param
|
|
- **Person name -> person_id**: `PIPEDRIVE_SEARCH_PERSONS` with `term` param
|
|
- **Pipeline name -> pipeline_id**: `PIPEDRIVE_GET_ALL_PIPELINES` then match by name
|
|
- **Stage name -> stage_id**: `PIPEDRIVE_GET_ALL_STAGES` with `pipeline_id` then match by name
|
|
|
|
### Pagination
|
|
Most list endpoints use offset-based pagination:
|
|
- Use `start` (offset) and `limit` (page size) parameters
|
|
- Check `additional_data.pagination.more_items_in_collection` to know if more pages exist
|
|
- Use `additional_data.pagination.next_start` as the `start` value for the next page
|
|
- Default limit is ~500 for some endpoints; set explicitly for predictable paging
|
|
|
|
## Known Pitfalls
|
|
|
|
### ID Formats
|
|
- All entity IDs (deal, person, org, activity, pipeline, stage) are numeric integers
|
|
- Lead IDs are UUID strings, not integers
|
|
- Custom field keys are long alphanumeric hashes (e.g., "a1b2c3d4e5f6...")
|
|
|
|
### Rate Limits
|
|
- Pipedrive enforces per-company API rate limits; bulk operations should be paced
|
|
- `PIPEDRIVE_GET_ALL_PERSONS` and `PIPEDRIVE_GET_ALL_ORGANIZATIONS` can return large datasets; always paginate
|
|
|
|
### Parameter Quirks
|
|
- Email and phone on persons are arrays of objects, not plain strings
|
|
- `visible_to` is numeric: 1 = owner only, 3 = entire company, 5 = specific groups
|
|
- `done` on activities is integer 0/1, not boolean true/false
|
|
- Organization creation may auto-merge duplicates silently; check `didMerge` in response
|
|
- `PIPEDRIVE_SEARCH_PERSONS` requires minimum 2 characters and does not support wildcards
|
|
|
|
### Response Structure
|
|
- Custom fields appear as hash keys in responses; map them via the respective Fields endpoints
|
|
- Responses often nest data under `response.data.data` in wrapped executions
|
|
- Search results are under `response.data.items`, not top-level
|
|
|
|
## Quick Reference
|
|
|
|
| Task | Tool Slug | Key Params |
|
|
|------|-----------|------------|
|
|
| Create deal | `PIPEDRIVE_ADD_A_DEAL` | `title`, `value`, `org_id`, `stage_id` |
|
|
| Update deal | `PIPEDRIVE_UPDATE_A_DEAL` | `id`, `status`, `value`, `stage_id` |
|
|
| Get deal details | `PIPEDRIVE_GET_DETAILS_OF_A_DEAL` | `id` |
|
|
| Search persons | `PIPEDRIVE_SEARCH_PERSONS` | `term`, `fields` |
|
|
| Add person | `PIPEDRIVE_ADD_A_PERSON` | `name`, `email`, `phone`, `org_id` |
|
|
| Update person | `PIPEDRIVE_UPDATE_A_PERSON` | `id`, `name`, `email` |
|
|
| Get person details | `PIPEDRIVE_GET_DETAILS_OF_A_PERSON` | `id` |
|
|
| List all persons | `PIPEDRIVE_GET_ALL_PERSONS` | `start`, `limit`, `filter_id` |
|
|
| Search organizations | `PIPEDRIVE_SEARCH_ORGANIZATIONS` | `term`, `fields` |
|
|
| Add organization | `PIPEDRIVE_ADD_AN_ORGANIZATION` | `name`, `visible_to` |
|
|
| Update organization | `PIPEDRIVE_UPDATE_AN_ORGANIZATION` | `id`, `name`, `address` |
|
|
| Get org details | `PIPEDRIVE_GET_DETAILS_OF_AN_ORGANIZATION` | `id` |
|
|
| Add activity | `PIPEDRIVE_ADD_AN_ACTIVITY` | `subject`, `type`, `due_date`, `deal_id` |
|
|
| Update activity | `PIPEDRIVE_UPDATE_AN_ACTIVITY` | `id`, `done`, `due_date` |
|
|
| Get activity details | `PIPEDRIVE_GET_DETAILS_OF_AN_ACTIVITY` | `id` |
|
|
| List user activities | `PIPEDRIVE_GET_ALL_ACTIVITIES_ASSIGNED_TO_A_PARTICULAR_USER` | `user_id`, `start`, `limit` |
|
|
| Add note | `PIPEDRIVE_ADD_A_NOTE` | `content`, `deal_id` or `person_id` |
|
|
| List notes | `PIPEDRIVE_GET_ALL_NOTES` | `deal_id`, `person_id`, `start`, `limit` |
|
|
| List pipelines | `PIPEDRIVE_GET_ALL_PIPELINES` | (none) |
|
|
| Get pipeline details | `PIPEDRIVE_GET_ONE_PIPELINE` | `id` |
|
|
| List stages | `PIPEDRIVE_GET_ALL_STAGES` | `pipeline_id` |
|
|
| Deals in pipeline | `PIPEDRIVE_GET_DEALS_IN_A_PIPELINE` | `id`, `stage_id` |
|
|
| Deals in stage | `PIPEDRIVE_GET_DEALS_IN_A_STAGE` | `id`, `start`, `limit` |
|
|
| Add product to deal | `PIPEDRIVE_ADD_A_PRODUCT_TO_A_DEAL` | `id`, `product_id`, `item_price` |
|
|
|
|
## When to Use
|
|
This skill is applicable to execute the workflow or actions described in the overview.
|