🎯

streak

🎯Skill

from vm0-ai/vm0-skills

VibeIndex|
What it does

Manages sales pipelines, deals, contacts, and email threads directly within Gmail using the Streak API.

πŸ“¦

Part of

vm0-ai/vm0-skills(138 items)

streak

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add vm0-ai/vm0-skills
Install PluginInstall plugin from marketplace
/plugin install notion@vm0-skills
Install PluginInstall plugin from marketplace
/plugin install slack-webhook@vm0-skills
git cloneClone repository
git clone https://github.com/vm0-ai/vm0-skills.git
πŸ“– Extracted from docs: vm0-ai/vm0-skills
12Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Gmail-integrated CRM for managing pipelines, deals (boxes), contacts, and email threads

Overview

# 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

  1. Install the Streak extension in Gmail
  2. Navigate to Gmail > Streak icon > Integrations > Streak API > Create New Key
  3. Copy your API key

Set environment variable:

```bash

export STREAK_API_KEY="your-api-key"

```

---

> Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

> ```bash

> bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $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 ${STREAK_API_KEY}: (note the trailing colon).

---

1. Get Current User

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/users/me" -u "${STREAK_API_KEY}:"'

```

---

2. List All Pipelines

Pipelines represent business processes (Sales, Hiring, Projects, etc.).

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/pipelines" -u "${STREAK_API_KEY}:"'

```

---

3. Get a Pipeline

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}" -u "${STREAK_API_KEY}:"'

```

---

4. Create a Pipeline

Write to /tmp/streak_request.json:

```json

{

"name": "New Sales Pipeline"

}

```

Then run:

```bash

bash -c 'curl -s -X PUT "https://api.streak.com/api/v1/pipelines" -u "${STREAK_API_KEY}:" --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.

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/boxes" -u "${STREAK_API_KEY}:"'

```

---

6. Get a Box

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}" -u "${STREAK_API_KEY}:"'

```

---

7. Create a Box

Write to /tmp/streak_request.json:

```json

{

"name": "Acme Corp Deal"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/pipelines/{pipelineKey}/boxes" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

8. Update a Box

Write to /tmp/streak_request.json:

```json

{

"name": "Updated Deal Name",

"stageKey": "stageKey123"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

9. List Stages in Pipeline

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/stages" -u "${STREAK_API_KEY}:"'

```

---

10. List Fields in Pipeline

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/pipelines/{pipelineKey}/fields" -u "${STREAK_API_KEY}:"'

```

---

11. Get a Contact

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/contacts/{contactKey}" -u "${STREAK_API_KEY}:"'

```

---

12. Create a Contact

Write to /tmp/streak_request.json:

```json

{

"teamKey": "teamKey123",

"emailAddresses": ["john@example.com"],

"givenName": "John",

"familyName": "Doe"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/contacts" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

13. Get an Organization

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/organizations/{organizationKey}" -u "${STREAK_API_KEY}:"'

```

---

14. Search Boxes, Contacts, and Organizations

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/search?query=acme" -u "${STREAK_API_KEY}:"'

```

---

15. Get Tasks in a Box

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/tasks" -u "${STREAK_API_KEY}:"'

```

---

16. Create a Task

Write to /tmp/streak_request.json:

```json

{

"text": "Follow up with client",

"dueDate": 1735689600000

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/tasks" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

17. Get Comments in a Box

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/comments" -u "${STREAK_API_KEY}:"'

```

---

18. Create a Comment

Write to /tmp/streak_request.json:

```json

{

"message": "Spoke with client today, they are interested."

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/comments" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

19. Get Threads in a Box

Email threads associated with a box.

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/threads" -u "${STREAK_API_KEY}:"'

```

---

20. Get Files in a Box

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/files" -u "${STREAK_API_KEY}:"'

```

---

21. Get Meetings in a Box

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/meetings" -u "${STREAK_API_KEY}:"'

```

---

22. Create a Meeting Note

Write to /tmp/streak_request.json:

```json

{

"meetingDate": 1735689600000,

"meetingNotes": "Discussed pricing and timeline.",

"title": "Sales Call"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.streak.com/api/v1/boxes/{boxKey}/meetings" -u "${STREAK_API_KEY}:" --header "Content-Type: application/json" -d @/tmp/streak_request.json'

```

---

23. Get Box Timeline

```bash

bash -c 'curl -s -X GET "https://api.streak.com/api/v1/boxes/{boxKey}/timeline" -u "${STREAK_API_KEY}:"'

```

---

Guidelines

  1. Keys: Pipeline keys, box keys, and other identifiers are alphanumeric strings returned by the API
  2. Timestamps: Use Unix timestamps in milliseconds for date fields (e.g., dueDate, meetingDate)
  3. Rate Limits: Be mindful of API rate limits; add delays between bulk operations
  4. Stages: To move a box to a different stage, update the box with the new stageKey
  5. Email Integration: Streak is tightly integrated with Gmail; threads are Gmail thread IDs
  6. Team Key: When creating contacts, you need a teamKey which can be obtained from the teams endpoint

More from this repository10