Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Pipedrive CRM operations including deals, contacts, organizations, activities, notes, and pipeline management via Rube MCP (Composio). Always search tools first for current schemas.
.claude/skills/davepoon-pipedrive-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 349% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 237% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 208% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 174% | 0% |
Automate Pipedrive CRM workflows including deal management, contact and organization operations, activity scheduling, notes, and pipeline/stage queries through Composio's Pipedrive toolkit.
Toolkit docs: composio.dev/toolkits/pipedrive
RUBE_MANAGE_CONNECTIONS with toolkit pipedriveRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit pipedriveWhen to use: User wants to create a new deal, update an existing deal, or review deal details in the sales pipeline.
Tool sequence:
PIPEDRIVE_SEARCH_ORGANIZATIONS - Find existing org to link to the deal Optional]PIPEDRIVE_ADD_AN_ORGANIZATION - Create organization if none found Optional]PIPEDRIVE_SEARCH_PERSONS - Find existing contact to link Optional]PIPEDRIVE_ADD_A_PERSON - Create contact if none found Optional]PIPEDRIVE_GET_ALL_PIPELINES - Resolve pipeline ID Prerequisite]PIPEDRIVE_GET_ALL_STAGES - Resolve stage ID within the pipeline Prerequisite]PIPEDRIVE_ADD_A_DEAL - Create the deal with title, value, org_id, person_id, stage_id Required]PIPEDRIVE_UPDATE_A_DEAL - Modify deal properties after creation Optional]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 dealcurrency: 3-letter ISO currency code (e.g., "USD")pipeline_id / stage_id: Numeric IDs for pipeline placementorg_id / person_id: Link to organization and contactstatus: "open", "won", or "lost"expected_close_date: Format YYYY-MM-DDPitfalls:
title is the only required field for PIPEDRIVE_ADD_A_DEAL; all others are optionalPIPEDRIVE_UPDATE_A_DEAL requires the numeric id of the dealstatus to "lost" requires also providing lost_reasonWhen to use: User wants to create, update, search, or list contacts and companies in Pipedrive.
Tool sequence:
PIPEDRIVE_SEARCH_PERSONS - Search for existing person by name, email, or phone Prerequisite]PIPEDRIVE_ADD_A_PERSON - Create new contact if not found Required]PIPEDRIVE_UPDATE_A_PERSON - Modify existing contact details Optional]PIPEDRIVE_GET_DETAILS_OF_A_PERSON - Retrieve full contact record Optional]PIPEDRIVE_SEARCH_ORGANIZATIONS - Search for existing organization Prerequisite]PIPEDRIVE_ADD_AN_ORGANIZATION - Create new organization if not found Required]PIPEDRIVE_UPDATE_AN_ORGANIZATION - Modify organization properties Optional]PIPEDRIVE_GET_DETAILS_OF_AN_ORGANIZATION - Retrieve full org record Optional]Key parameters:
name: Required for both person and organization creationemail: Array of objects with value, label, primary fields for personsphone: Array of objects with value, label, primary fields for personsorg_id: Link a person to an organizationvisible_to: 1 = owner only, 3 = entire companyterm: 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[{"value": "test@example.com", "label": "work", "primary": true}]PIPEDRIVE_SEARCH_PERSONS wildcards like * or @ are NOT supported; use PIPEDRIVE_GET_ALL_PERSONS to list allPIPEDRIVE_DELETE_A_PERSON or PIPEDRIVE_DELETE_AN_ORGANIZATION is soft-delete with 30-day retention, then permanentWhen to use: User wants to create calls, meetings, tasks, or other activities linked to deals, contacts, or organizations.
Tool sequence:
PIPEDRIVE_SEARCH_PERSONS or PIPEDRIVE_GET_DETAILS_OF_A_DEAL - Resolve linked entity IDs Prerequisite]PIPEDRIVE_ADD_AN_ACTIVITY - Create the activity with subject, type, due date Required]PIPEDRIVE_UPDATE_AN_ACTIVITY - Modify activity details or mark as done Optional]PIPEDRIVE_GET_DETAILS_OF_AN_ACTIVITY - Retrieve activity record Optional]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-DDdue_time: Format HH:MMduration: Format HH:MM (e.g., "00:30" for 30 minutes)deal_id / person_id / org_id: Link to related entitiesdone: 0 = not done, 1 = donePitfalls:
subject and type are required for PIPEDRIVE_ADD_AN_ACTIVITYtype must match an existing ActivityTypes key_string in the accountdone is an integer (0 or 1), not a booleanmore_activities_scheduled_in_context in additional_dataWhen to use: User wants to attach notes to deals, persons, organizations, leads, or projects.
Tool sequence:
PIPEDRIVE_SEARCH_PERSONS or PIPEDRIVE_GET_DETAILS_OF_A_DEAL - Resolve entity ID Prerequisite]PIPEDRIVE_ADD_A_NOTE - Create note with HTML content linked to an entity Required]PIPEDRIVE_UPDATE_A_NOTE - Modify note content Optional]PIPEDRIVE_GET_ALL_NOTES - List notes filtered by entity Optional]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 requiredpinned_to_deal_flag / pinned_to_person_flag: Filter pinned notes when listingPitfalls:
content is required and supports HTML; plain text works but is sanitized server-sidedeal_id, person_id, org_id, lead_id, or project_id must be providedPIPEDRIVE_GET_ALL_NOTES returns notes across all entities by default; filter with entity ID paramsWhen to use: User wants to view sales pipelines, stages, or deals within a pipeline/stage.
Tool sequence:
PIPEDRIVE_GET_ALL_PIPELINES - List all pipelines and their IDs Required]PIPEDRIVE_GET_ONE_PIPELINE - Get details and deal summary for a specific pipeline Optional]PIPEDRIVE_GET_ALL_STAGES - List all stages, optionally filtered by pipeline Required]PIPEDRIVE_GET_ONE_STAGE - Get details for a specific stage Optional]PIPEDRIVE_GET_DEALS_IN_A_PIPELINE - List all deals across stages in a pipeline Optional]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 pipelinetotals_convert_currency: 3-letter currency code or "default_currency" for converted totalsget_summary: Set to 1 for deal summary in pipeline responsesPitfalls:
PIPEDRIVE_GET_ALL_PIPELINES takes no parameters; returns all pipelinesPIPEDRIVE_GET_ALL_STAGES returns stages for ALL pipelines unless pipeline_id is specifiedper_stages_converted only when totals_convert_currency is setAlways resolve display names to numeric IDs before operations:
PIPEDRIVE_SEARCH_ORGANIZATIONS with term paramPIPEDRIVE_SEARCH_PERSONS with term paramPIPEDRIVE_GET_ALL_PIPELINES then match by namePIPEDRIVE_GET_ALL_STAGES with pipeline_id then match by nameMost list endpoints use offset-based pagination:
start (offset) and limit (page size) parametersadditional_data.pagination.more_items_in_collection to know if more pages existadditional_data.pagination.next_start as the start value for the next pagePIPEDRIVE_GET_ALL_PERSONS and PIPEDRIVE_GET_ALL_ORGANIZATIONS can return large datasets; always paginatevisible_to is numeric: 1 = owner only, 3 = entire company, 5 = specific groupsdone on activities is integer 0/1, not boolean true/falsedidMerge in responsePIPEDRIVE_SEARCH_PERSONS requires minimum 2 characters and does not support wildcardsresponse.data.data in wrapped executionsresponse.data.items, not top-level| 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 |
Powered by Composio
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,503 | 5,973 | -59% | 1 | 1 | 0% | 3,231 | 4,275 | +32% | 0 | 0 | — |
case-02 | fail→fail | 6,945 | 5,150 | -26% | 1 | 1 | 0% | 504 | 4,037 | +701% | 0 | 0 | — |
case-03 | fail→fail | 13,593 | 7,986 | -41% | 1 | 1 | 0% | 851 | 4,409 | +418% | 0 | 0 | — |
case-04 | pass→pass | 6,073 | 3,538 | -42% | 1 | 1 | 0% | 1,215 | 4,423 | +264% | 0 | 0 | — |
case-05 | pass→pass | 7,651 | 3,811 | -50% | 1 | 1 | 0% | 1,281 | 4,253 | +232% | 0 | 0 | — |
case-06 | fail→pass | 5,277 | 2,948 | -44% | 1 | 1 | 0% | 945 | 4,244 | +349% | 0 | 0 | — |
case-07 | fail→pass | 8,195 | 5,077 | -38% | 1 | 1 | 0% | 1,381 | 4,651 | +237% | 0 | 0 | — |
case-08 | fail→pass | 7,668 | 2,722 | -65% | 1 | 1 | 0% | 1,364 | 4,197 | +208% | 0 | 0 | — |
case-09 | pass→pass | 6,836 | 5,271 | -23% | 1 | 1 | 0% | 1,310 | 4,656 | +255% | 0 | 0 | — |
case-10 | fail→fail | 5,141 | 4,201 | -18% | 1 | 1 | 0% | 962 | 4,577 | +376% | 0 | 0 | — |
case-11 | fail→pass | 11,695 | 3,962 | -66% | 1 | 1 | 0% | 1,897 | 4,516 | +138% | 0 | 0 | — |
case-12 | pass→pass | 4,145 | 4,608 | +11% | 1 | 1 | 0% | 745 | 4,651 | +524% | 0 | 0 | — |
case-13 | pass→pass | 11,055 | 2,408 | -78% | 1 | 1 | 0% | 1,752 | 4,124 | +135% | 0 | 0 | — |
case-14 | pass→pass | 5,090 | 3,189 | -37% | 1 | 1 | 0% | 921 | 4,306 | +368% | 0 | 0 | — |
case-15 | pass→pass | 9,773 | 4,675 | -52% | 1 | 1 | 0% | 1,858 | 4,591 | +147% | 0 | 0 | — |
case-16 | pass→pass | 2,417 | 2,793 | +16% | 1 | 1 | 0% | 430 | 4,145 | +864% | 0 | 0 | — |
case-17 | pass→pass | 9,327 | 4,775 | -49% | 1 | 1 | 0% | 1,836 | 4,520 | +146% | 0 | 0 | — |
case-18 | pass→pass | 6,573 | 2,916 | -56% | 1 | 1 | 0% | 1,119 | 4,250 | +280% | 0 | 0 | — |
case-19 | fail→pass | 7,831 | 2,701 | -66% | 1 | 1 | 0% | 1,539 | 4,219 | +174% | 0 | 0 | — |
case-20 | fail→fail | 11,818 | 9,514 | -19% | 1 | 1 | 0% | 2,332 | 5,480 | +135% | 0 | 0 | — |
case-21 | fail→fail | 14,176 | 11,157 | -21% | 1 | 1 | 0% | 2,703 | 5,808 | +115% | 0 | 0 | — |
case-22 | fail→fail | 11,067 | 17,175 | +55% | 1 | 1 | 0% | 2,173 | 7,350 | +238% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.