Agent skill
streak
Streak CRM API for Gmail. Use when user mentions "Streak", "Gmail CRM", "email CRM", or pipeline in Gmail.
Install this agent skill to your Project
npx add-skill https://github.com/vm0-ai/vm0-skills/tree/main/streak
SKILL.md
Streak CRM
Streak is a CRM built entirely inside Gmail. Use this skill to manage pipelines, boxes (deals), contacts, organizations, tasks, and email threads via the Streak API.
Official docs:
https://streak.readme.io/reference
When to Use
Use this skill when you need to:
- Manage sales pipelines and deal stages
- Track leads, contacts, and organizations
- Associate email threads with deals
- Create tasks and comments on deals
- Search across boxes, contacts, and organizations
Prerequisites
- Install the Streak extension in Gmail
- Navigate to Gmail > Streak icon > Integrations > Streak API > Create New Key
- Copy your API key
Set environment variable:
export STREAK_TOKEN="your-api-key"
How to Use
Authentication
Streak uses HTTP Basic Auth with your API key as the username and no password. In curl, use -u "$(printenv STREAK_TOKEN):" (note the trailing colon).
1. Get Current User
curl -s -X GET "https://api.streak.com/api/v1/users/me" -u "$(printenv STREAK_TOKEN):"
2. List All Pipelines
Pipelines represent business processes (Sales, Hiring, Projects, etc.).
curl -s -X GET "https://api.streak.com/api/v1/pipelines" -u "$(printenv STREAK_TOKEN):"
3. Get a Pipeline
curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}" -u "$(printenv STREAK_TOKEN):"
4. Create a Pipeline
Write to /tmp/streak_request.json:
{
"name": "New Sales Pipeline"
}
Then run:
curl -s -X PUT "https://api.streak.com/api/v1/pipelines" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
5. List Boxes in Pipeline
Boxes are the core data objects (deals, leads, projects) within a pipeline.
curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/boxes" -u "$(printenv STREAK_TOKEN):"
6. Get a Box
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}" -u "$(printenv STREAK_TOKEN):"
7. Create a Box
Write to /tmp/streak_request.json:
{
"name": "Acme Corp Deal"
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/pipelines/{pipelineKey}/boxes" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
8. Update a Box
Write to /tmp/streak_request.json:
{
"name": "Updated Deal Name",
"stageKey": "stageKey123"
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
9. List Stages in Pipeline
curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/stages" -u "$(printenv STREAK_TOKEN):"
10. List Fields in Pipeline
curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/fields" -u "$(printenv STREAK_TOKEN):"
11. Get a Contact
curl -s -X GET "https://api.streak.com/api/v1/contacts/{contactKey}" -u "$(printenv STREAK_TOKEN):"
12. Create a Contact
Write to /tmp/streak_request.json:
{
"teamKey": "teamKey123",
"emailAddresses": ["john@example.com"],
"givenName": "John",
"familyName": "Doe"
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/contacts" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
13. Get an Organization
curl -s -X GET "https://api.streak.com/api/v1/organizations/{organizationKey}" -u "$(printenv STREAK_TOKEN):"
14. Search Boxes, Contacts, and Organizations
curl -s -X GET "https://api.streak.com/api/v1/search?query=acme" -u "$(printenv STREAK_TOKEN):"
15. Get Tasks in a Box
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/tasks" -u "$(printenv STREAK_TOKEN):"
16. Create a Task
Write to /tmp/streak_request.json:
{
"text": "Follow up with client",
"dueDate": 1735689600000
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/tasks" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
17. Get Comments in a Box
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/comments" -u "$(printenv STREAK_TOKEN):"
18. Create a Comment
Write to /tmp/streak_request.json:
{
"message": "Spoke with client today, they are interested."
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/comments" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
19. Get Threads in a Box
Email threads associated with a box.
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/threads" -u "$(printenv STREAK_TOKEN):"
20. Get Files in a Box
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/files" -u "$(printenv STREAK_TOKEN):"
21. Get Meetings in a Box
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/meetings" -u "$(printenv STREAK_TOKEN):"
22. Create a Meeting Note
Write to /tmp/streak_request.json:
{
"meetingDate": 1735689600000,
"meetingNotes": "Discussed pricing and timeline.",
"title": "Sales Call"
}
Then run:
curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/meetings" -u "$(printenv STREAK_TOKEN):" --header "Content-Type: application/json" -d @/tmp/streak_request.json
23. Get Box Timeline
curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/timeline" -u "$(printenv STREAK_TOKEN):"
Guidelines
- Keys: Pipeline keys, box keys, and other identifiers are alphanumeric strings returned by the API
- Timestamps: Use Unix timestamps in milliseconds for date fields (e.g.,
dueDate,meetingDate) - Rate Limits: Be mindful of API rate limits; add delays between bulk operations
- Stages: To move a box to a different stage, update the box with the new
stageKey - Email Integration: Streak is tightly integrated with Gmail; threads are Gmail thread IDs
- Team Key: When creating contacts, you need a
teamKeywhich can be obtained from the teams endpoint
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?