Pipedrive CRM (OpenClaw)
Scanned@danielfoch
npx machina-cli add skill @danielfoch/pipedrive-crm-openclaw --openclawPipedrive CRM for OpenClaw
Use this skill to run day-to-day CRM operations in Pipedrive through API calls, including CRUD, search, pipeline movement, activity logging, and any unsupported operation via raw endpoint requests.
Required Environment
Set one authentication mode:
PIPEDRIVE_API_TOKENfor API token auth (simplest)PIPEDRIVE_ACCESS_TOKENfor OAuth bearer auth
Set base routing:
PIPEDRIVE_COMPANY_DOMAIN(for example:acmeforhttps://acme.pipedrive.com)
Optional:
PIPEDRIVE_API_BASEto override full API base URL (defaults tohttps://<company>.pipedrive.com/api/v1)PIPEDRIVE_TIMEOUTrequest timeout in seconds (default30)
Setup
If the user asks to connect or validate credentials:
python3 skills/pipedrive-crm-openclaw/scripts/setup-wizard.py
Primary Script
Run:
python3 skills/pipedrive-crm-openclaw/scripts/pipedrive-api.py <command> [args]
Core commands:
test_connectionlist <entity> [--start N] [--limit N]get <entity> <id>create <entity> <json_payload>update <entity> <id> <json_payload> [--method PUT|PATCH]delete <entity> <id>search <entity> <term> [--limit N] [--fields csv] [--exact-match]move_deal_stage <deal_id> <stage_id> [--status open|won|lost|deleted]add_note <content> [--deal-id ID] [--person-id ID] [--org-id ID] [--lead-id UUID]request <METHOD> <path> [--query '{...}'] [--body '{...}']
Supported entities:
personsorganizationsdealsleadsactivitiesnotesproductsuserspipelinesstages
Practical OpenClaw Playbooks
Lead Intake and Qualification
search persons "name or email"to deduplicate.create persons '{...}'if no match.create deals '{...}'and link person/org.add_note "summary" --deal-id <id>to preserve context.
Pipeline Management
list dealswith filters throughrequestquery.move_deal_stage <deal_id> <stage_id>.create activities '{...}'for next follow-up.
Daily Follow-Up Queue
list activitiesandsearch persons.update activities <id> '{"done":1}'after completion.- Log interaction with
add_note.
Safety Rules
- Never print or echo raw tokens in chat output.
- Read before write when user intent is ambiguous.
- Validate IDs from API responses before destructive actions.
- If response is
401or403, stop and request corrected credentials/scopes. - Use
requestfor endpoints not yet wrapped by helper commands.
References
Load as needed:
references/entity-playbooks.mdreferences/pipedrive-v1-notes.md
Overview
This skill lets you perform day-to-day Pipedrive CRM operations through API calls, including CRUD, search, pipeline movement, activity logging, and notes. It supports custom endpoint actions and raw requests for unsupported operations, enabling automation and UI-free CRM workflows.
How This Skill Works
Authenticate with PIPEDRIVE_API_TOKEN or PIPEDRIVE_ACCESS_TOKEN and set the company domain with PIPEDRIVE_COMPANY_DOMAIN. Use the provided core script to run commands like test_connection, list, get, create, update, delete, search, move_deal_stage, add_note, and request against entities such as persons, organizations, deals, leads, activities, notes, products, users, pipelines, and stages. Optional PIPEDRIVE_API_BASE and PIPEDRIVE_TIMEOUT let you customize the base URL and request timeout.
When to Use It
- Deduplicate and create records during lead intake (search persons, then create) and link to deals or leads
- Move deals through pipeline stages using move_deal_stage
- Log activities and attach notes to deals, persons, or organizations with add_note
- List and search records with pagination and filtering to support dashboards and reports
- Execute raw endpoint requests for unsupported or custom actions via request
Quick Start
- Step 1: Configure authentication and base URL by exporting PIPEDRIVE_API_TOKEN or PIPEDRIVE_ACCESS_TOKEN, PIPEDRIVE_COMPANY_DOMAIN, and optional PIPEDRIVE_API_BASE and PIPEDRIVE_TIMEOUT
- Step 2: Run the core script with a command, e.g. python3 skills/pipedrive-crm-openclaw/scripts/pipedrive-api.py test_connection or list deals
- Step 3: Validate results, handle errors (401/403), and use create/update/delete as needed via the supported commands
Best Practices
- Validate credentials with test_connection before performing actions
- Use minimal payloads and verify IDs from API responses before chaining operations
- Prefer API token auth for simplicity; switch to OAuth with appropriate scopes if required
- Use request for endpoints not yet wrapped by helper commands and avoid exposing sensitive data in logs
- Handle 401/403 responses gracefully and implement timeouts/retries where appropriate
Example Use Cases
- Create a new person and a linked deal in a single flow: create persons '{...}' then create deals '{...}' and associate them
- Move a deal to a specific stage and immediately log a follow-up activity with create activities '{...}'
- List deals with pagination and perform a search for a customer by email to locate related records
- Add a note to a deal after a phone call and attach it to the corresponding organization
- Use request to hit a custom/unwrapped endpoint for an unsupported operation