Agent skill
kommo
Kommo (formerly amoCRM) API. Use when user mentions "Kommo", "amoCRM", "CRM", or sales pipeline management.
Install this agent skill to your Project
npx add-skill https://github.com/vm0-ai/vm0-skills/tree/main/kommo
SKILL.md
Kommo API
Use the Kommo API via direct curl calls for CRM management including leads, contacts, companies, tasks, and sales pipelines.
Official docs:
https://developers.kommo.com/
When to Use
Use this skill when you need to:
- Manage leads - Create, list, update leads in your sales pipeline
- Handle contacts - Add and retrieve customer contact information
- Track companies - Manage company records and associations
- Create tasks - Schedule follow-ups and meetings
- View pipelines - Get sales pipeline stages and statuses
Prerequisites
- Sign up at Kommo
- Create a private integration:
- Go to Settings > Integrations > Create Integration
- Select "Private integration"
- Go to "Keys and scopes" tab
- Click "Generate long-lived token"
- Copy the token (it cannot be retrieved again)
- Note your subdomain from your Kommo URL:
https://{subdomain}.kommo.com
export KOMMO_SUBDOMAIN="your-subdomain" # e.g., "mycompany" (not "mycompany.kommo.com")
export KOMMO_API_KEY="your-long-lived-token"
How to Use
All examples below assume you have environment variables set.
The base URL is: https://${KOMMO_SUBDOMAIN}.kommo.com/api/v4
Authentication uses Bearer token in the Authorization header.
Rate limit: Maximum 7 requests per second.
1. List Leads
Get all leads in your account:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["leads"][] | {id, name, price}'
With filters:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads?limit=10&page=1" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["leads"]'
2. Get Lead by ID
Get a specific lead:
Replace <your-lead-id> with the actual lead ID:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads/<your-lead-id>" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)"
3. Create Lead
Create a new lead:
Write to /tmp/kommo_request.json:
[{
"name": "New Lead",
"price": 5000
}]
Then run:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
4. Create Lead with Contact and Company
Create a lead with associated contact and company:
Write to /tmp/kommo_request.json:
[{
"name": "Lead with Contact",
"price": 10000,
"_embedded": {
"contacts": [{
"first_name": "John",
"last_name": "Doe"
}],
"companies": [{
"name": "Acme Corp"
}]
}
}]
Then run:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads/complex" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
5. Update Lead
Update an existing lead:
Write to /tmp/kommo_request.json:
{
"price": 7500,
"name": "Updated Lead Name"
}
Then run:
Replace <your-lead-id> with the actual lead ID:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads/<your-lead-id>" -X PATCH -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
6. List Contacts
Get all contacts:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/contacts" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["contacts"][] | {id, name}'
7. Get Contact by ID
Get a specific contact:
Replace <your-contact-id> with the actual contact ID:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/contacts/<your-contact-id>" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)"
8. Create Contact
Create a new contact:
Write to /tmp/kommo_request.json:
[{
"first_name": "Jane",
"last_name": "Smith"
}]
Then run:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/contacts" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
9. List Companies
Get all companies:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/companies" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["companies"][] | {id, name}'
10. Create Company
Create a new company:
Write to /tmp/kommo_request.json:
[{
"name": "New Company Inc"
}]
Then run:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/companies" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
11. List Tasks
Get all tasks:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/tasks" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["tasks"][] | {id, text, complete_till}'
12. Create Task
Create a new task (use Unix timestamp for complete_till):
Write to /tmp/kommo_request.json:
[{
"text": "Follow up with client",
"complete_till": 1735689600,
"task_type_id": 1
}]
Then run:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/tasks" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" -d @/tmp/kommo_request.json
Task types: 1 = Follow-up, 2 = Meeting
13. List Pipelines
Get all sales pipelines:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads/pipelines" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["pipelines"][] | {id, name}'
14. Get Pipeline Stages
Get stages for a specific pipeline:
Replace <your-pipeline-id> with the actual pipeline ID:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/leads/pipelines/<your-pipeline-id>" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '.["_embedded"]["statuses"][] | {id, name}'
15. Get Account Info
Get account information:
curl -s "https://$(printenv KOMMO_SUBDOMAIN).kommo.com/api/v4/account" -H "Accept: application/json" -H "Authorization: Bearer $(printenv KOMMO_API_KEY)" | jq '{id, name, subdomain, currency}'
Response Format
Lead Response
{
"id": 12345,
"name": "Lead Name",
"price": 5000,
"responsible_user_id": 123,
"pipeline_id": 456,
"status_id": 789
}
Contact Response
{
"id": 12345,
"name": "John Doe",
"first_name": "John",
"last_name": "Doe"
}
Guidelines
- Rate limit: Maximum 7 requests per second, 429 returned if exceeded
- Array format: POST requests for creating entities expect an array of objects
- Use pagination: Add
?limit=N&page=Nfor large result sets - Task timestamps:
complete_tillis Unix timestamp in seconds - If-Modified-Since: Use this header for efficient polling of list endpoints
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
brave-search
Brave Search API for web search. Use when user says "search web", "Brave search", or asks to "find on web" without specifying Google.
supadata
Supadata API for YouTube/web data. Use when user mentions "Supadata", "YouTube data", "channel stats", or web scraping data.
roadmap-planning
Build and prioritize product roadmaps using scoring models like RICE, ICE, and value-effort matrices. Activate when creating a product roadmap, prioritizing features, sequencing initiatives, mapping dependencies, balancing team capacity, choosing between Now/Next/Later or quarterly planning, or communicating roadmap tradeoffs to executives and stakeholders.
qdrant
Qdrant API for vector search. Use when user mentions "Qdrant", "vector database", "semantic search", or embeddings storage.
calendly
Calendly scheduling API. Use when user mentions "Calendly", "calendly.com", "schedule a meeting", "booking link", "event types", or asks about interview scheduling.
stripe
Stripe API for payments. Use when user mentions "Stripe", "payment", "subscription", "billing", "invoice", or asks about payment processing.
Didn't find tool you were looking for?