streak

安装量: 45
排名: #16514

安装

npx skills add https://github.com/vm0-ai/vm0-skills --skill streak

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

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

  2. Create a Pipeline

Write to /tmp/streak_request.json:

{ "name": "New Sales Pipeline" }

Then run:

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'

  1. List Boxes in Pipeline

Boxes are the core data objects (deals, leads, projects) within a pipeline.

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

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

  2. Create a Box

Write to /tmp/streak_request.json:

{ "name": "Acme Corp Deal" }

Then run:

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'

  1. Update a Box

Write to /tmp/streak_request.json:

{ "name": "Updated Deal Name", "stageKey": "stageKey123" }

Then run:

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'

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

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

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

  4. Create a Contact

Write to /tmp/streak_request.json:

{ "teamKey": "teamKey123", "emailAddresses": ["john@example.com"], "givenName": "John", "familyName": "Doe" }

Then run:

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'

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

  2. Search Boxes, Contacts, and Organizations bash -c 'curl -s -X GET "https://api.streak.com/api/v1/search?query=acme" -u "${STREAK_API_KEY}:"'

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

  4. Create a Task

Write to /tmp/streak_request.json:

{ "text": "Follow up with client", "dueDate": 1735689600000 }

Then run:

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'

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

  2. Create a Comment

Write to /tmp/streak_request.json:

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

Then run:

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'

  1. Get Threads in a Box

Email threads associated with a box.

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

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

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

  3. Create a Meeting Note

Write to /tmp/streak_request.json:

{ "meetingDate": 1735689600000, "meetingNotes": "Discussed pricing and timeline.", "title": "Sales Call" }

Then run:

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'

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

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 teamKey which can be obtained from the teams endpoint

返回排行榜