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_CONNECTIONSwith toolkitpipedrive - •Always call
RUBE_SEARCH_TOOLSfirst 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.
- •Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitpipedrive - •If connection is not ACTIVE, follow the returned auth link to complete Pipedrive OAuth
- •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:
- •
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 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:
- •
titleis the only required field forPIPEDRIVE_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_DEALrequires the numericidof the deal - •Setting
statusto "lost" requires also providinglost_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:
- •
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 creation - •
email: Array of objects withvalue,label,primaryfields for persons - •
phone: Array of objects withvalue,label,primaryfields 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_ORGANIZATIONmay auto-merge with an existing org; checkresponse.additional_data.didMerge - •Email and phone fields are arrays of objects, not plain strings:
[{"value": "test@example.com", "label": "work", "primary": true}] - •
PIPEDRIVE_SEARCH_PERSONSwildcards like*or@are NOT supported; usePIPEDRIVE_GET_ALL_PERSONSto list all - •Deletion via
PIPEDRIVE_DELETE_A_PERSONorPIPEDRIVE_DELETE_AN_ORGANIZATIONis 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:
- •
PIPEDRIVE_SEARCH_PERSONSorPIPEDRIVE_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-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
subjectandtypeare required forPIPEDRIVE_ADD_AN_ACTIVITY - •
typemust match an existing ActivityTypes key_string in the account - •
doneis an integer (0 or 1), not a boolean - •Response includes
more_activities_scheduled_in_contextin additional_data
4. Add and Manage Notes
When to use: User wants to attach notes to deals, persons, organizations, leads, or projects.
Tool sequence:
- •
PIPEDRIVE_SEARCH_PERSONSorPIPEDRIVE_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 required - •
pinned_to_deal_flag/pinned_to_person_flag: Filter pinned notes when listing
Pitfalls:
- •
contentis required and supports HTML; plain text works but is sanitized server-side - •At least one of
deal_id,person_id,org_id,lead_id, orproject_idmust be provided - •
PIPEDRIVE_GET_ALL_NOTESreturns 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:
- •
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 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_PIPELINEStakes no parameters; returns all pipelines - •
PIPEDRIVE_GET_ALL_STAGESreturns stages for ALL pipelines unlesspipeline_idis specified - •Deal counts in pipeline summaries use
per_stages_convertedonly whentotals_convert_currencyis set
Common Patterns
ID Resolution
Always resolve display names to numeric IDs before operations:
- •Organization name -> org_id:
PIPEDRIVE_SEARCH_ORGANIZATIONSwithtermparam - •Person name -> person_id:
PIPEDRIVE_SEARCH_PERSONSwithtermparam - •Pipeline name -> pipeline_id:
PIPEDRIVE_GET_ALL_PIPELINESthen match by name - •Stage name -> stage_id:
PIPEDRIVE_GET_ALL_STAGESwithpipeline_idthen match by name
Pagination
Most list endpoints use offset-based pagination:
- •Use
start(offset) andlimit(page size) parameters - •Check
additional_data.pagination.more_items_in_collectionto know if more pages exist - •Use
additional_data.pagination.next_startas thestartvalue 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_PERSONSandPIPEDRIVE_GET_ALL_ORGANIZATIONScan return large datasets; always paginate
Parameter Quirks
- •Email and phone on persons are arrays of objects, not plain strings
- •
visible_tois numeric: 1 = owner only, 3 = entire company, 5 = specific groups - •
doneon activities is integer 0/1, not boolean true/false - •Organization creation may auto-merge duplicates silently; check
didMergein response - •
PIPEDRIVE_SEARCH_PERSONSrequires 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.datain 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 |